在我遇到问题之前稍微奇怪的设置的背景:为客户端处理应用程序,我们使用的是另一个iTunes开发者帐户,而不是最终发布的用于开发和Ad-Hoc构建的帐户一个具有Game Center和IAP集成的应用程序。显然,我们最终必须在最终版本帐户上复制我们的设置,但问题似乎是无关的。
问题是尝试在沙箱中测试应用内购买。我们在临时账户中没有任何税务/银行信息,它没有以我的名义设置,所以我不能只添加我的。现在,每次我们发送SKProductsRequest和我在临时应用程序帐户的iTunes Connect部分添加的产品的产品标识符时,它都会在响应中作为无效的产品标识符返回。
此请求中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沙箱集成都能正常运行。
其他注意事项:
此时,我很难过。除了让设置此临时帐户的人员添加他们的税/银行信息之外,我还能做些什么才能从SKProductsRequest获得有效的产品?
非常感谢任何帮助。谢谢!
答案 0 :(得分:34)
不得不让一切都转移到最终账户,这确实有银行和税务信息。一旦我在其他帐户的应用程序中使用相同的名称设置IAP,完全相同的代码返回无效的产品ID完全没问题。
所以,是的,您需要银行和税务信息甚至在沙箱中进行测试。嘘 - 瓮。
答案 1 :(得分:4)
只想确认DesignatedNerd所说的内容,即在测试开始之前必须与Apple签订付费应用协议。我昨天有这个,我们使用我们的帐户在我们正在为客户做的应用程序的应用程序产品中进行测试。经过大量的网络搜索和其他尝试,我碰巧注意到我们没有达成协议的文本。我们在itunesconnect中输入了所有银行详细信息,不久之后消息就消失了,我的应用内测试开始起作用了。