3

現在、かなりの数のバージョンの iOS がデバイスで稼働しており、さまざまな種類のサポートについていくつか質問があります。

iOS 6 のいくつかの機能を使用したいが、iOS 5 ユーザーを失いたくないアプリケーションをリリースする場合、App Store で入手できる同じアプリケーション内で両方のバージョンをターゲットにすることは可能ですか?

ここで他のオプションは何ですか?iOS 6 の機能をスキップして、iOS 5 だけをターゲットにするには? この場合、アプリケーションは iOS 6 を完全にサポートしますか?

ありがとうございました。

4

1 に答える 1

7

iOS ユーザーは、他のどのグループよりも速くアップグレードします。特別なユーザー ベースを持っていない限り、約 6 か月以上前のバージョンの iOS のサポートにかなりの時間を費やすことはお勧めしません。多くの種類のアプリでは、それでも長すぎます。Matt Gemmell は、iOS 5 が登場したときに、これに関する優れた議論を書きました。

移行期間中、最新バージョンに切り替える前に、古い SDK に対してビルドすることをお勧めします。「配置先」だけを設定しないでください。「ベースSDK」を設定します。これは、Apple が古い SDK を削除し続けるため、古い SDK を保持して Xcode のコピーにリンクする必要があることを意味します。古い SDK に対してビルドする方法については、Google で検索してください。たくさんの議論があります。SOにはたくさんあると確信しています。これを強くお勧めする理由はいくつかあります (アップグレードを待つ時間に関係なく):

  • 古いバージョンにはない機能を最新バージョンで実際に提供できることは、ややまれです。ほとんどの場合、何らかの形で古いバージョンで提供する必要があります。これは、基本的に同じことを行う 2 つのバージョンのコードが存在することを意味します。ほとんどの場合、古い方法は難しくなりますが、それでも機能します。難しい方法を書いたら、簡単な方法書いて、それらから選択するための追加のコードを書く意味は何ですか?

  • 機能をスワップ インおよびスワップ アウトするために必要なテストは、非常に高度です。そもそも機能をテストするのは十分に困難です。それをテストし、機能がないことテストします。

  • 「Development Target」を使用すると、コンパイラは何の助けにもなりません。メソッドの存在を確認せずに iOS 6 からメソッドを呼び出しても、警告は表示されません。iOS 5 でクラッシュするだけです。Base SDK を使用している場合は、それが利用できない場合にコンパイラが通知します。これについて、WWDC の Xcode チームと話をしました。彼らは、Apple が Deployment Target の使用を推奨していることを指摘しましたが、実際に使用するのは非常に脆弱であることを認めました。

したがって、基本的には、iOS 6 に移行する準備が整うまで iOS 5 SDK にとどまることをお勧めします。その後、iOS 6 SDK に移行し、後戻りすることはありません。

于 2012-09-28T22:08:42.840 に答える