2016-11-29 5 views
3

私はXcode 8.0、Swift 3.0を使用しており、iPadでのアプリの購入をテストしています。 サンドボックスユーザーを使用してアプリの購入をテストしたい。iOSでのアプリの購入テストで

は、デバイスの問題は、私は、製品要求コードの応答に製品リストを取得していない午前され

を設定するに添加していないアカウントがありません。 は私のコードで見てみてください。

let PRODUCT_ID_MY_PRODUCT = "com.company.ProjectName.MyProduct" 
// The ProducID in this code and ProducID on iTunes are the SAME. ✔️ 

override func viewWillAppear(_ animated: Bool) { 
    super.viewWillAppear(animated) 

    if productID == nil { 
     productID = PRODUCT_ID_MY_PRODUCT 
    } 
    SKPaymentQueue.default().add(self) 
} 


override func viewDidAppear(_ animated: Bool) { 
    super.viewDidAppear(animated) 

    startPurchases() 
} 

func startPurchases() { 
    if (SKPaymentQueue.canMakePayments()) 
    { 
     let productIDs = NSSet(object: self.productID!) 

     let productsRequest:SKProductsRequest = SKProductsRequest(productIdentifiers: productIDs as! Set<String>) 
     productsRequest.delegate = self 
     productsRequest.start() 
    } 
} 


// Delegate Methods for SKProductsRequest 
func productsRequest (_ request: SKProductsRequest, didReceive response: SKProductsResponse) { 
    let count : Int = response.products.count 
     // THE PROBLEM IS HERE.. I AM GETTING COUNT IS ZERO.. MEANS response.products returning null ARRAY 
    if (count>0) { 
     let validProducts = response.products 
     for aProduct in validProducts { 
      print(aProduct.productIdentifier) 
     } 
    } else { 
     DispatchQueue.main.async(execute: { 
      UIAlertView(title: "Purchase !", message: "Product not available", delegate: nil, cancelButtonTitle: "OK").show() 
      return 
     }) 
    } 
} 

だから.....それは問題です:私は(配列内のデータなし)ヌルresponse.productsはとても解決策を見つけるために私を助けてください取得しています。あなたはコード内のコメントを見ることができます: //ここに問題があります。私はカウントがゼロになっています。応答は返されません。ARRAY

私はiTunes Connectで製品を作成しました。あなたは下のイメージを見ることができます。すべての製品はです。「準備完了」状態です。

私もアプリ内購入をテストするためのSendboxのユーザーを作成したiTunesの

Your first In-App Purchase must be submitted with a new app version. 
Select it from the app’s In-App Purchases section and click Submit. 


Once your binary has been uploaded and your first In-App Purchase 
has been submitted for review, additional In-App Purchases can be 
submitted using the table below. 

In-App Purchases iOS iTunes Connect Ready to submit state

そして

にいくつかの警告があります。下の画像を参照してください:

Sendbox test user for In-App Purchases iOS itunes

を、私は何かを逃しましたか?またはエラーは何ですか?そしてエラーはどこですか? 私はこれらの設定に 機能をチェックしてくださいサンドボックスユーザーに

+0

あなたはそれを解決しましたか? –

+0

はい@ MaximShoustin ...下の私の答えを見てください。あなたが同じ問題に直面している場合、私はあなたがいくつかの小さな部分を欠いていると思います。 –

答えて

1

を使用して、アプリの購入でテストしたい - >アプリ内購入 - >で有効 - > とdeveloper.apple.comで「ON」に設定 - App IDの購入をアプリに許可します。

シミュレータの代わりにデバイスでテストアプリを試してください。

 Xcode-->capabilities

developer.apple.com--> enable In-App purchase

+0

応答のMahial Singh ..ありがとうございました。しかし、すでにiTunesで証明書とプロビジョニングプロファイルでアプリ内購入を有効にしています。また、xcode - >機能でアプリ内購入を有効にしました...これはすでに完了しています。 –

+0

商品IDを確認する必要があります。製品識別子の一致は大文字と小文字が区別されます。 だから、あなたが言う com.yourcompany.product1 の識別子と、アップルの製品を作成しました、あなたはあなたのリストが返されます com.yourcompany.Product1 の製品識別子と製品の要求を呼び出す場合製品はゼロです。 – Rivendell

+0

それとも、 のproductID = "MYPRODUCT" を聞かせてproductsRequestで試すことができます。SKProductsRequest = SKProductsRequest(productIdentifiers:!などproductIDs を設定します) ではなく のproductID = "com.company.ProjectName.MyProduct" – Rivendell

5

私はこれを修正しました。注意が必要な点がいくつかあります。下記をご覧ください:

  • 開発者アカウントが有料アプリケーション契約をしていることを確認してください。以下の画像を参照してください:
  • iTunes Connectで製品を作成してください。
  • インアプリ購入コードと設定を実装します。
  • 配布プロファイルを使用して1つのビルドを作成します。
  • 店舗でビルドをアップロードします。現在のバージョンにビルドを追加します。 iTunes Connectのバージョンにアプリ内購入を追加します。
  • それからアプリを提出していない場合は、試してみてください。あなたのデバイスでテストしようとした後。
  • サンドボックスユーザーでテストするときは、既にログインしているアカウントからデバイス設定からログアウトし、サンドボックスIDでログインする必要があります。
  • いくつかのスクリーンショットが参考になる場合があります。

enter image description here

enter image description here

enter image description here

enter image description here

+0

私は銀行情報を完成させていないということでした。そのステップが完了すると、製品IDが機能し始めました。 –

+1

バイナリをアップロードして提出する必要がありますか? – duykaka

関連する問題