9月9日、iOSおよびOS Xの新しいリリースがリリースされ、残り時間が少なくなり、多くの開発者が新しいOSで動作するようにアプリケーションを既に最適化しました。 まだこれを行っていない人のために、iOS 9をサポートするために必要なものを簡単に見てみることをお勧めします。
アプリトランスポートセキュリティ
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からアップグレードするときだけでなく、将来新しいプロジェクトを作成するときにも役立ちます。
頑張って!