目的:実装を続行する前に、少なくとも IAP の存在を検証できることをテストしたいと考えています。つまり、テストする前にすべての IAP 機能を実装したくありません。
症状: を送信していSKProductsRequest
ます。コールバックはデリゲートに正しく到達しています。メンバーは空のresponse.products
配列で、最初response.invalidProductIdentifiers
に送信した IAP ID と同じです。SKProductsRequest
IDのスペルを再確認しました。私が行ったすべての手順については、以下を参照してください。これらを含めたのは、「何々をするのを忘れましたか?」のような善意のアドバイスを未然に防ぐためだけです。
質問: この呼び出しを成功させるために、アプリのレビュー (ベータ レビューまたはフルオン) を行う必要がありますか? オンラインの意見はさまざまです — 賛成、反対、あいまいです。ウィット:
•アップロード不要: Ray Wenderlich のチュートリアル ( https://www.raywenderlich.com/122144/in-app-purchase-tutorial ) では、SKProductsRequest はアプリのアップロードやレビューなしで成功する必要があると具体的に述べています。
•アップロードが必要: 別のスタック オーバーフローの質問 (アプリ内購入の 'SKProductsRequest' が正常な応答を生成しない) は、アプリを「送信」する必要があると述べています。(単に TestFlight 用にアップロードされたのではなく)レビュー用に提出されたとは言いませんが、これは暗示されています。この回答は正しいとフラグが立てられていますが、それを信じているかどうかはわかりません。
IAP プロセスの最初のステップをテストする前に、アプリのレビューを受ける必要があるのは間違っているようです。または、IAP の不完全な実装を送信できますか? それも間違っているように聞こえます。
• Apple からのあいまいな情報: iTunesConnect IAP セクションの情報ボックスの文言は、光を当てるのではなく削除します。
最初のアプリ内購入は、新しいアプリ バージョンで送信する必要があります。アプリのアプリ内購入セクションからそれを選択し、[送信] をクリックします。
「それ」はIAPを意味すると思います。(indef. 代名詞の不適切な使用。) 私の IAP は IAP セクションにリストされ、黄色の「送信準備完了」注釈が付いています。選択すると (リンクでもある IAP の左側の名前をクリック)、IAP の特定のページに移動します。「送信」という正確なラベルの付いたボタンはありませんが、「レビューのために送信」というラベルの付いたボタンがあります。無効になっています。
情報ボックスの次の段落は、アプリのバージョンと IAP の組み合わせを確認する必要があることを暗示しているようです。
バイナリがアップロードされ、最初のアプリ内購入が審査のために送信されたら、次の表を使用して追加のアプリ内購入を送信できます。
アプリはアップロードするだけでよいが、IAP は*審査のために提出する必要があると書かれていることに注意してくださいSKProductsRequest
。テストする前に、すべての IAP 機能を実装する必要があります。
補遺 — 手順:
- IAP を有効にして AppID を作成しました。これは Dev Portal で確認しました。
- PP 生成に Xcode の「Automatically manage signing」オプションを使用しています。Xcode は配布 PP を生成しましたが、開発 PP は生成しませんでした。(大丈夫だと思います。)
- この PP の「有効なサービス」に IAP があることを Dev Portal で確認しました。
- しかし...これが署名に使用されているPPであることをどのように知ることができますか? 新しい Xcode マネージド サービスを使用して、PP 設定は「自動」です。
- iTunesConnect で IAP を作成しました。
- IAP の ID が、製品固有の文字列が末尾にドットが付いたアプリ バンドル ID であることを確認しました。
- タイプミスのない IAP の製品 ID を送信していることを確認しました。
- IAP を作成してから 1 日待ちました。
- Cleared for Sale チェックボックスをオンにしました。(IAP を作成した後、しばらくして「自分自身をチェック」しました。)
- サンドボックス テスターを追加しました。
- アプリの新しいバージョンをアップロードしました。(レビュー用ではなく、テスト用です。)
- シミュレーターとデバイスの両方でアプリを起動し、この投稿の上部に失敗を示しました。