2011-08-08 4 views
4

私は次のような状況で何が起こるのか少し不思議です。 iOS4を使用しているiTunesストア(顧客を含む)に既存のアプリがあり、新しいiOSを使用するアプリのアップデートをリリースします。iOSアプリケーションを新しいOSにアップグレードしますか?

  • "新しいiOS"にアップグレードした方に更新が届きます。
  • 更新されていないユーザーにはどうなりますか、以前のiOS4バージョンを使用できるようになりますか?

答えて

1

通常(ただし必ずしもそうではありませんが)、新しいOSは以前のものと同じですが、新しい機能があります。古いバージョンのアプリでは、最新のOSで動作することがよくありますが、新機能を利用することはありません。ユーザーが通常持っている唯一の問題はクラッシュの問題ですが、すべてがあなたのアプリで使用するAPIに依存します。

さらに、アップデートはユーザーに強制されることはありません。これらは常にオプションです。ユーザーが持っているものよりも高いバージョンのiOSでのみアプリが動作する場合、更新はユーザーにまったく提供されません。彼らは引き続き彼らのデバイスにインストールされている古いバージョンを使用することができます。アプリには有効期限がありません。

可能な限り多くのiOSバージョンの互換性を維持したい場合は、iOSデプロイメントターゲットを、アプリケーションに互換性を持たせる最小のOSに設定することができます。 SDKのバージョン番号は重要ではありませんが、最新のiOS機能をサポートするには、最新のiOS SDKが必要です。

ターゲットとするバージョンとのAPIの互換性を最小限のOSで確認する必要があります。 hereを見て、「API Diffs」を検索してください。各ドキュメントには、iOS版APIの変更が記載されています。これにより、そのバージョンの新しいAPIと削除されたAPIが一覧表示されます。たとえば、iOS 4.1〜4.2のAPI差分ドキュメントに記載されているUIPrintPaperは、iOS 4.2の新しいAPIです。したがって、iOS 4.1以前で実行すると、そのAPIを呼び出すときにアプリケーションがクラッシュします。 UIPrintPaperスニッパの周りに#if __IPHONE_OS_VERSION_MAX_ALLOWED <= __IPHONE_4_1を使用すると、その問題が解決されます。

11

「展開ターゲット」は重要です。デプロイメントターゲットを設定すると、必要な最小限のOSバージョンをアプリが設定できるようになります。多くの開発者は、あなたのアプリが新しいiOSバージョンでのみ利用可能な機能に依存していない限り、できるだけ遠くに設定したいと考えています。

iOS 4 SDKでコンパイルされたアプリケーションがあり、デプロイメントターゲットとして3.0が設定されているとします。

  • iOS 3またはiOS 4(およびiOS 5)のユーザーは、アプリをダウンロードして使用できます。

これで、iOS 5 SDKでコンパイルされたアップデートをリリースし、展開ターゲットとして4.0を設定しました。

  • iOS 4またはiOS 5のユーザーは、アプリをダウンロードまたはアップグレードして使用できます。
  • あなたのアプリを既に購入しているiOS 3のユーザーはアップグレードできませんが、引き続き既存のインストール済みバージョンを使用できます。
  • あなたのアプリをまだ購入していないiOS 3のユーザーは、これを行う方法がありません。

Appleはアプリストアにアプリのバージョンを1つだけ正確に保存します。

+0

これはもう少し前に投稿されましたが、私は明確にする必要があります。Appleは正確に1つのバージョンを保持します。より高いデプロイメントターゲット(たとえばiOS 7)を使用してアップデートをリリースした場合、古いアプリの既存のユーザーは、(iOS 7以前の)交換用の電話を入手した場合、彼らが誤ってそれをアンインストールすれば? iCloudはこれをさらに改善しますか? –

+0

これは私が知る限り、まだ真実です。アンインストールしても、アプリストアから再インストールすることはできません。アプリがiTunesでバックアップされている場合、古いバージョンは同期されるとコピーされる可能性がありますが、これが私の考えることができる唯一の方法です。 iCloudはまったく役に立たない。お使いのデバイスのiCloudsバックアップには、インストールしたアプリとアプリのバイナリが含まれていないと思われます。 –

+0

ありがとうアレックス。私はそれを行い、古いデバイスの顧客からあまり熱を逃がさないことを願っています。 –

1

新しいバージョンをダウンロードしない限り、もちろん古いバージョンを使用することはできます。しかし、デスクトップ上のiTunes経由で無意識にアップデートをダウンロードすることは可能です。デバイスのApp Storeは、デバイスのOSバージョンがダウンロード中のアプリケーションと互換性があるがiTunesがそうでないかどうかをチェックするので、iTunesライブラリの古いバージョンが置き換えられ、アプリケーションがデバイスから削除されます。ユーザーはそれを同期します(ダウンロードしたバージョンをインストールできないため)。

既存のアプリケーションの場合は、展開ターゲットを可能な限り低く保ち、使用可能な新しいOSバージョンの追加機能を実行時に決定する必要があります。この方法で、古いOSバージョンとの互換性を保つことができますが、アップグレードした人にはまだ追加の機能を提供します。

関連する問題