十、<br>社内購入テストのFAQ

5973 ワード

1、iTunes Connectでは、各アプリケーションがどのくらいの格内蔵購入製品IDを作成できますか?


In-APp Purchase Configuration Guide for iTunes ConnectのConfiguring a Productを読んで答えを探します.

2、我的iOS应用程序当前是使用了一个 wildcard App ID 的 Provisioning Profile 来签名的。我应该如何让我的 App ID 支持内置购买?


App Distribution Guideのhttps://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/MaintainingProfiles/MaintainingProfiles.html#//apple_ref/doc/uid/TP40012582-CH 30-SW 4は、App IDが内蔵購入をサポートする方法を学びます.

3、iTunes ConnectでManage In-APp Purchaseボタンが見つかりませんか?


次の理由で、Manage In-App Purchaseボタンがないかもしれません.
  • iTunes Connectアカウントは管理者または技術者アカウントではありません.
  • あなたのチームエージェントは、最新のiOSまたはMac開発者計画ライセンス契約に同意していません(
  • 最新の支払いのアプリケーション契約はありません.

  • 4、バイナリファイルをアップロードして内蔵購入をテストしなければなりませんか?


    いいえ、テスト内蔵購入ではバイナリファイルをアップロードする必要はありません.
    重要なヒント:アプリケーションの監査が通過するまで、開発バイナリをiTunes Connectにアップロードしないでください.iTunes Connectにバイナリ・ファイルがあり、機能が不十分な場合は、レビューを適用するとバイナリがレビューされ、開発バイナリ・ファイルが却下される可能性があります.iTunes Connectで最近のバイナリファイルをレビューで却下する場合は、組み込み購入のテストに失敗します.このような状況の変化方法は、購入機能を内蔵していないバイナリファイルをアップロードすることで、監査を通過することができます.バイナリ・ファイルの監査に合格した後、購入機能を内蔵したバイナリ・テストをリカバリします.

    5.私はどのように「あなたの口座情報が変わった」というエラーを解決しますか?


    あなたがこのエラーを得たのは、内蔵購入をテストするときにテストユーザーアカウントでデバイスにログインしたからです.このエラーを解決する方法は、デバイスの設定でアプリケーションストアにログインし、iTunes Connectで新しいテストユーザーアカウントを再作成し、組み込み購入をテストすることです.

    6、なぜ私の製品識別子はinvalidProductIdentifiers配列に返されますか?


    これは、次の原因による可能性があります.
  • あなたはすべての財務要求を完了していません.
  • explicit App IDを使用していません.
  • explicit App IDに関連付けられたProvisioning Profileを使用していません.
  • コードに正しい製品識別子が使用されていません.製品識別子については、Technical Q&A,QA 1329,'In-APp Purchase Product Identifiers'を参照してください.
  • iTunes Connectで内蔵購入製品を販売していません.
  • 製品を変更したかもしれませんが、これらの変更はすべてのアプリケーションストアサーバに適用されるわけではありません.
  • アプリケーションレビューが却下され、iTunes Connectで最新のバイナリファイルが表示されます.

  • 7、私はどのように解決しますか?あなたはすでにこの内蔵購入を完成しましたが、まだダウンロードされていません。エラーメッセージ?


    これは、あなたのアプリケーションでSKPaymentQueueのfinishTransaction:メソッドを呼び出していないからです.このメソッドを呼び出して、取引を支払いリストから削除します.

    8、私はどのように解決するべきですか"あなたはすでに成功して購入しました。OKをクリックして再び無料でダウンロードします。"エラーメッセージ?


    この情報はエラーではなく、アラートです.それはあなたがすでに購入した非消費製品を購入しようとしていると言っています.すでに購入した非消費製品を再購入するには、再支払いは必要ありません.支払キューを呼び出すrestoreCompletedTransactionsメソッドでは、アプリケーション内の製品をリカバリできません.

    9、取引キューを呼び出すrestoreCompletedTransactionsメソッドは再購入されない可能性があります。


    これは、次の原因による可能性があります.
  • 以前は、非消費、自動更新購読、または無料購読の製品を購入していませんでした.
  • リカバリできない非自動更新購読または消費製品のリカバリを試みています.
  • restoreCompletedTransactionsメソッドは、非消費を回復し、サブスクリプションを自動的に更新し、無料で製品をサブスクリプションするしかありません.

  • 注意:Store Kitは、リカバリ可能な製品がない場合、paymentQueue:updatedTransactions:メソッドを呼び出すことはありません.

    10、私はいつ私の内蔵購入製品を回復すべきですか?


    自動更新購読または非消費製品をリカバリできるのは、次の2つの場合のみです.
  • は、ユーザの追加デバイス上でそれらをダウンロードするために使用される.
  • 関連アプリケーションが削除されると、デバイス上で再ダウンロードできるようにします.

  • 11、私はどのように解決しますか?これはユーザーアカウントをテストするものではありません。砂箱環境で新しいアカウントを再作成してください。エラーメッセージ?


    このエラーは、Store Kitが購入確認を要求したときにiTunesユーザーアカウントを入力したためです.解決策は、あなたのデバイスの設定でアプリケーションストアにログインし、Store Kitが購入を確認するように要求したときにテストユーザーアカウントを入力することです.

    12.receiptデータを取り戻すにはどうすればいいですか?


    まずappStoreReceiptURLメソッドを使用してアプリケーションreceiptを位置決めし、リスト2に示すようにreceiptデータ全体を読み出します.(iOS 7、OS X 10.7以降のみ)Listing 2 Retrieving the receipt data
    NSURL *receiptURL = [[NSBundle mainBundle] appStoreReceiptURL];
     // Test whether the receipt is present at the above URL 
    if(![[NSFileManager defaultManager] fileExistsAtPath:[receiptURL path]])
    { 
    NSData *receiptData = [NSData dataWithContentsOfURL:receiptURL];
     }
    

    注意:iOS 6または以前のバージョンをサポートするアプリケーションでは、SKPaymentTransactionオブジェクトのtransactionReceiptプロパティを使用して、リスト3などのreceiptデータを取得します.
    Listing 3 Retrieving the receipt data in iOS 6 and earlier
    -(void)completeTransaction:(SKPaymentTransaction *)transaction{ NSData *receiptData = [transaction transactionReceipt];}
    

    13、receiptの検証に失敗し、状態は1つである(iOS)


    これは、次の理由で発生します.
  • iOSアプリケーションでreceiptデータをbase 64で暗号化していません.
  • がアプリケーションストアに送信するオブジェクトはJSON形式ではありません.サブスクリプションを自動更新するための正しいJSONオブジェクトであるリスト4を参照してください.Listing 4 valid sample receipt for verifying an auto-renewable subscription
  • { 
    "receipt-data" : "...", "password" : "..."
    }
    

    14、私のアプリに購入機能を追加しました。どうやってテストすればいいですか?


    社内購入が正しく実現されているかどうかをテストするには、次の手順に従います.
  • Ad Hocリリースで初期アプリケーションをダウンロードします.
  • は、Ad Hocのリリース方法で更新版アプリケーションをダウンロードし、初期アプリケーションが上書きされたことを検証します.
  • は更新バージョンを使用して、その中から製品を購入してみます.

  • 15.私のreceiptを検証します。私はどんなurlを使うべきですか?


    砂箱でアプリケーションをテストし、アプリケーションが監査中である場合は、砂箱urlを使用します.https://sandbox.itunes.apple.com/verifyReceipt .
    アプリケーションがアプリケーションストアで販売されると、本番urlを使用します.https://buy.itunes.apple.com/verifyReceipt.

    16、自動更新購読receipt(iOS)をどのように検証すればいいですか?


    まず、自動更新購読receiptを検証するために、常に生産URL(production URL)を使用します.21007ステータスコードを受け取った場合は、砂箱URLを使用して検証します.この方法に従って検証すると、砂箱でテストしたり審査したり、アプリケーションストアで販売したりするときに、アプリケーションでURLを切り替える必要がないことを確認できます.
    注:21007ステータスコードは、receiptが砂箱receiptであることを示しているが、検証のために本番サービス(production service)に送信される.

    17、「Current receipt invalid or mismatched ds personid」エラーメッセージ(OS X)をどのように解決すればいいですか?


    私の内蔵購入はiTunes Connectで多くの言語をローカライズしています.しかし、localizedDescriptionとlocalizedTitleの特性は、私のテストデバイスのデフォルト言語が英語ではない場合でも、常に英語で情報を返します.localizedDescriptionとlocalizedTitleは、現在のiTunesストアで設定されているデフォルト言語に基づいて、現在のデバイス言語ではなくローカライズ情報を返します.たとえば、iTunes Connectでドイツ語をローカライズした組み込み購入が、英語でユーザーアカウントをテストしてログインした場合、localizedDescriptionとlocalizedTitleは英語情報を返します.localizedDescriptionとlocalizedTitleでドイツ語の情報を返すには、ドイツ語のテストユーザーアカウントでテストデバイスにログインしてください.
    参考App Distribution Guide iTunes Connect Developer Guide In-APp Purchase Programming Guide Receipt Validation Programming Guide In-APp Purchase Configuration Guide for iTunes Connect Technical Q&A,QA 1329,'In-APp Purchase Product Identifiiers'