目前我正在开发iOS应用程序,需要使用应用内购买。
像许多教程中所示(例如:http://www.raywenderlich.com/2797/introduction-to-in-app-purchases),我在iTunesConnect中创建了新的应用程序,上传了二进制文件并将其拒绝。之后,我添加了一些应用内购买产品。接下来,我将Storekit添加到我的Xcode项目中,并在我的UIViewController中编写了以下代码:
- (void)buyPressed
{
SKProductsRequest *request= [[SKProductsRequest alloc] initWithProductIdentifiers: [NSSet setWithObjects: @"com.mycompany.appliaction_name.levelpack",nil]];
request.delegate = self;
[request start];
NSLog(@"request started");
}
- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
{
NSArray *products = response.products;
for (int i=0; i<[products count]; i++)
{
SKProduct *proUpgradeProduct = [products objectAtIndex:i];
if (proUpgradeProduct)
{
NSLog(@"Valid product id: %@" , proUpgradeProduct.price);
NSLog(@"Product title: %@" , proUpgradeProduct.localizedTitle);
NSLog(@"Product description: %@" , proUpgradeProduct.localizedDescription);
NSLog(@"Product price: %@" , proUpgradeProduct.price);
NSLog(@"Product id: %@" , proUpgradeProduct.productIdentifier);
}
}
for (NSString *invalidProductId in response.invalidProductIdentifiers)
{
NSLog(@"Invalid product id: %@" , invalidProductId);
UIAlertView *myAlertView = [[UIAlertView alloc] initWithTitle:@"Apple connection error!" message:nil delegate:self cancelButtonTitle:@"CLOSE" otherButtonTitles:nil];
[myAlertView show];
[myAlertView release];
}
}
我仍然收到有关我的所有应用内产品无效的产品 ID 的信息。今天我发现了这个链接:http://developer.apple.com/library/ios/#technotes/tn2259/_index.html 还有一件重要的事情: "重要提示:在应用程序准备好 App Store 审核之前,请勿上传开发二进制文件到 iTunes Connect。如果 iTunes Connect 中存在该二进制文件,并且它不完全可用,App Review 将审核该二进制文件并可能拒绝开发二进制文件。如果您或 App Review 拒绝了最新的 iTunes Connect 中的二进制文件,则应用内购买测试将失败。在这种情况下的解决方法是上传一个没有应用内购买功能的二进制文件,该二进制文件可以获得 App Review 的批准。一旦二进制文件被批准,就可以恢复测试带有应用内购买功能的二进制文件。"
所以,我需要再次在 iTunes 创建新的应用程序,还是应该构建和提交我没有应用内购买的应用程序,在应用程序出现在 iTunes 后,再开发带有应用内购买功能的新版本?
感谢答复!