SKProductsRequest 在生产环境中不返回任何产品

And*_*eri 5 production-environment in-app-purchase ios promotion-code

我有一个使用应用内购买的 iOS 应用程序。

我已经设置好了环境:

  • 设置协议税收和银行部分,
  • 创建iap产品
  • 在功能选项卡中打开“应用内购买”
  • 实现了我的代码来检索产品列表并执行购买以验证收据服务器端

我还使用沙箱环境对所有内容进行了测试,所有内容均按预期工作:商店正确接收了产品列表,我可以购买验证相应收据的产品。

我还使用testflight测试了该应用程序,它会自动为所有测试人员创建一个沙箱用户,并且一切按预期工作

我向苹果商店提交了申请,修改已通过,因此目前该申请处于“待开发者发布”状态,所有产品均已获得批准:

在此输入图像描述

为了尝试实际购买(使用真正的信用卡),我使用 iTunes connect 生成了促销代码,并在我的 iPhone 上安装了该应用程序。但是,当使用以这种方式下载的应用程序时,我在应用程序的 IAP 部分看不到任何产品。该应用程序似乎下载了空或无效的产品列表。相同的应用程序版本可以与 Testflight 配合使用。IAP 是否允许使用促销代码?为什么我只能使用沙盒用户才能下载正确的产品列表?既然我无法调试我的应用程序,我怎样才能找到问题呢?

编辑

我在这里发现了有关无效产品标识符问题的以下几点:

  1. 您是否为新的应用程序 ID 生成并安装了新的配置文件?
  2. 您是否已将项目配置为使用此新的配置文件进行代码签名?

我已经使用 XCode 自动生成了管理签名的应用程序 ID。

在此输入图像描述

在开发者门户中,我有这种形式的应用程序 ID

在此输入图像描述

目前,我还没有生成任何配置文件,事实上我在开发人员门户的“Provisionig Profile”部分中找不到它。而且,如上图所示,在 Xcode 中,我将“XCode Managed Profile”视为配置配置文件:

在此输入图像描述

这是一个问题吗?如果是,我应该如何修复它?手动生成新的配置文件并将其安装在我的计算机上是否足够?我应该为我的应用程序上传新版本吗?

如果缺少配置文件,为什么我的应用程序可以使用沙箱用户和 Testflight 环境正常工作?

And*_*eri 4

问题在于,实际上,在应用程序处于“准备销售”状态之前,您无法下载产品列表。如应用内购买常见问题解答中所述:

当应用程序获得批准后,开发者还必须批准该应用程序发布到App Store。批准后,应用程序ID将被激活到App Store。应用内购买标识符也需要同样的激活,并且只能使用应用程序激活后放置。在某些情况下,应用程序内购买标识符的激活可能会在应用程序激活后延迟长达 48 小时。如果开发者不批准将生产应用程序发布到 App Store,那么任何新的应用内购买标识符都不会被激活。当开发人员想要在 App Store 上激活应用程序之前验证应用程序时,这是一个问题。如果希望测试新项目的应用内购买流程,应用程序必须在 App Store 中激活。这只是相应应用程序提交中新的应用程序内购买标识符的问题。一旦这些应用程序内购买标识符被激活,提交的应用程序更新将发现这些- 即使更新未激活,应用程序购买标识符也会得到验证。

因此,如果您的应用程序处于“待开发人员发布”状态”状态,则无法通过促销代码下载应用程序来获取产品列表。应用程序在商店上架后,产品列表就会正确显示。

该问题与配置文件无关:自动生成的配置文件对于提交具有应用内购买功能的应用程序有效。