Xcode
iOS
iOS9
XCode7

IOS9対応の問題解決方法まとめ

More than 1 year has passed since last update.

IOS9に対応した際の問題の解決方法のまとめ

App Transport Security(ATS) 問題

この問題は以下のサイト様を参考にしました。
http://dev.classmethod.jp/smartphone/iphone/ios-9-intro-ats/
http://mushikago.com/i/?p=6150

IOS9では、webViewやwebサーバー、画像ダウンロード等でHTTP通信ができなくなっています。
解決方法としてはHTTPS通信にすればいいのですが、
さすがに既存のアプリ等で全てをHTTPS通信にするのをコストが高い。
ということでHTTP通信でも大丈夫なようにする設定方法です。
ただし、こちらの方法は公式では非推奨となっています。
今後使えなくなる可能性があるのに注意してください。

解決方法

Info.plistを編集すれば
HTTP通信を許可することができます。

特定のドメインのみを許可したりと細かな設定をすることができますが
自分は今回全てをHTTPを許可しました。

設定方法は簡単で
Info.plistに

NSAppTransportSecurity (Dictionary)

を追加し、
追加したNSAppTransportSecurity に

NSAllowsArbitraryLoads (Bool)

を追加して値をYESにするだけです。

スクリーンショット 2015-10-07 19.15.50.png

余分なキーは削除してますがこんな感じで追加してください。
これて全てのHTTP通信ができるようになります。

ENABLE_BITCODE問題

以下の投稿を参考にさせていただきました。
http://qiita.com/Takumi_Mori/items/ace01198c43c8bac6df0

これはライブラリファイル(*.a)を使用した際に発生するようです。
自分はUnity4.xでXcodeを吐き出しビルドした際に発生しました。
Xcodeのビルドした際に以下の様なエラーが出た場合の原因がこれです。

ld: '/***/***/***.a(***.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)

BITCODEに関しての詳細は以下の投稿に書かれています。
http://qiita.com/gamako/items/f37dbb05de9d3832ce6b

解決方法

Build Settingsを編集します。
Build Settingsから検索窓にENABLE_BITCODEと入力してみてください。
そうすると
Build Optionsの中に
Enable Bitcode
という項目があるかと思います。
これをNoにしてください。

これで先ほどのエラーが解決されるはずです。