iOS 应用内购买:沙盒环境下无效的产品 ID

10

在解决问题之前,先介绍一下稍微奇怪的设置背景:我正在为客户开发一个应用程序,我们正在使用与最终发布帐户不同的iTunes开发者帐户来进行应用程序的开发和Ad-Hoc构建,该应用程序具有Game Center和IAP集成。显然,我们最终将不得不在最终发布帐户上复制我们的设置,但是这个问题似乎与此无关。

问题是尝试在沙盒中测试应用内购买。我们在临时账户中没有任何税务/银行信息,它也不是以我的名字设置的,因此我无法添加我的信息。现在,每次我们发送一个带有我在帐户的iTunes Connect部分中添加的产品标识符的SKProductsRequest时,都会在响应中将其返回为无效的产品标识符。

以下是请求示例,其中identifiers是包含我要获取的字符串产品标识符的数组:

_productsRequest = [[SKProductsRequest alloc] initWithProductIdentifiers:[NSSet setWithArray:identifiers]];
_productsRequest.delegate = self;

还有这个代理方法:

- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
{
   /*Other code for handling valid responses*/ 

    for (NSString *invalidProductId in response.invalidProductIdentifiers) {
        DLog(@"Invalid product id: %@" , invalidProductId);
    }
}
返回该标识符的日志:
 -[InAppPurchaseManager productsRequest:didReceiveResponse:] Invalid product id: [Product ID That matches the one in ITC exactly]

我知道 ITC 在临时帐户中正常工作,因为我们所有的 GameCenter 沙盒集成都可以通过它正常运行。

其他需要注意的事项:

  • 在模拟器和多个设备上得到相同的结果。
  • 在模拟器和所有设备上注销了普通的iTunes/App store 帐户。
  • 尝试等待24小时后重新尝试。
  • 尝试添加其他产品并尝试其标识符(但在这一点上我没有等待24小时)。
  • 查看了这篇文章:解决应用内购买无效产品ID问题?,但是没有看到太有用的信息。

到目前为止,我束手无策。除了让设置这个临时帐户的人添加他们的税务/银行信息之外,我还能做什么来从 SKProductsRequest 中获取有效的产品呢?

非常感谢任何帮助。谢谢!

2个回答

38

最终账户需要具备银行和税务信息,因此被迫将所有内容转移到该账户。一旦我在另一个账户的应用程序中设置相同名称的IAP,原本返回无效产品ID的代码就完全正常了。

所以,是的,您需要银行和税务信息才能在沙盒中进行测试。噫——令人沮丧。


4

想确认一下DesignatedNerd所说的,在进行测试之前必须与苹果签订付费应用协议的事实。我昨天就遇到了这样的情况,在为客户开发的一个应用上使用我们的账户测试应用产品时发生了这种情况。经过大量的网页搜索和其他尝试,我偶然发现了文本中提到的我们没有签订协议的提示。我们在itunesconnect中输入了所有银行细节后,不久后信息消失了,我的应用内测试开始正常工作。


我也遇到了同样的问题,尝试了所有的调试程序,一切都正常,我正在处理自动续订订阅。请分享您所获得的知识,这是由于税收信息不完整吗? - dip
六年半后,我仍然无法开始处理自动续订订阅,直到银行和税务问题得到解决。世事难料... - DesignatedNerd

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接