アプリトランスポートセキュリティ
IOS 9では、ネットワーク上でのデータ転送の安全性を高めるApp Transport Securityテクノロジーが導入されました。 デフォルトで有効になっているため、サーバーがATSの要件を満たしていない場合、接続は失敗します
An SSL error has occurred and a secure connection to the server cannot be made.
ただし、ATSは構成できます。
nscurl
コマンドは、構成する必要がある設定を理解するのに役立ちます。 たとえば、Yandexの場合:
nscurl --ats-diagnostics http://ya.ru <...> デフォルトのATSセキュア接続 --- ATSデフォルト接続 2015-08-28 11:51:06.868 nscurl [7019:8960694] NSURLSession / NSURLConnection HTTPロードが失敗しました(kCFStreamErrorDomainSSL、-9802) 結果:失敗 --- <...> ya.ruのPFS例外の構成 --- Perfect Forward Secrecyを無効にする 結果:合格 --- <...>
接続を正常に確立できるのは、 Perfect Forward Secrecyを無効にした場合のみであるため、ya.ruドメインの
Info.plist
ファイルで
NSExceptionRequiresForwardSecrecy=NO
指定する必要があります。
ATSの基本構成を検討してください。
ATSを無効にする
NSAllowsArbitraryLoads=YES
フラグを指定すると、ATSを完全に無効にできます。 この構成は、デバッグのみに推奨されます。

<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict>
すべてのサブドメインのPFSを無効にします
<key>NSAppTransportSecurity</key> <dict> <key>NSExceptionDomains</key> <dict> <key>ya.ru</key> <dict> <key>NSIncludesSubdomains</key> <true/> <key>NSExceptionRequiresForwardSecrecy</key> <false/> </dict> </dict> </dict>
one 1つを除くすべての接続でATSを無効にする
組み込みブラウザで外部リンクを開くアプリケーションの場合、APIサーバーへの接続を除くすべての接続でATSを無効にする必要があります。
<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> <key>NSExceptionDomains</key> <dict> <key>ya.ru</key> <dict> <key>NSExceptionRequiresForwardSecrecy</key> <false/> <key>NSExceptionAllowsInsecureHTTPLoads</key> <false/> </dict> </dict> </dict>
ビットコード
IOS 9では、インストールされたアプリケーションのサイズを最適化できるApp Thinningテクノロジーが導入されました。 Xcode 7では、コンパイル時に、アプリケーションがサポートするプラットフォーム用のビットコードが生成されます。 このオプションはデフォルトで有効になっています。 ただし、一部のサードパーティライブラリはまだビットコードでコンパイルされていません。 アプリケーションがそのようなライブラリを使用する場合、ビットコード生成を無効にする必要があります。 プロジェクト
ENABLE_BITCODE=NO
ます。

サードパーティアプリケーションへの移行
iOS 9では、
canOpenURL:
メソッドの動作が変更されました。 次に、サードパーティアプリケーションに移動するために使用されるスキームのリストを宣言する必要があります。 これは、
Info.plist
ファイルのLSApplicationQueriesSchemesキーを使用して行われます。 たとえば、アプリケーションがYandex.Navigatorを開く場合、構成は次のようになります。
<key>LSApplicationQueriesSchemes</key> <array> <string>yandexnavi</string> </array>

Facebook SDK
アプリケーションがFacebook SDKを使用している場合、 iOS 9のアプリの準備ページでFacebookが推奨するように、ATSとスキームのリストを構成する必要があります。 サーバーとの接続を確立したり、サードパーティのアプリケーションを開いたりする他のサードパーティライブラリにも注意を払う価値があります。
まとめ
ATS、ビットコード、および回路のリストを正しく構成することは、アプリケーションがiOS 9で正しく機能するために行う必要がある主なことです。これは、特に目的と方法を理解している場合は難しくありません。 結局のところ、この知識はiOS 8 SDKからアップグレードするときだけでなく、将来新しいプロジェクトを作成するときにも役立ちます。