在解决问题之前,先介绍一下稍微奇怪的设置背景:我正在为客户开发一个应用程序,我们正在使用与最终发布帐户不同的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 中获取有效的产品呢?
非常感谢任何帮助。谢谢!