22

App Store の有料アプリの既存ユーザーがいます。アプリをロック解除可能な機能を備えた無料アプリに移行したいと考えています。有料の「アップグレード」を可能にするこの新しい無料バージョンに既存のユーザーをロールバックして、既存のユーザーがこのアップグレードの料金を既に支払ったかのように扱う方法はありますか? または、私が予想するように、アプリの開発が進むにつれて、既存の顧客に再購入を強制して怒らせる代わりに、2 つの別個のコード ベースを維持する必要がありますか?

Apple は今日、無料アプリ内からのアプリ内購入のサポートを許可し始めたばかりなので、最初はこの質問に対する正式な回答はおそらくないでしょう...

4

5 に答える 5

6

アプリが以前に実行されたかどうかを確認する方法はありますか? (終了時に書き込む設定、作成されたデータ ファイル、最初の実行の日付スタンプなど)

もしそうなら、アップグレードに次のようなコードを入れることができます:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if (nil == [defaults objectForKey:@"app_v2_has_been_run"]) {
    if (nil == [defaults objectForKey:@"some_key_v1_makes"] {
         // they never had v1 of your app
    } else {
         // they had v1 of your app, so unlock some stuff for them
    }
    [defaults setObject:[NSDate date] forKey:@"app_v2_has_been_run"]; // or whatever
}
于 2009-10-16T05:41:44.507 に答える
5

考えられる解決策の1つは、有料アプリケーションの新しい更新にコードを配置して、有料の顧客を識別するために使用するスイッチを切り替えることです(プロパティリストやその他の形式)。既存の有料顧客にアップグレードするのに十分な時間を与える場合、彼らは有料としてマークする必要があります。次に、有料バージョンを無料/有料アップグレードバージョンにし、既存の「Lite」バージョンをストアから削除します。新規のお客様はアプリ内購入を使用してフルバージョンのロックを解除する必要がありますが、既存のお客様はすでに支払いを済ませていることが認められます。

これに伴う問題は、既存のすべての顧客を中間バージョンにアップグレードして、アプリケーションを無料/有料アップグレードモデルに移行するために「有料」スイッチを時間内に切り替える方法です。

于 2009-10-16T01:47:03.663 に答える
2

2つの別々のコードベースは必要ありません。条件付きコンパイルを使用して2つのターゲットを構築します。

于 2009-10-16T01:32:05.587 に答える
2

私にとっては、2 つの別々のコード ベースを維持することは良い解決策ではありません。なぜなら、アプリ内購入で 2 つ (サーバーを使用したアプリ内購入ではさらに悪いこと)、おそらく 2 つのゲーム センターを維持し、ダウンロードを分離する必要があるからです (そしてそれ以下です)。一部の新規ユーザーが有料アプリを直接購入する可能性があるためです。

しかし、有料アプリを無料アプリに変更するには、私には良い方法がありません。主な理由は、デバイスをアップグレードしてきれいにすると、最初のユーザーに無料アプリを提供しないことにはなりません。それにお金を払って、本当に怒っているユーザーを持っています。

最善の方法は、Apple データベースに、ユーザーがいつアプリケーションを購入するかなどを知るように依頼できるようにすることです。誰かがそれを行うためのトリックを知っているなら、私は彼がそれを共有するのが大好きです ;)

于 2011-04-20T08:41:02.817 に答える