15

ユーザーがデジタル マップやチャートなどを購入できるアプリを開発しています。これらをアプリ内購入にラップしたいと思います。問題は、ネットの別のソースから取得しているため、グラフがいくつになるかを事前に知らないことです。何百もあるかもしれません。

そのソースから定期的にグラフを取得してローカルに保存するサーバーがあります。将来、新しいチャートが表示されるか、既存のチャートが消える可能性があります。これらすべてが手動介入なしで行われます。

グラフには 3 つの異なるタイプがあります。

私の最初の解決策は、3 つの消費可能なアイテムを作成し、ユーザーがこれらを購入できるようにすることでした。これは問題なく機能していましたが、残念ながら Apple はそれを拒否しました。

しかし、非消費型で必要なものを実装する方法にかなり途方に暮れています。これら 3 つのタイプを非消耗品として作成し、ユーザーが 1 つを購入した場合、非消耗品は 1 回しか購入できないため、ユーザーはそのグループ内の他のすべてのチャートを無料で入手できます。

私が考えることができる唯一の解決策は、すべてのチャートに非消耗品を作成することです。しかし、それは何としても避けたいことです。現在のように、チャートはリモート ソースから定期的に取得され、手動で作業する必要はありません。そのままにしておきたいと思います。新しいグラフが表示されるたびに、新しい非消耗品の購入を手動で作成したくありません。

これをスケーラブルにする方法はありますか?

4

4 に答える 4

19

コードで完全に説明することはできませんが、この問題は次の 2 つの方法で処理できます。

通貨。地図などの非消耗品は販売していません。あなたは通貨を売ります。その通貨で地図を購入します。ユーザーが店頭を訪れるたびに動的にフィードする地図。そうすれば、いくつかの購入オプションを追跡するだけで済みます。

他のオプション: 私が働いていた会社は、最初にこれを非常に簡単に設定しました。アプリが起動し、そこにあったアプリ ストア ID を返す php スクリプトにアクセスします。その時点で、それらを確認し、有効な返品を使用します。このオプションにより、iTunes Connect を介してアプリ内購入を変更し、スクリプト内で変更することができ、すべてが素晴らしかった.

于 2012-08-10T01:53:08.943 に答える
5

これは古い投稿ですが、同じ質問をしたところ、独自のサーバーで製品 ID リストをホストすることで非消耗品を動的に提供する方法があることがわかりました。

アプリで販売するすべての製品には、一意の製品 ID があります。アプリはこれらの製品 ID を使用して、価格などの製品に関する情報を App Store から取得し、ユーザーがそれらの製品を購入したときに支払い要求を送信します。アプリは、アプリ バンドル内のファイルから製品 ID のリストを読み取るか、サーバーから取得できます。

広告を削除したり機能を有効にしたりするためのアプリ内購入など、アプリに製品の固定リストがある場合は、そのリストをアプリ バンドルに埋め込みます。追加のレベルやキャラクターをサポートするゲームなど、アプリを更新する必要なく製品 ID のリストを変更できる場合は、アプリでサーバーからリストを取得します。

特定のアプリ用に iTunes Connect で構成されたすべての製品のリストを取得するランタイム メカニズムはありません。アプリの製品リストを管理し、その情報をアプリに提供する責任があります。多数の製品を管理する必要がある場合は、iTunes Connect の一括 XML アップロード/ダウンロード機能の使用を検討してください。

Apple Developer アプリ内購入ガイド

于 2014-01-22T17:17:29.667 に答える
3

これらを IAP 経由で直接購入した場合でも、何らかのアプリ内「通貨」を通じて購入した場合でも、アイテムごとに一意のマップ名を保証するネーミング システムを使用することで、今後行う必要のある作業量を簡素化できます。あなたは売りたいです。例えば:

 NSString *myMapName = [NSString stringWithFormat:@"%@%@%@%@", app_identifier, map_type, top_left_corner_location, scale];

このようにして、サーバーがその情報を新しいマップに渡す場合、IAP 識別子がどうあるべきかをプログラムで知る方法があります — 文字列の値にするだけmyMapNameです。

通貨を使用する場合 (代替オプションよりも簡単に聞こえますが、多くの大きなアプリが行っているようです)、マップ内のいくつかのデータでハッシュを作成して、人々が推測できないようにするだけです。キーチェーン/plistに保存しているコードと、お金を払わずに魔法のようにすべてのマップを取得します:)

実際にマップごとに個別の IAP を持っている場合、悲しいことに、すべての可能なマップに対して一度 IAP を作成する必要があります。(しかし、最低賃金でその部分を行うために子供を雇うことができますよね?それは単なるデータ入力です)ただし、マップが実際に購入されました。

お役に立てれば!

于 2012-08-13T21:15:47.543 に答える
3

アイテムの制限は、10,000 かそこらのような大きなものだと思います。

多数のアイテムを事前に作成し、ウェブサイトをチェックして最大のチャート番号を確認するコードを追加し、ユーザーが所有しているチャートのみを購入できるようにします。

アプリはチャート名と対応する製品 ID をサーバーからダウンロードし、製品を購入するだけです。

Apple は、実際の製品が既にアプリ内にあり、購入によってロックが解除されているか、サーバーからダウンロードされているか、Web サイトから提供されているかどうかは気にしません。

于 2012-08-08T19:25:46.983 に答える