这是“在 MKStoreKit 失败的应用程序购买中出现的问题”的后续问题:“产品的 iTunes 连接配置问题:xxx ”
我遇到了类似的问题,并尝试使用和不使用 MKStoreKit 并得到类似的消息。
清单
感谢:http ://troybrant.net/blog/2010/01/invalid-product-ids/
您是否为您的 App ID 启用了应用内购买?
是的
您是否为您的产品检查过清仓?
是的
您是否已提交(并可选择拒绝)您的应用程序二进制文件?
是的
您项目的 .plist Bundle ID 是否与您的 App ID 匹配?
是的
您是否为新的 App ID 生成并安装了新的配置文件?
是的
您是否已将项目配置为使用此新的配置文件进行代码签名?
是的
您是为 iPhone OS 3.0 或更高版本构建的吗?
是的。iOS4.2 及以上。
您在发出 SKProductRequest 时是否使用了完整的产品 ID?
是的。也只是产品 ID 本身,没有反向域
将产品添加到 iTunes Connect 后,您是否等待了几个小时?
是的。它说“等待审核”并且在过去 4-5 天内完成
您的银行详细信息在 iTunes Connect 上是否有效?
不。这是一个客户项目,我只是在测试它是否有效。我需要银行详细信息来测试吗?
编辑:我现在已经改变了。但我不明白为什么我需要这样做只是为了测试沙盒。
您是否尝试过从设备中删除该应用程序并重新安装?
是的
你的设备越狱了吗?
不
应用符号是正确的
我见过的一些例子使用这种表示法:com.domain.APP_ID.PRODUCT_TO_BUY
但其他人使用 com.domain.PRODUCT_TO_BUY
哪个是对的?
在我的代码中,我尝试使用完整的符号和产品 ID 本身,但仍然遇到“产品 ID 无效”的相同问题。
开发者被拒绝
App Bundle (Release) 在 iTunes Connect 上,我已经“开发者拒绝”了这个包。
图片:
等待审核?
在我的应用内购买中,我有 1 个产品,即自动续订订阅。已获准出售;然而,它是“等待审查”并且不是绿灯。
图片:
我几乎在 4-5 天前创建了它,但它仍然标记为“等待审核”??
我想知道我的应用是否被“开发者拒绝”,这是否对自动更新订阅的“等待审核”有影响?
我没有更改此项目中的任何内容。
根据各种文章,我必须等待 24-48 小时才能使用它?
但是我是否需要等待它被接受或绿灯才能在我的测试中使用它?
银行明细
我没有填写任何银行详细信息,因为这是一个客户应用程序——我是否需要先填写银行详细信息才能继续测试它?
根据这些文档: http: //developer.apple.com/library/ios/#technotes/tn2259/_index.html 需要银行详细信息吗?
在运行应用程序之前,我是否需要在我的设备上使用测试帐户登录 iTunes?
我想知道是否有人可以澄清这些问题?也许就像等待应用内购买“绿灯”一样简单,或者我错过了一步?
注意:无论我是使用 MKStoreKit 还是使用下面的代码,都会发生这种情况。
谢谢。
我的代码(这是非 MKStoreKit 版本)
#define kMySubscriptionFeature @"uk.co.samplewebsite.myappproject.sub1"
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
self.title = @"Manage Subscriptions";
if ([SKPaymentQueue canMakePayments])
{
// Display a store to the user.
//[MKStoreManager sharedManager];
//NSLog(@"purhcasable = %@", [[MKStoreManager sharedManager] purchasableObjectsDescription] );
[self requestProUpgradeProductData];
}
else
{
// Warn the user that purchases are disabled.
NSString *message = @"In-app purchases are disabled. Please review your settings";
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error" message:message delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alertView show];
[alertView release];
} // end if
}
#pragma mark - StoreKit Delegate
- (void) requestProductData
{
SKProductsRequest *request= [[SKProductsRequest alloc] initWithProductIdentifiers: [NSSet setWithObject:kMySubscriptionFeature]];
request.delegate = self;
[request start];
}
- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
{
NSArray *myProduct = [[NSArray alloc] initWithArray:response.products];
for(SKProduct *item in myProduct)
{
NSLog(@"Product title: %@" , item.localizedTitle);
NSLog(@"Product description: %@" , item.localizedDescription);
NSLog(@"Product price: %@" , item.price);
NSLog(@"Product id: %@" , item.productIdentifier);
}
for (NSString *invalidProductId in response.invalidProductIdentifiers)
{
NSLog(@"Problem in iTunes connect configuration for product: %@" , invalidProductId);
}
[myProduct release];
// populate UI
[request autorelease];
}
编辑:
作为故障保险,我添加了银行详细信息以防万一,但我不明白为什么这会导致问题。
我还确保我上传并拒绝了应用程序发布包,而不是临时发布包;虽然我不知道这是否有任何区别。