2011-06-23 4 views
1

iOS SDK互換性ガイドを検索しましたが、これに関する説明はありません。iPhone SDK互換性__IPHONE_OS_VERSION_MIN_REQUIREDの使用

私がいることを理解:

  • デプロイメント・ターゲットは、アプリケーションが
  • ベースSDK上で実行できる最も古いOS バージョンですが、それは を使用してコンパイルし、その機能 場合に使用することができますSDKですデバイス は私がに苦しんだが、これはコンパイルTIに固定されている場合__IPHONE_OS_VERSION_MIN_REQUIREDを使用することができる方法である

それらをサポートしている時間を実行します私のデバイスのOSは実行時にしかわかりません。したがって、私が提出するコードは常に同じものをコンパイルします。

複数のバージョンが自動的にコンパイルされますか?

説明できますか?

多くのおかげで、

クリス。

答えて

1

定義 - あなたのデプロイメント・ターゲットは低いかもしれながらので、あなたのアプリがする場合は、いくつかの重要な非推奨の機能を使用している可能性があり多くのiOSバージョンと大きく互換性があります。

もちろん、デバイスのOSは実行時にしかわかりません。プロジェクト設定に応じて、アップルはその情報をアプリストアで使用し、正しいデバイスを持つユーザーがあなたのソフトウェアにアクセスできるようにします。私の知る限り、複数のバージョンは作成されません。あなたが提出したコードは、その定義を使用して古いiOSバージョンでの作業を最大限に活かすなら、動的であるように見えます。

また、これが役に立つかもしれません:

How to target a specific iPhone version?

+0

おかげ@Kryptonと@Konrad。上記のリンクは[[[[UIDevice currentDevice] systemVersion] floatValue]を使用するオプションを浮かせてくれました。私はrespondsToSelector:distanceFromLocationの@selectorも使用しました。 – Chris

+0

聞いてうれしい:)そのトピックのリンクが説明しているように、不正な浮動小数点値に注意してください。 – Luke

1

__IPHONE_OS_VERSION_MIN_REQUIREDはコンパイル時に固定されています。これらの定数やマクロは、異なるプラットフォームやバージョンのアプリケーションをコンパイルする場合に便利です。したがって、iOS 3.0用に1つのバージョンのアプリケーションをコンパイルし、iOS 4.0用にコンパイルする場合は、__IPHONE_OS_VERSION_MIN_REQUIREDを使用して、コンパイル時にiOS 3.0バージョンからすべてのiOS 4.0コードを削除できます。

AppStoreでは、最新のSDKバージョンを使用する必要があるため、3.0デバイスをターゲットにしていても4.0 SDKを使用する必要があります。 __IPHONE_OS_VERSION_MIN_REQUIREDは、古いSDKを使用する場合にのみ役立ちます。デプロイメントターゲットを下位バージョンに設定できるだけなので、実行時にiOSバージョンを確認する必要があります。あなたは方法は、実行時にiOSのバージョンを確認するhereを説明し使用することができます

IPHONE_OS_VERSION_MIN_REQUIREDがある