在启用 Bitcode 的情况下导出时出错(未找到架构 armv7 的符号) [英] Error while exporting with Bitcode enabled (symbol not found for architecture armv7)
问题描述
我有一个相当老的项目,最低部署目标设置为 iOS 8.4.由于技术原因,位码必须被启用.项目构建并运行良好.然而,当尝试导出存档的构建时,事情出错了.我使用的是 Xcode 8.2.1.
I have a fairly old project with a minimum deployment target set to iOS 8.4. For technical reasons bitcode must be enabled. The project builds and runs fine. When trying to export an archived build however, things go wrong. I am using Xcode 8.2.1.
当我创建一个测试版本(用企业证书签名)并启用了 Rebuild from bitcode
选项时,导出在编译 bitcode 的阶段失败.
When I create a test build (signed with Enterprise certificate) with the option Rebuild from bitcode
enabled, the export fails at the stage when it is compiling 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
当我禁用 Rebuild from bitcode
时,导出成功并且生成的构建运行良好.恐怕这会在构建提交到 iTunes Connect 时出现问题.
When I disable Rebuild from bitcode
, the export is successful and the resulting build runs fine. I'm afraid this will give problems when the build will be submitted to iTunes Connect however.
有没有人知道为什么会出现这个错误以及如何解决这个问题?我在这里有点不知所措.
Does anyone have a clue why this error occurs and how to fix this? I'm a bit at a loss here.
澄清:是的,位码在目标级别启用.以下是链接库:
To clarify: yes, bitcode is enabled at the target level. Here are the linked libraries:
这些是依赖项:
# 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(和其他人)该问题已修复.
After some trial and error and by the helpful suggestions by Sven Drielecker (and others) the issue has ben fixed.
对于调试和发布版本,GCC_INSTRUMENT_PROGRAM_FLOW_ARCS
构建设置都设置为YES
.将其关闭以进行发布已解决该问题.
The GCC_INSTRUMENT_PROGRAM_FLOW_ARCS
build setting was set to YES
for both debug and release builds. Turning it off for release has fixed the issue.
这篇关于在启用 Bitcode 的情况下导出时出错(未找到架构 armv7 的符号)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!