1

Xcode プロジェクトには次の設定があります。

  • Deployment target: iOS 9.0
  • Base SDK: iOS 9.3 (latest)

私が理解しているように、アプリは iOS 9.0 にインストールでき、iOS 9.3 以降でのみ利用可能な API にアクセスしようとする可能性があります。その場合、アプリはクラッシュします。

では、アプリがアクセスするどの API が、デプロイメント ターゲットとベース SDK より前のバージョンの間のどのバージョンでも使用できないかを簡単に見つけるにはどうすればよいでしょうか? デプロイ ターゲットはコンパイラに認識されているため、API がコード内で使用されている場合、その API が導入されている iOS バージョンで実行するとアプリが明らかにクラッシュする場合、コンパイラは警告を発行すべきではありませんか?

4

2 に答える 2

2

ヘッダー ファイルでこれを確認します。

APIはiOS 9とiOS 9.3で変わらないので安心です。一方、iOS 8 を使用している人はあなたのアプリを実行できません。つまり、ユーザーが減り、売り上げが減り、お金が減ります。

8.0 にデプロイした場合、ベース SDK を一時的に 8.0 に変更することで、新しい API を使用しているかどうかをコンパイル時に簡単に確認できます。その場合、iOS 8 で iOS 9 メソッドを呼び出さないようにする必要があります。

于 2016-03-30T10:50:34.703 に答える
0

クラスを確認する必要があります (' NewFeature' は、呼び出している任意の 9.3 フィーチャ クラスです)

if ([NewFeature class]){
   //then use it if available
   //The code will land here if it is available to the OS the device is using
}else{
   //use older alternative way
}
于 2016-03-30T10:53:11.523 に答える