我最近下载了Xcode 7 beta,Xcode抱怨我的一些C库没有被编译成BitCode.我如何告诉Clang生成与iOS兼容的BitCode?我在stackoverflow上看到了类似的答案,但我不知道它们是否适用于为iOS生成BitCode库.
编辑:
我正在使用正确的设置-fembed-bitcode,但是当我尝试存档时,我收到错误:ld:警告:忽略文件XXXX/XXXX,文件是为存档构建的,而不是链接的架构(arm64).当我使用-fembed-bitcode-marker时,我可以存档,但是我收到错误:无法生成完整的bitcode包,因为XX/XX仅使用bitcode标记构建.必须从启用了bitcode的Xcode存档构建生成库.
什么是错误的任何想法?该库正在成功编译,但它不允许我存档.我创建了一个简单的添加函数并将其放入库中,我得到了相同的症状,因此它不是我正在编译的库.
编辑2:您必须使用bitcode和lipo一起构建arm64和armv7版本.使用bitcode在归档时不会消除对胖库的需求.来源:https://forums.developer.apple.com/message/25132#25132
我在Swift,xcode 7.1中创建了一个示例框架.然后构建该框架用于Profiling,发布版本.然后将发布的框架添加(嵌入)到iOS测试应用程序.
该应用程序构建正常,但在尝试存档时.发生错误,指出 "无法生成bitcode包,因为'.../Test/FW.framework/FW'是在没有完整bitcode的情况下构建的.bitcode的所有框架和dylib都必须从Xcode Archive或者build build for architecture arm64生成"
Framework和app项目处于默认设置,两者都启用了Bitcode.
要确保Framework有bitcode,这个命令就在Framework上
"otool -l FW.framework/FW | grep __LLVM"
产量
segname __LLVM
segname __LLVM
segname __LLVM
segname __LLVM
我错过了什么?我在这里包含了两个项目,您可以下载它们并尝试存档.
我正在为iOS开发静态库,在其中使用Alamofire。当我尝试为模拟器构建发行版时,一切正常,但是,当我尝试为设备(发行版或调试版)构建它时,出现以下问题:
ld: bitcode bundle could not be generated because '/PathToMyLibraryProducts/Release-iphoneos/Alamofire/Alamofire.framework/Alamofire' was built without full bitcode. All frameworks and dylibs for bitcode must be generated from Xcode Archive or Install build for architecture armv7
Run Code Online (Sandbox Code Playgroud)
我的框架启用了位码,它是胖框架(用于设备和模拟器的构建)。我该如何解决?