如何在 Apple Connect 中获取 ProductID?(在 App 购买中)

How can fetch ProductIDs in Apple Connect?(In App Purchase)

我正在尝试获取 ProductID。但响应始终为空。 我想展示我所做的。

  1. 我在开发者账户中创建 App ID。BundleID equal to AppID
  2. 我已经安装了 App Connect 项目。选择了我的项目 BundleID
  3. Created ProductID's
  4. 在 Xcode
  5. 中打开 In App Purchase
  6. 我的代码:

Created ProductID's:

             `enum IAPProduct: String {
                case Consumble = "com.xxxx.xxx.Consumable"
                case nonConsumble = "com.xxxx.xxx.TekSeferAl"
                       }`

My fetch code:

 class IAPService: NSObject {
static let shared = IAPService()
private override init() {}

//MARK:- Properties
//MARK:- Private

func getProducts() {
    SKPaymentQueue.canMakePayments()
    let products: Set = [IAPProduct.Consumble.rawValue,
                         IAPProduct.nonConsumble.rawValue]
    let request = SKProductsRequest(productIdentifiers: products)
    request.cancel()
    request.delegate  = self
    request.start()

   }
}

Delegate:

 extension IAPService: SKProductsRequestDelegate {
func productsRequest(_ request: SKProductsRequest, didReceive response: SKProductsResponse) {
    response.invalidProductIdentifiers.forEach { product in
        print("Invalid: \(product)")
    }

    response.products.forEach { product in
        print("Valid: \(product)")

    }
    func request(_ request: SKRequest, didFailWithError error: Error) {
        print("Error for request: \(error.localizedDescription)")
    }
  }
}

Output

我哪里出错了?

问题是您的产品在 App Store Connect 中似乎处于 "Missing Metadata" 状态 - 它们需要处于 "Ready to Submit" 状态才能进行测试。

您可能是:

  1. 缺少一张照片(您可以使用空白图像进行测试)
  2. 尚未与Apple签署付费应用程序协议

这是一篇很好的博客 post,其中更详细地介绍了如何设置产品:Configuring In-app Products is Hard