アプリケーションでは、自動更新可能なサブスクリプションの購入を実装する必要があります。ドキュメントを理解しているので、アプリの起動時に AppStore の領収書を確認し、その領収書をサーバーで検証する必要があります。私のコードでは、領収書を取得するために次のことを行います。
NSURL *receiptURL = [[NSBundle mainBundle] appStoreReceiptURL];
NSData *receipt = [NSData dataWithContentsOfURL:receiptURL];
時々receipt
ゼロになっています。例えば:
- アプリを起動して購入しました。その後、上記のコードは non empty を返します
receipt
。 - アプリは Xcode で停止します。
- 次回のアプリ起動時
receipt
はゼロです。
なぜこれが起こるのかわかりません。receiptURL
レシート付きファイルを指しますが、[NSData dataWithContentsOfURL:receiptURL]
nil を返します。
領収書の更新を要求すると、アプリは Itunes 資格情報を入力するためのダイアログを表示します。このダイアログはアプリの起動時に表示され、これは予期しない動作であるため、これは好ましくありません。
私は何か間違ったことをしていますか?それとも、これはサンドボックス固有のケースですか?