環境: 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 に変更。