可能性のある複製:
iPhone StoreKit-無効な製品ID
SKProductsRequest
から製品識別子の空の配列を取得しています。
次の手順を実行しました。
ITunes Connectの[ユーザーの管理]にアプリ内購入テストユーザーアカウントを作成しました
「アプリ内購入の管理」の下にアプリ内購入製品をいくつか作成しました。
アプリをiPhoneにロードし、[設定]→[ストア]に移動して、通常のストアからログアウトしました
(void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
コールバックにブレークポイントを設定します
送信されたすべての製品IDは、応答のinvalidProductIdentifiers
プロパティにあります。リクエストを送信する際に、ステップ2で作成した製品IDと、バンドルIDで始まるIDの両方を試しました。
前もって感謝します、
ラグー
Appleフォーラムとここで提案されたすべてを試してみましたが、それでも機能しませんでした。解決策が見つかりました。サンドボックスを有効にするにはアプリをXcodeで転送する必要があります。
明らかですねまあ、既存のアプリケーションの更新を使用している場合、デバイスはそれをApp Storeでインストールされたアプリとして扱います。
そのため、デバイスからアプリを削除します。次に、デバイスをMacに接続した状態でビルドと実行を使用して、アプリをデバイスにインストールし直します。今すぐ動作するはずです:)
製品IDが無効になった理由のリストを編集しています。考えられる原因のチェックリストは次のとおりです。
設定済みのアプリ内購入に関するデータを受信するには、有料アプリケーションの契約が有効になっている必要があります。
これは私のために働いた。私はまったく同じ問題を抱えていました。
私はここの犠牲者の一人です。まあ、そうだった。昨日、私は問題を抱えていて、何度もすべてのステップを修正しました。今日、私はトロイブラントのすべてのリストをレビューしました。
1)間違いなく、適切な配布プロファイルを作成するのを忘れました:修正済み
2)バイナリをアップロードしてすぐに拒否した:アップロードしないよりもうまくいくと彼らは言う
3)OK、その他の修正:xcode(XXXXXXXXXX.com.company.app to com.company.app)のどこからでも、ドメイン名の前の10桁を削除しました
まだ動かない。
4)デバイスがiTunesアカウントに接続されていないことを確認します。
5)ビルドを毎回クリーンにし、時々デバイスからアプリを削除します
まだ動かない。
6)最後に、製品を要求するとき、com.company.app.productID全体ではなく、productIDのみを使用しました。
そしてそれは働いた。
間違いが1つ以上あることもあると思います。すべての間違いを修正した場合、問題の正確な原因を知るのは困難です。
今私は幸せです
私たちの問題はAppleのFAQの最後の箇条書き「 なぜinvalidProductIdentifiers
配列で製品識別子が返されるのですか? 」:
ITunes Connectの「バイナリのアップロード準備完了」をクリックして、最新バージョン(拒否されていた)を「アップロード待ち」に変更しました。約10分後に問題は解決しました。
製品IDについて人々が混乱しているようです。
InAppが機能するためにドメイン全体(例:com.company.product.inappname)を追加する必要はありません。
ITunes Connectで作成した正確な製品IDを使用する必要があります。私の場合、SKProductsRequestが呼び出されたときにこれを使用して「Product1」を作成しました。
もう痛みはありません。
このリンクには多くの有用な情報がありますが、この詳細はありません: http://troybrant.net/blog/2010/01/in-app-purchases-a-full-walkthrough/
Settings.appからAppStoreからログアウトしましたか? uログアウトするときにのみ、再度ログインするように求められます。
アプリIDでアプリ内購入が有効になっていますか?ワイルドカード(*)を含むアプリIDは、アプリ内購入では有効にできません。アプリの場合、新しいアプリIDを作成する必要があります。
ここに私の2セント... http://blog.mugunthkumar.com/coding/iphone-tutorial-%e2%80%93-in-app-purchases/
私の問題は、ここで説明した最初の問題でした。
https://devforums.Apple.com/thread/23344?start=0&tstart=
「まず、ポータルのアプリIDが正しいことを確認する必要があります。」
誰かがまだ「無効な製品ID」を取得できない場合に備えて...このトピックに掲載されているすべてに加えて、正しいデバッグプロビジョニングプロファイルをインストールし、iPhoneからアプリケーションを削除し、デバイスを再起動して、製品情報を取得しました。シミュレータを介して製品情報を取得してからこれを試しました(最新のXCodeで可能になりました)。バイナリをアップロードして拒否しようとしていましたが、上記を試してみました。それが役に立てば幸い!
製品名をiTunes Connectに送信された同じ名前に設定することで解決しました。
アプリケーションのタイトルが他の言語と異なる場合、iPhoneの言語を英語に設定しない限り、この問題が発生することがわかりました。開発時にのみ発生します。運用上の問題はないようです。
In App Purchaseは「Cleared for Sale」ですか?それは私が最初にチェックしなかった設定です。
今日、この種の問題を引き起こす可能性のある別のことを発見しました。奇妙な理由で、アプリが破損し、すべてのものを購入しようとするとエラーが発生することがあります。デバイスからアプリを削除し、Xcodeでビルドをクリーンアップして、デバイスに再度ビルドするという問題を解決しました。
15個の非消耗品があります。
突然、それらの15個すべてが、私のデバイス(iPod Touch 4G)の1つでは「無効」と表示され始めましたが、他のデバイス(iPhone 4S)では有効です。とても奇妙です。
削除/再インストールしたところ、正常に動作するようになりました。
Xcodeから起動する必要があると誰かが言ったが、これは必ずしも正しいとは限らない。私は、AdHocビルドとテストユーザーアカウントを持つ多くのベータテスターを持っていますが、ほとんどの場合、彼らはOKを購入できるようです。
とは言っても、Sandbox環境全体は常に不安定で、「ダウンタイム」がたくさんあります。時々、待つことが答えです。
Xcodeの「製品名」がiTunes Connectに送信されたアプリと同じであることを確認してください。
無効な製品が返品されて1日かそこら苦労した後、私の解決策は、購入アイテムが「開発者が販売を承認した」ことを確認することになりました。 「販売済み」という項目の横に緑色のマークがありましたが、スクリーンショットをアップロードして承認を選択する必要がありました。
これは、私がまだアプリをテストしており、まだ販売する準備ができていないことを考慮して、物事を行うための後方的で非論理的な方法のようです。