在应用购买测试中(看不到我的产品)

时间:2015-10-07 09:05:21

标签: ios swift in-app-purchase swift2

所以我按照教程尝试用IAP制作测试应用程序。

1)我创建了新的App ID

2)添加了ID为 iapdemo_extra_colors_colect_1 iapdemo_extra_colors_colect_2“

的两种耗材产品

3)在iTunes连接中创建测试用户

4)创建和App。

5)使用tableView视图为购买单独制作页面

6)将App ID包ID复制到info.plist为“Bundle identifier”

7)我的购买页面代码是:

import UIKit
import StoreKit

class IAPurchaceViewController: UIViewController, UITableViewDelegate, UITableViewDataSource, SKProductsRequestDelegate {


  var productIDs: [String!] = []

  var productsArray: [SKProduct!] = []

    @IBOutlet weak var tblProducts: UITableView!

    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.


        tblProducts.delegate = self
        tblProducts.dataSource = self

      productIDs.append("iapdemo_extra_colors_colect_1")
      productIDs.append("iapdemo_extra_colors_colect_2")

      requestProductInfo()
    }

  func requestProductInfo() {

    if SKPaymentQueue.canMakePayments() {
      let productIdentifiers = NSSet(array: productIDs)
      let productRequest = SKProductsRequest(productIdentifiers: productIdentifiers as! Set<String>)

      productRequest.delegate = self
      productRequest.start()
    } else {
      print("Cannot perform In App Purchases.")
    }
  }


  func productsRequest(request: SKProductsRequest, didReceiveResponse response: SKProductsResponse) {
    if response.products.count != 0 {
      for product in response.products {
        productsArray.append(product )
      }

      tblProducts.reloadData()
    } else {
      print("There are no products.")
    }

    if response.invalidProductIdentifiers.count != 0 {
      print(response.invalidProductIdentifiers.description)
    }

  }

  func numberOfSectionsInTableView(tableView: UITableView) -> Int {
    return 1
  }


  func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return productsArray.count
  }


  func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    return 80.0
  }

  func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("idCellProduct", forIndexPath: indexPath) 

    let product = productsArray[indexPath.row]
    cell.textLabel?.text = product.localizedTitle
    cell.detailTextLabel?.text = product.localizedDescription

    return cell
  }



  override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    /*
    // MARK: - Navigation

    // In a storyboard-based application, you will often want to do a little preparation before navigation
    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        // Get the new view controller using segue.destinationViewController.
        // Pass the selected object to the new view controller.
    }
    */


    // MARK: IBAction method implementation

    @IBAction func dismiss(sender: AnyObject) {
        dismissViewControllerAnimated(true, completion: nil)
    }

    // MARK: UITableView method implementation

}

当我来购买页面时,我希望看到产品列表,但我只得到“没有产品。 [“iapdemo_extra_colors_colect_1”,“iapdemo_extra_colors_colect_2”] “在控制台中。

我尝试了一些教程和苹果示例代码来检查我的应用内购买,但没有运气。

我下载Apple示例代码以检查应用内购买 https://developer.apple.com/library/ios/samplecode/sc1991/StoreKitSuite.zip

我在invalidProductIdentifiers数组中获得了我的单个产品ID。所以我找到了故障排除列表(来自Apple):

  1. 您没有使用明确的应用ID。
  2. 如果您或App Review拒绝了iTunes Connect中的最新二进制文件。
  3. 您未在iTunes Connect中清除待售应用内购买产品。
  4. 您没有使用与您的显式应用ID相关联的配置文件签署您的应用。
  5. 您可能修改过您的产品,但这些更改尚未提供给所有App Store服务器。
  6. 您没有完成所有财务要求。有关详细信息,请参阅合同,税务和银行信息。
  7. 您的产品是Apple托管的产品,其内容尚未上传到iTunes Connect。
  8. 我得到了答案

    1. 我使用显式应用ID
    2. 我的应用程序没有被拒绝,因为它是测试而我没有尝试提交它
    3. 我有单品待售
    4. 配置配置文件设置为自动。我也尝试制作一个并在xcode中使用它
    5. 我没有修改任何东西一小时(可能需要再等一会儿?)
    6. 已填写税务和银行帐户
    7. 不是Apple托管的
    8. 任何想法的人?

1 个答案:

答案 0 :(得分:0)

问题在于配置文件。这是出于某种原因不正确,所以我自己做了它,它开始运作良好。

我发现如果你的证书有问题但我的情况不是这个问题,我可以解决这个问题!

希望它有所帮助!