首先,我想声明没有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"
我甚至"验证"每个其他的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"
并向我报告了相同的错误
答案 0 :(得分:0)
在目标的构建设置中添加BITCODE_GENERATION_MODE = bitcode作为用户定义的设置。