libraries for bitcode must be generated from Xcode Archive or Install build forARM7 解决办法

libraries for bitcode must be generated from Xcode Archive or Install build forARM7 解决办法

开发环境 :Xcode7.2

开发语言:OC

场景:工程中 引入第三方静态库  真机调试没有问题,但是在打包上传商店的时候报错





报错:


问题详情:

 Bitcode bundle could not be generated because '/Users/ws/Desktop/Build/Intermediates/ArchiveIntermediates/G2-JEWELRY/BuildProductsPath/Release-iphoneos/libNDL-LIB-G2-CORE.a(POSSDK.o)' was built without full bitcode. All object files and libraries for bitcode must be generated from Xcode Archive or Install build for architecture armv7


由上述问题看出第三方库不兼容 XCode7later 之后默认开启BitCode


解决办法:


1.更新library使包含Bitcode,否则会出现以上问题。 
2.关闭Bitcode,简单粗暴。

解决实现:

1、更新换库


2、解决方法步骤

选择工程之后再Build  settings标签 中的 build optional 查看Enable bitCode  选项改为NO



Bitcode在链接静态库时的问题处理 “ld: bitcode bundle could not be generated because”   

Bitcode是苹果在Xcode7及以后推出的新功能。用于代码的二次编译,针对CPU进行优化,编译工作由苹果AppStore后台来完成。
针对iOS是可选项,默认打开。watchOS 和 tvOS 是必选项。苹果文档如下
https://developer.apple.com/library/tvos/documentation/IDEs/Conceptual/AppDistributionGuide/AppThinning/AppThinning.html


打开选项如下图





那么问题来了,如果一个工程里面有静态库的引用,那么所有的静态库也需要打开Bitcode后重新编译。
这一切都没有问题,但是在“Archive”的时候就会报错。
这时,就需要给静态库的工程增加一个选项“-fembed-bitcode”。之后就可以正常Archive了。

报错内容
ld: bitcode bundle could not be generated because '/Users/liuyuning/Desktop/TestDecode/Decode/libDecode.a(Decode.o)' was built without full bitcode. All object files and libraries for bitcode must be generated from Xcode Archive or Install build for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)






增加“-fembed-bitcode”





另外,如果静态库的工程有 -Werror 的选项,需要去掉。应为在编译的时候有一个警告。 clang: warning: argument unused during compilation: '-fembed-bitcode-marker'
如果不去掉就会报错。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值