2010年12月20日

SKProductsRequest で指定した productIdentifier が invalidProductIdentifiers になって返ってくるときの対処法

SKProductsRequest で指定した productIdentifier が invalidProductIdentifiers になって返ってくるときは、以下の点を確認してください。(ここを参考にしました)


  • そのアプリのApp IDでIn-App Purchasesは有効になっていますか?

  • そのプロダクトは「Cleared for Sale」になっていますか?

  • そのアプリの新しいバージョンをiTunes Connect上で追加していますか?

    参考にしたページでは、 Have you submitted (and optionally rejected) your application binary?

  • Xcodeプロジェクトの.plistのBundle IDはApp IDと一致していますか?

  • そのApp IDで新しいProvisioning Profileを作成してインストールしていますか?

  • アプリがそのProvisioning Profileでコードサインがされるように設定されていますか?

  • iOS 3.0以降が対象になるようにビルドされていますか?

  • SKProductRequestに渡しているProduct IDはiTunes Connectで指定したものと一致していますか?

  • iTunes Connectでプロダクトを追加してから数時間待ってみましたか?

  • iTunes Connectに正しく銀行口座情報が登録されていますか?

  • アプリをいったんデバイスから削除して再インストールしてみましたか?



この最後のはできるだけしたくないので避けていたのですが、これをしたら正常に通りました。Sandbox環境で実行されているかということなんですね。XcodeのオーガナイザのデバイスのApplicationsのところで該当アプリがグレイアウトされていたら、それはSandbox環境で実行されて“いない”ということです。その場合はいったんデバイス上でアプリを削除し、あらためてXcodeからインストールし直す必要があります。

App Storeから自分のアプリを試しにダウンロードしていたりすると、Sandbox環境を外れてしまうようです。
posted by iphone-dev at 11:24| 日記