web-dev-qa-db-ja.com

iPhoneアプリを複数のSDK(ファームウェア)バージョンと互換にする方法

IOS4がまもなくリリースされるので、私のアプリの将来のアップデートにiAdを含めることをすでに計画しています。これにより、4.0未満のファームウェアを使用しているユーザーは私のアプリを使用できなくなると思います。ユーザーのファームウェアに基づいて変数と.xibファイルを変更する方法はありますか?乾杯。

60
Dyldo42

はい、最新のSDK(つまり:5.1)でビルドしても、以前のバージョンのファームウェア(SDK)を搭載したデバイスで実行できます。

  • 展開ターゲットを、実行可能な最も古いバージョン、つまり3.0に設定します。
  • Base SDKを、コンパイルする最新バージョン、つまり5.0に設定します。このようにして、コード内の新しい定義とシンボルを参照できます。この記事 "SDK and Deployment Targets" では、DeploymentとBase SDKについて詳しく説明しています。
  • 新しいiOSでのみ利用可能なシンボルを含むライブラリ/フレームワークへの弱いリンク。これは、新しいシンボルを持たないデバイスでアプリが実行されるようにするためです。
  • 呼び出す前に、 新しいメソッドが使用可能であることを確認する を行う必要があります。アプリが4.0未満のデバイス上にある場合にのみ、5.0または4.Xのメソッドを呼び出さないようにする必要があります。もちろん、古い方法を使用するか、新しいSDKサポートを必要とする特定の機能をサポートしないことにより、古いバージョンでの作業を適切に処理する必要があります。
  • NEW w/XCode 4.2:古いデバイスをサポートするには、ビルドアーキテクチャに add armv6 する必要がありますおよびremove armv7 必要なデバイス機能のplistから。

詳細については、これらのSO質問と回答を参照してください。

71
progrmr