1. 程式人生 > >archive 打包出錯 apple mach-o linker (id) error

archive 打包出錯 apple mach-o linker (id) error

xcod build n) 推出 border ati 正常 mage blog

1: 情形: 編譯真機運行都可以,就打包時報錯

報錯內容
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)


技術分享


2: Bitcode是蘋果在Xcode7及以後推出的新功能。用於代碼的二次編譯,針對CPU進行優化,編譯工作由蘋果AppStore後臺來完成。
針對iOS是可選項,默認打開。watchOS 和 tvOS 是必選項。蘋果文檔如下

這時,就需要給靜態庫的工程增加一個選項“-fembed-bitcode”。之後就可以正常Archive了。

增加“-fembed-bitcode”


技術分享


另外,如果靜態庫的工程有 -Werror 的選項,需要去掉。應為在編譯的時候有一個警告。 clang: warning: argument unused during compilation: ‘-fembed-bitcode-marker‘
如果不去掉就會報錯。

技術分享


3:如果方法二無效,如果

技術分享

那麽你選擇的第三發SDK也一定也要支持bitcode 為YES

archive 打包出錯 apple mach-o linker (id) error