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

时间:2018-11-26 08:56:26

标签: ios in-app-purchase production-environment promotion-code

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

我已经设置了环境:

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

我还用沙盒环境对所有产品进行了测试,所有产品均按预期工作:商店正确收到了产品清单,我可以购买用于验证相应收据的产品。

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

我已将应用程序提交到Apple商店,并且修订版本已通过,因此该应用程序处于“ 待开发人员发布版本”状态时,所有产品均已获批准:

enter image description here

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

编辑

我发现here关于无效产品标识符问题的以下几点:

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

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

enter image description here

在开发人员门户中,我具有此格式的应用程序ID

enter image description here

当前,我还没有生成任何配置文件,实际上我无法在开发人员门户的“ Provisionig配置文件”部分中找到它。而且,如您在上图中所看到的,在Xcode中,我将“ XCode托管配置文件”视为置备配置文件:

enter image description here

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

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

提前谢谢

1 个答案:

答案 0 :(得分:1)

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

批准某个应用程序后,开发人员还必须批准该应用程序以发布到App Store。批准后,该应用程序ID将激活到App Store。应用程序内需要进行相同的激活购买标识符,并且仅在激活应用程序后才能发生;在某些情况下,应用程序内购买标识符的激活可能会在激活应用程序后最多持续48小时。 如果开发人员不同意将生产应用程序发布到App Store,则不会激活任何新的应用程序内购买标识符。当开发人员想要在应用商店上激活应用程序之前对其进行验证时,这是一个问题。如果希望测试新项目的应用程序内购买过程,则必须将应用程序激活到App Store。对于相应的申请提交中的新应用内购买标识符,这只是一个问题。一旦激活了这些应用程序内购买标识符,即使未激活更新,对提交的应用程序更新也会发现这些应用程序内购买标识符已得到验证。

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

问题不相关:配置文件自动生成,可以自动提交具有应用内购买功能的应用程序。

相关问题