web-dev-qa-db-ja.com

StoreKit In App Purchaseの無効な製品識別子

可能性のある複製:
iPhone StoreKit-無効な製品ID

SKProductsRequestから製品識別子の空の配列を取得しています。

次の手順を実行しました。

  1. ITunes Connectの[ユーザーの管理]にアプリ内購入テストユーザーアカウントを作成しました

  2. 「アプリ内購入の管理」の下にアプリ内購入製品をいくつか作成しました。

  3. アプリをiPhoneにロードし、[設定]→[ストア]に移動して、通常のストアからログアウトしました

  4. (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)responseコールバックにブレークポイントを設定します

送信されたすべての製品IDは、応答のinvalidProductIdentifiersプロパティにあります。リクエストを送信する際に、ステップ2で作成した製品IDと、バンドルIDで始まるIDの両方を試しました。

前もって感謝します、

ラグー

82
Sridhar Bollam

Appleフォーラムとここで提案されたすべてを試してみましたが、それでも機能しませんでした。解決策が見つかりました。サンドボックスを有効にするにはアプリをXcodeで転送する必要があります。

明らかですねまあ、既存のアプリケーションの更新を使用している場合、デバイスはそれをApp Storeでインストールされたアプリとして扱います。

そのため、デバイスからアプリを削除します。次に、デバイスをMacに接続した状態でビルドと実行を使用して、アプリをデバイスにインストールし直します。今すぐ動作するはずです:)

171
Héctor Ramos

製品IDが無効になった理由のリストを編集しています。考えられる原因のチェックリストは次のとおりです。

http://troybrant.net/blog/2010/01/invalid-product-ids/

69
Troy Brant

設定済みのアプリ内購入に関するデータを受信するには、有料アプリケーションの契約が有効になっている必要があります。

これは私のために働いた。私はまったく同じ問題を抱えていました。

31
user247503

私はここの犠牲者の一人です。まあ、そうだった。昨日、私は問題を抱えていて、何度もすべてのステップを修正しました。今日、私はトロイブラントのすべてのリストをレビューしました。

1)間違いなく、適切な配布プロファイルを作成するのを忘れました:修正済み

2)バイナリをアップロードしてすぐに拒否した:アップロードしないよりもうまくいくと彼らは言う

3)OK、その他の修正:xcode(XXXXXXXXXX.com.company.app to com.company.app)のどこからでも、ドメイン名の前の10桁を削除しました

まだ動かない。

4)デバイスがiTunesアカウントに接続されていないことを確認します。

5)ビルドを毎回クリーンにし、時々デバイスからアプリを削除します

まだ動かない。

6)最後に、製品を要求するとき、com.company.app.productID全体ではなく、productIDのみを使用しました。

そしてそれは働いた。

間違いが1つ以上あることもあると思います。すべての間違いを修正した場合、問題の正確な原因を知るのは困難です。

今私は幸せです

21
LRM

私たちの問題はAppleのFAQの最後の箇条書き「 なぜinvalidProductIdentifiers配列で製品識別子が返されるのですか? 」:

  • すべての財務要件を完了していません(このドキュメントの「契約、税、および銀行情報」セクションを参照してください)。
  • 明示的なアプリIDを使用していません。
  • 明示的なアプリIDに関連付けられたプロビジョニングプロファイルを使用しませんでした。
  • コードで正しい製品識別子を使用していません。製品識別子の詳細については、テクニカルQ&A、QA1329、「アプリ内購入製品識別子」を参照してください。
  • ITunes Connectで販売するIn App Purchase製品をクリアしていません。
  • 製品を変更した可能性がありますが、これらの変更はまだすべてのApp Storeサーバーで利用できるわけではありません。
  • あなたまたはApp ReviewがiTunes Connectの最新のバイナリを拒否した場合

ITunes Connectの「バイナリのアップロード準備完了」をクリックして、最新バージョン(拒否されていた)を「アップロード待ち」に変更しました。約10分後に問題は解決しました。

17
Phil Calvin

製品IDについて人々が混乱しているようです。

InAppが機能するためにドメイン全体(例:com.company.product.inappname)を追加する必要はありません。

ITunes Connectで作成した正確な製品IDを使用する必要があります。私の場合、SKProductsRequestが呼び出されたときにこれを使用して「Product1」を作成しました。

もう痛みはありません。

このリンクには多くの有用な情報がありますが、この詳細はありません: http://troybrant.net/blog/2010/01/in-app-purchases-a-full-walkthrough/

12
Colnaghi

Settings.appからAppStoreからログアウトしましたか? uログアウトするときにのみ、再度ログインするように求められます。

アプリIDでアプリ内購入が有効になっていますか?ワイルドカード(*)を含むアプリIDは、アプリ内購入では有効にできません。アプリの場合、新しいアプリIDを作成する必要があります。

ここに私の2セント... http://blog.mugunthkumar.com/coding/iphone-tutorial-%e2%80%93-in-app-purchases/

2
Mugunth

私の問題は、ここで説明した最初の問題でした。

https://devforums.Apple.com/thread/23344?start=0&tstart=

「まず、ポータルのアプリIDが正しいことを確認する必要があります。」

2
morgancodes

誰かがまだ「無効な製品ID」を取得できない場合に備えて...このトピックに掲載されているすべてに加えて、正しいデバッグプロビジョニングプロファイルをインストールし、iPhoneからアプリケーションを削除し、デバイスを再起動して、製品情報を取得しました。シミュレータを介して製品情報を取得してからこれを試しました(最新のXCodeで可能になりました)。バイナリをアップロードして拒否しようとしていましたが、上記を試してみました。それが役に立てば幸い!

1
Wolf

製品名をiTunes Connectに送信された同じ名前に設定することで解決しました。

1
aegzorz

アプリケーションのタイトルが他の言語と異なる場合、iPhoneの言語を英語に設定しない限り、この問題が発生することがわかりました。開発時にのみ発生します。運用上の問題はないようです。

1
Sjors Provoost

In App Purchaseは「Cleared for Sale」ですか?それは私が最初にチェックしなかった設定です。

1

今日、この種の問題を引き起こす可能性のある別のことを発見しました。奇妙な理由で、アプリが破損し、すべてのものを購入しようとするとエラーが発生することがあります。デバイスからアプリを削除し、Xcodeでビルドをクリーンアップして、デバイスに再度ビルドするという問題を解決しました。

1
SpaceDog

15個の非消耗品があります。

突然、それらの15個すべてが、私のデバイス(iPod Touch 4G)の1つでは「無効」と表示され始めましたが、他のデバイス(iPhone 4S)では有効です。とても奇妙です。

削除/再インストールしたところ、正常に動作するようになりました。

Xcodeから起動する必要があると誰かが言ったが、これは必ずしも正しいとは限らない。私は、AdHocビルドとテストユーザーアカウントを持つ多くのベータテスターを持っていますが、ほとんどの場合、彼らはOKを購入できるようです。

とは言っても、Sandbox環境全体は常に不安定で、「ダウンタイム」がたくさんあります。時々、待つことが答えです。

1
Nicolas Miari

Xcodeの「製品名」がiTunes Connectに送信されたアプリと同じであることを確認してください。

0
Tracy Platt

無効な製品が返品されて1日かそこら苦労した後、私の解決策は、購入アイテムが「開発者が販売を承認した」ことを確認することになりました。 「販売済み」という項目の横に緑色のマークがありましたが、スクリーンショットをアップロードして承認を選択する必要がありました。

これは、私がまだアプリをテストしており、まだ販売する準備ができていないことを考慮して、物事を行うための後方的で非論理的な方法のようです。

0
jumponadoughnut