导出时启用Bitcode时出错(架构armv7找不到符号)

我有一个相当旧的项目,最低部署目标设置为iOS 8.4。 由于技术原因, 必须启用bitcode。 该项目建立并运行良好 。 然而,当尝试导出存档的构建时,事情就出错了。 我正在使用Xcode 8.2.1。

当我使用选项Rebuild from bitcode创建测试版本(使用Enterprise证书签名)时,导出在编译bitcode时失败。

截图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/WX9bPu/.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/WX9bPu/.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 `'"; info = { }; level = ERROR; type = exception; } ); thinnableAssetCatalogs = ( "/var/folders/qy/cgq_nq7x2tx1j3z__7f4yx100000gn/T/XcodeDistPipeline.hn6/Root/Payload/.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 

当我Rebuild from bitcode禁用Rebuild from bitcode ,导出成功,生成的构建运行正常。 但是,当构建将提交给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 。 将其关闭以便发布已经解决了这个问题。

我试图重现你的问题,但没有成功。 仅仅通过命名缺失的符号,这似乎与代码覆盖的东西有一些关系。 您可以尝试禁用项目中与代码覆盖相关的所有内容,然后重新归档并再次导出它:

方案设置

在此处输入图像描述

目标构建设置: 在此处输入图像描述