我有一个相当旧的项目,最低部署目标设置为iOS 8.4.由于技术原因,必须启用bitcode.该项目建立并运行良好.然而,当尝试导出存档的构建时,事情就出错了.我正在使用
Xcode 8.2.1.
当我使用选项Rebuild from bitcode创建测试版本(使用Enterprise证书签名)时,导出在编译bitcode时失败.
以下是日志的相关部分:
"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/8.0.0/lib/darwin/libclang_rt.ios.a" "-o" "/private/var/folders/qy/cgq_nq7x2tx1j3z__7f4yx100000gn/T/<redacted target name>WX9bPu/<redacted target name>.armv7.out" -= Output =- Undefined symbols for architecture armv7: "_llvm_gcov_init",referenced from: __hidden#2_ in 001.o __hidden#3_ in 001.o __hidden#4_ in 001.o __hidden#5_ in 001.o __hidden#6_ in 001.o __hidden#7_ in 001.o __hidden#8_ in 001.o ... "_llvm_gcda_end_file",referenced from: __hidden#0_ in 001.o __hidden#0_ in 002.o __hidden#0_ in 003.o __hidden#0_ in 004.o __hidden#0_ in 005.o __hidden#0_ in 006.o __hidden#0_ in 007.o ... "_llvm_gcda_emit_function",referenced from: __hidden#0_ in 001.o __hidden#0_ in 002.o __hidden#0_ in 004.o __hidden#0_ in 005.o __hidden#0_ in 006.o __hidden#0_ in 007.o __hidden#0_ in 008.o ... "_llvm_gcda_emit_arcs",referenced from: __hidden#0_ in 001.o __hidden#0_ in 002.o __hidden#0_ in 004.o __hidden#0_ in 005.o __hidden#0_ in 006.o __hidden#0_ in 007.o __hidden#0_ in 008.o ... "_llvm_gcda_start_file",referenced from: __hidden#0_ in 001.o __hidden#0_ in 002.o __hidden#0_ in 003.o __hidden#0_ in 004.o __hidden#0_ in 005.o __hidden#0_ in 006.o __hidden#0_ in 007.o ... "_llvm_gcda_summary_info",referenced from: __hidden#0_ in 001.o __hidden#0_ in 002.o __hidden#0_ in 003.o __hidden#0_ in 004.o __hidden#0_ in 005.o __hidden#0_ in 006.o __hidden#0_ in 007.o ... ld: symbol(s) not found for architecture armv7 Exited with 1 error: Failed to compile bundle: /var/folders/qy/cgq_nq7x2tx1j3z__7f4yx100000gn/T/<redacted target name>WX9bPu/<redacted target name>.armv7.xar Stderr: > /Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:202:in `run' /Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:1987:in `block in CompileOrStripBitcodeInBundle' /Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:1944:in `each' /Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:1944:in `CompileOrStripBitcodeInBundle' /Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:2119:in `ProcessIPA' /Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:2687:in `<main>'"; info = { }; level = ERROR; type = exception; } ); thinnableAssetCatalogs = ( "/var/folders/qy/cgq_nq7x2tx1j3z__7f4yx100000gn/T/XcodeDistPipeline.hn6/Root/Payload/<redacted target name>.app/Assets.car" ); } 2017-03-31 12:21:37 +0000 [MT] Exporting using IDEDistributionPackageExportStep 2017-03-31 12:21:58 +0000 [MT] Canceled distribution assistant
当我从bitcode禁用Rebuild时,导出成功,生成的构建运行正常.但是,当构建将提交给iTunes Connect时,我担心会出现问题.
有没有人知道为什么会出现这个错误以及如何解决这个问题?我在这里有点不知所措.
编辑:
澄清:是的,bitcode在目标级别启用.以下是链接库:
这些是依赖项:
# Reporting pod 'Fabric' pod 'Crashlytics' pod 'GoogleAnalytics' pod 'CocoaLumberjack','~> 1.6.2' # Networking pod 'AFNetworking','~> 2.6.3' pod 'RestKit','~> 0.27' pod 'Reachability' # Other pod 'UIColor-Utilities','~> 1.0.1' pod 'ViewDeck','~> 2.4' pod 'SDWebImage','~> 3.7.0' pod 'AMRatingControl','~> 1.3.0'
解决方法
经过一些试验和错误以及
Sven Drielecker(和其他人)的有用建议后,问题已得到解决.
对于调试和发布版本,GCC_INSTRUMENT_PROGRAM_FLOW_ARCS构建设置都设置为YES.将其关闭以便发布已经解决了这个问题.