【发布时间】:2011-07-11 17:57:25
【问题描述】:
我知道之前有人问过:iPhone In App Purchase - response.products are still empty?
但我也在尝试实现应用内购买,但我的 response.products 是空的。 我的情况:
我上传并拒绝了我的二进制文件一次。
但后来我又把状态恢复为等待上传。(有关系吗?)
我的所有应用内购买产品的状态都是“准备提交”。
我的生产用户已退出。测试用户尚未登录。
-(void) requestProductData{
SKProductsRequest *productRequest= [[SKProductsRequest alloc]
initWithProductIdentifiers:[NSSet setWithObjects:
@"com.mydomain.myapp.Pack1",
@"com.mydomain.myapp.Pack2",
@"com.mydomain.myapp.Pack3",nil]];
productRequest.delegate = self;
[productRequest start];
}
-(void)productsRequest:(SKProductsRequest *)request
didReceiveResponse:(SKProductsResponse *)response{
NSArray *myProducts = response.products;
NSLog(@"%d",[myProducts count]);//this prints 0
for(SKProduct * product in myProducts) {
[products addObject:product];
}
[request autorelease];
}
in my viewdidload:
if([SKPaymentQueue canMakePayments]) {
NSLog(@"IN-APP:can make payments");
}
else {
NSLog(@"IN-APP:can't make payments");
}
/*load transaction history to see if the user already bought some packs*/
[[SKPaymentQueue defaultQueue] addTransactionObserver:self];
products = [[NSMutableArray alloc] init];
NSArray *paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString * path = [documentsDirectory stringByAppendingPathComponent: @"history.plist"];
self.transactionHistory = [NSMutableArray arrayWithContentsOfFile: path];
if(!transactionHistory) {
NSMutableArray *_transactionHistory = [[NSMutableArray alloc] init];
self.transactionHistory = _transactionHistory;
[_transactionHistory release];
}
//some other initializations here
[self requestProductData];
for (NSString *invalidProductId in response.invalidProductIdentifiers)
{
NSLog(@"Invalid product id: %@" , invalidProductId);
}
//this returns 3 of my product id's
【问题讨论】:
-
为空或响应为“无效的产品 ID”?
-
如果我查看响应,请在调试器中查看。有 NSObject - isa 和 _internal - isa 但就是这样。我什至没有在调试器中看到 response.products,当我说 NSArray *myProducts = response.products; myProducts 有 0 个元素
-
yes :] 不能调试 storekit 吗?
-
invalidProductIdentifiers 属性的值是多少?
-
是的,你是对的,我的数组中充满了我的产品 ID。我该怎么办?
标签: iphone in-app-purchase storekit