Xcode 7'CrashReporter不包含bitcode'链接器错误

Fab*_*cci 3 xcode ios plcrashreporter xcode7 bitcode

我在我的iOS应用程序中直接链接PLCrashReporter而不使用任何外部工具,现在当我尝试在Xcode 7上编译它时,我收到链接错误:

ld:'.../CrashReporter.framework/CrashReporter(libCrashReporter-iphoneos.a-armv7-master.o)'不包含bitcode.您必须在启用bitcode(Xcode设置ENABLE_BITCODE)的情况下重建它,从供应商处获取更新的库,或禁用此目标的bitcode.对于架构armv7

我在哪里获得更新的框架或源代码来启用bitcode编译它们并摆脱错误而不禁用整个项目的bitcode?

drs*_*ock 8

我最后通过从源代码构建PLCrashReporter 1.2.1来解决这个问题.此版本是Xcode 7和iOS9修复程序合并的最小版本.

源是从这里获得的:PLCrashReporter 1.2.1

将下载的1.2.1源解压缩到一个文件夹中.

在Xcode中拉出该文件夹内的Xcode项目,并将以下内容添加到项目构建设置的自定义编译器设置"其他C标志"部分: -fembed-bitcode

接下来,将以下内容添加到项目构建设置的自定义编译器设置"其他警告标志"部分: -Wno-error=unused-command-line-argument

然后从Xcode GUI关闭项目.自定义设置是必要的,因为我们将使用xcodebuild从命令行构建以避免PLCR弃用错误,并且在这样做时,默认情况下只有-fembed-bitcode-marker以这种方式构建框架.我们正在覆盖默认行为,并且需要抑制由此引起的硬停止警告.

最后,从包含xcode项目文件的源的zip文件所在的文件夹中的终端窗口提示符运行以下命令:

xcodebuild -configuration Release -target 'Disk Image'

这将运行构建并离开框架 ./build/Release/PLCrashReporter-1.2.1/iOS Framework

现在,这些步骤将生成一个启用bitcode的框架,但第三方崩溃报告与bitcode不兼容(当App Store重新编译时,您无法从动态版本中获取符号文件).