6

AppStore のレビュアーは、Non-renewing subscriptionsタイプを購入するように私たちに要求し、ユーザーに登録を強制しません。彼はまた、ユーザーが登録していないことを意味し、彼はNon-renewing subscriptionsタイプを購入することもできます

また、Apple Documentの要件Non-renewing subscriptionsは復元できる必要があります。彼は言った :

更新されないサブスクリプションと消耗品は、ストア キットによって自動的に復元されません。ただし、更新しないサブスクリプションは復元可能である必要があります。これらの製品を復元するには、購入時に独自のサーバーにトランザクションを記録し、それらのトランザクションをユーザーのデバイスに復元するための独自のメカニズムを提供する必要があります。

したがって、ユーザー登録時に、ユーザーに一意の userId を付与します。ユーザーは userName と password を使用して userId を取得できるため、さまざまな ios デバイスのユーザー情報を共有でき、トランザクションを復元できます。トランザクションには一意の userId があるためです。 .

しかし、問題は次のとおりです。ユーザーが登録していない場合、私のサーバーも一意の userId を提供し、登録していないユーザーは userId を に保存し.plistます。また、トランザクションを復元することもできます。しかし、彼が私のアプリを削除してから一度ダウンロードすると、userId が失われるため、トランザクションを復元できません。彼は通常のデフォルト ユーザーになります。

appStore は次の理由でアプリを拒否しますか?

登録せずに非更新サブスクリプションのトランザクションを復元することはできません。これにより、復元前にアプリが削除されます

appStoreが拒否する場合、それを修正する方法、thx all.

4

3 に答える 3

4

アプリを appStore に提出しました。

登録またはログインした非更新サブスクリプションのトランザクションを復元します。

「登録」および「アプリの削除」を行わない非更新サブスクリプションのトランザクションは復元しません。

アプリが承認されました

于 2013-07-18T05:47:30.977 に答える
1

Apple は、iCloud を使用して購入データを永続化することを提案しています。

#if USE_ICLOUD_STORAGE
NSUbiquitousKeyValueStore *storage = [NSUbiquitousKeyValueStore defaultStore];
#else
NSUserDefaults *storage = [NSUserDefaults standardUserDefaults];
#endif

NSData *newReceipt = transaction.transactionReceipt;
NSArray *savedReceipts = [storage arrayForKey:@"receipts"];
if (!receipts) {
    // Storing the first receipt
    [storage setObject:@[newReceipt] forKey:@"receipts"];
} else {
    // Adding another receipt
    NSArray *updatedReceipts = [savedReceipts arrayByAddingObject:newReceipt];
    [storage setObject:updatedReceipts forKey:@"receipts"];
}

[storage synchronize];

少なくとも、ユーザーがアプリを削除したときに、購入情報を破棄するよりはましです。顧客に 1 つのサービスに対して 2 倍の料金を支払わせることは、優れたユーザー エクスペリエンスとは言えません。

于 2014-12-01T08:16:36.367 に答える