Cordova で Archive 時に bitcode 周りでエラーが出た際の対処法

phi phi on cordova

オレの Advent Calendar 2015 - Adventar の 22 日目です.

すごいピンポイントですがハマったのでメモ残しておきます.

cordova で admob 使う際の定番プラグインといえば 『cordova-admob-pro』ですが, 現時点(2015/12)の Xcode で Archive しようとすると下記のようなエラーが出てビルドできません.

ld: '<プロジェクト名>/Plugins/cordova-plugin-admobpro/GoogleMobileAds.framework/GoogleMobileAds(GADDefaultInAppPurchaseFlow.o)' does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. for architecture arm64  
clang: error: linker command failed with exit code 1 (use -v to see invocation)  

cordova-plugin-facebook とかでも同じようなエラーが出るようです.
bitcode ってのが原因らしいです.

Xcode の Project -> Build Settingbitcode を検索して YES になっているところを NO に変更します.

change bitcode

これで一応ビルドは通るようになります.

が cordova で作っているのに Xcode でプロジェクトイジるのは気持ち悪いですよね. 根本解決ってなるとプラグイン内の sdk をバージョンアップさせるとかでしょうけど...

気が向いたらプラグイン作ります!

Reference

issue にも挙がってた