Xcode|Xcode7 Static Libraryのbitcode(Archive)とWarningの対処方法

スポンサーリンク
おちゃめ

20160118_000

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にする理由はここにあるようです。

20160118_001

この2箇所設定すればStatic LibraryのBitcodeの設定が完了です。

Warningの大量発生対応方法

Static Libraryをアプリにインポートしてbuildした時warningが大量に発生する時がある。Xcodeのバージョン違いによるものなのか?発生条件がわかっていませんが、発生条件の一つとしてCoreLocation,MapKit等のAPIをimportしていると発生するようです。

その対処方法の設定変更箇所は4箇所

1.DWARFに変更

Build Options → Debug information Format → Release = DWARF

20161018_004

2.Deployment Postprocessing = Yes

Deployment → Deployment Postprocessing = Yes

20160118_002

3.Generate Debug Symbols = No

Apple LLVM 7.0 – Code Generation → Generate Debug Symbols = No

20160118_003a

4.Symbols Hidden by Default = Yes

Apple LLVM 7.0 – Code Generation → Symbols Hidden by Default = Yes

20160118_003b

まとめ

これでなんとかStatic Libraryのbitcode化とwarningを回避できました。

この設定方法は海外のサイトでは当たり前のように書かれていて、まだまだ修行が足りないと痛感しました。

これからも修行頑張ります(笑)

コメント

タイトルとURLをコピーしました