使用xcodebuild进行Bitcode错误打包ipa

时间:2017-04-13 09:36:18

标签: ios xcode xcode8 xcodebuild bitcode

首先,我想声明没有bitcode,一切都运转良好。当我打开" bitcode"应用程序中的标志。

此外,所有构建都是通过CI流程(不是手动在xcode-> archive et.al中)。

框架是在与应用程序本身分开的流程中构建的(应用程序嵌入已编译的框架)

我尝试打包ipa时遇到此错误:

  

❌ld:无法生成bitcode包,因为   ' .... / Framework.framework /框架'没有完整的bitcode。   必须从Xcode生成bitcode的所有框架和dylib   归档或安装架构armv7的构建

     

❌clang:错误:链接器命令失败,退出代码为1(使用-v查看   调用)

关于框架:

我使用以下命令构建框架:(省略技术细节)

# iphone (arm)
xcodebuild -configuration Release -sdk iphoneos CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO

# iphone (simulator)
xcodebuild -configuration Release -sdk iphonesimulator CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO

然后脂肪(FAT二元)

lipo -create /Release-iphonesimulator/Framework.framework/Framework -output /Universal/Framework.framework/Framework

我已将编译器标志添加到框架中,以便"嵌入bitcode"

enter image description here

我甚至"验证"每个其他的S.O.问题:(Compiling iOS library with bitcode enabled

  

此外,检查二进制文件是否包含bitcode的最简单方法是   使用otool和grep:

     

otool -l binary_name | grep __LLVM

     

如果有,则会看到一个或多个segname __LLVM条目   bitcode或空输出,如果没有。

otool -arch arm64 -l Frameworks/Framework.framework/Framework  | grep __LL
segname __LLVM
segname __LLVM

我还尝试了添加编译标志的其他变体

xcodebuild OTHER_CFLAGS="-fembed-bitcode"

并向我报告了相同的错误

1 个答案:

答案 0 :(得分:0)

在目标的构建设置中添加BITCODE_GENERATION_MODE = bitcode作为用户定义的设置。