【问题标题】:In App Purchase Products not found未找到应用内购买产品
【发布时间】:2026-02-01 13:05:01
【问题描述】:

我创建了一个带有捆绑标识符的应用

com.myapp

现在我添加了两个应用内购买项目。以下是产品 ID

com.myapp.product1

com.myapp.product2

现在当我获取产品列表时,它没有显示任何产品。

我使用以下代码加载产品列表

  let request = SKProductsRequest(productIdentifiers: Set(remainingIds))
        request.delegate = self
        loadProductsRequests.append(LoadProductsRequestInfo(request: request, completion: completion))
        request.start()

如果我使用其他项目的产品和捆绑 ID,代码可以正常工作。但是当我尝试我的项目时,它无法加载产品列表

问题似乎是由于捆绑标识符的结构造成的。请帮助我。

【问题讨论】:

  • 您的产品标识符的状态如何?他们“准备好提交”了吗?还是“等待上传”?

标签: ios in-app-purchase bundle-identifier


【解决方案1】:

您的代码似乎适合请求产品。

确保您已在应用内购买类别下的iTunes Connect 应用程序下添加包含捆绑 ID 和其他所需详细信息的产品。

还有一件事 - Apple 不允许从应用内接收产品列表,除非您在 iTunes connect 上填写“协议税和银行业务”下的表格。

以下是接收产品列表的代码,可能对您有帮助。

func productsRequest (_ request: SKProductsRequest, didReceive response: SKProductsResponse) {

        let count : Int = response.products.count
        if (count>0) {
            var validProducts = response.products
            var validProduct: SKProduct = response.products[0] as SKProduct

            if (validProduct.productIdentifier == self.product_id) {
                print(validProduct.localizedTitle)
                print(validProduct.localizedDescription)
                print(validProduct.price)
                buyProduct(product: validProduct);

            } else {
                print(validProduct.productIdentifier)
            }
        } else {
            print("nothing")
        }
    }

这里 product_id = "com.myapp.product1" 或 "com.myapp.product2"。

另外,从 Capabilities 启用应用内购买:

【讨论】:

    【解决方案2】:

    虽然很傻,但在我解决了其他回复中提到的所有问题后,我发现我的应用程序和 Appstore 连接中的 Bundle ID 略有不同。

    因此,请确保您的 Bundle id 在 App Store connect 和您的应用之间匹配。

    【讨论】:

      【解决方案3】:

      如果是应用内购买,您必须执行以下操作:

      登录 iTunes Connect

      •   click “Users and Roles”  and add “sandbox tester” Details to test the app with dummy payment
      •   Click on “Agreement tax and  Banking” Check For contract Type ,add needed account info,Bank info and Tax info.
      •   On the iTunes Connect homepage, click the “Manage Your Applications” link
      •   In the top-right corner, click “Create New Application”
      •   Fill out all the requested information for your app. When asked for your application binary, check the box indicating you will upload it later.
      

      您可能需要一天的时间才能获得所需的产品列表。

      【讨论】:

      • 我已经完成了那个程序。这不是问题。
      • 问题是我没有在我的应用程序中获得产品列表。
      • 我遇到了这个确切的问题,它由于这个答案中描述的问题(或轻微变化)。我认为应用内购买 API 是故意迟钝的,所以它不能被操纵。尽管从开发人员的角度来看这似乎很奇怪,但您的帐户没有正确的“文书工作”确实会导致您看到的问题。我知道这很令人沮丧,但请尝试检查您帐户中的所有内容、应用程序设置、权利等,看看是否有您忘记检查的框或您未签署的协议。苹果的神秘方式...?