Xcode7からbitcodeという機能が追加され何も考えずにStatick LibraryもEnable BitcodeをYESにしておけばいいと思っていた。しかしStatic LibraryをimportしたアプリをArchiveするとStatic Libraryがbitcode化されていないよとエラーが出てしまう。
おちゃめすぎるぜ! Xcode!
いつものことですけど・・・。やっぱりダメージがある(笑)
StaticLibraryのBitcodeの設定方法とStaticLibraryをimportしたアプリでwarningが大量発生する現象の対処方法をまとめました
動作確認環境
Mac OS X 10.11.2
Xcode 7.2
Static Library BitCodeの設定
私は認めません!Xcodeのバグだぁ〜!と言いたいですが、長いものに巻かれます(^^;
設定変更箇所は2箇所
1.Enable Bitcode = NO
Build Options → Enable Bitcode= NO
Bitcode設定なのにここをNO意味わかりませんが
ここをNOにしないと、”Argument unused during compilation: ‘-fembed-bitcode-marker'”とwarningが出てしまいます
2.-fembed-bitcodeを記載
Apple LLVM 7.0 – Custom Compiler Flags → Other C Flags = -fembed-bitcode
コンパイラの設定を記載させます
(1)でNOにする理由はここにあるようです。
この2箇所設定すればStatic LibraryのBitcodeの設定が完了です。
Warningの大量発生対応方法
Static Libraryをアプリにインポートしてbuildした時warningが大量に発生する時がある。Xcodeのバージョン違いによるものなのか?発生条件がわかっていませんが、発生条件の一つとしてCoreLocation,MapKit等のAPIをimportしていると発生するようです。
その対処方法の設定変更箇所は4箇所
1.DWARFに変更
Build Options → Debug information Format → Release = DWARF
2.Deployment Postprocessing = Yes
Deployment → Deployment Postprocessing = Yes
3.Generate Debug Symbols = No
Apple LLVM 7.0 – Code Generation → Generate Debug Symbols = No
4.Symbols Hidden by Default = Yes
Apple LLVM 7.0 – Code Generation → Symbols Hidden by Default = Yes
まとめ
これでなんとかStatic Libraryのbitcode化とwarningを回避できました。
この設定方法は海外のサイトでは当たり前のように書かれていて、まだまだ修行が足りないと痛感しました。
これからも修行頑張ります(笑)
コメント