我在 IAP 购买测试中遇到了一个大问题。
我已经做了以下步骤:
- 创建应用 ID ( com.domainname.appname )
- 使用 App ID ( com.domainname.appname )创建开发配置文件
- 在 iTunes Connect 上创建应用程序(Bundle ID com.domainname.appname)
- 管理 IAP。创建具有产品 ID com.testitem1、com.testitem2、com.testitem3的非消耗性产品(每个产品都有准备提交状态)
配置 XCode 项目设置
捆绑标识符:com.domainname.appname
代码签名身份:我在步骤 2中制作的开发配置文件
部署目标:4.0
设备
iPod Touch 4gen iOS 5.1.1
编写源代码
我的课堂支持SKProductsRequestDelegate
在- viewDidLoad
回调方法中,我写了以下几行:
if ([SKPaymentQueue canMakePayments])
{
NSLog(@"YES, I CAN MAKE PAYMENTS");
}
else
{
NSLog(@"NO, I CAN NOT MAKE PAYMENTS");
}
在这个阶段一切都很好。我可以付款。
接下来,我尝试为我的产品创建请求:
SKProductsRequest *request = [[SKProductsRequest alloc] initWithProductIdentifiers: [NSSet setWithObjects:@"com.testitem1", @"com.testitem2", @"com.testitem3", nil]];
request.delegate = self;
[request start];
在这个阶段一切都很好,在下一个阶段我的请求对象调用回调方法如下:
- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
{
NSArray *myProduct = response.products;
NSLog(@"%@", myProduct);
}
但是没有任何产品响应,我不明白为什么。
我之前已经遇到过这个问题(我只是重置了我的设备,一切都很好),但在这种情况下,我无法弄清楚出了什么问题。