環境: Xcode7 GM
iOS9 対応で行った作業メモ。
App Transport Security(ATS)対応
HTTPS 接続にする必要あり。今回はとりあえずHTTPを許可するようにInfo.plistに以下の手順で追加する。
NSAppTransportSecurityを Dictionary で追加。- その下で
NSAllowsArbitraryLoadsをBooleanで追加し、YESを設定。
カスタムURLスキーム対応
openURL、canOpenURLのようなメソッドでカスタムURLスキームを呼び出す場合、Info.plistに登録しなければ使えないようになった。
admob SDK を使ってるのだが、アプリ起動時に以下のような許可されてないスキームのエラーが出るようになった。
-canOpenURL: failed for URL: "itms-books://" - error: "This app is not allowed to query for scheme itms-books" -canOpenURL: failed for URL: "kindle://home" - error: "This app is not allowed to query for scheme kindle"
Info.plistに以下の手順で追加する。
LSApplicationQueriesSchemesを Array で追加。- その下で+を押すと
item 0が追加されるので String でitms-booksを入力。 - さらに+を押して
item 1を追加し String でkindleを入力。
これで再度起動してみると、スキームが許可されてないエラーから、スキーム起動失敗のエラーに変わった。
これはスキームで起動させるアプリがインストールされていないためなので問題なし。
-canOpenURL: failed for URL: "itms-books://" - error: "(null)" -canOpenURL: failed for URL: "kindle://home" - error: "(null)"
ここまでの作業でInfo.plistは以下のようになった。

Bitcode をオフ
実機でアプリを起動しようとしたら admob SDK で以下のエラーが出た。
ld: '/.../Google-Mobile-Ads-SDK/GoogleMobileAdsSdkiOS-7.4.1/GoogleMobileAds.framework/GoogleMobileAds(GADGestureIdUtil.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 armv7 clang: error: linker command failed with exit code 1 (use -v to see invocation)
とりあえず Bitcode をオフにすることでビルドが通るようになった。
Target -> Build Settings -> Build Options -> Enable Bitcode を NO に変更。
