我正在嘗試在我的iPhone上進行應用程序購買測試,並遇到產品ID請求信息最終以「didRecieveResponse」中的無效產品ID返回給我的問題,方法。iPhone Store Kit返回無效的產品ID錯誤
我:
- 創建與此應用程序相關的商店的產品。它是捆綁ID匹配其他所有內容。它已被清除出售並被開發人員批准。
- 確保我的新配置文件已啓用應用程序商店購買,並且具有完整的應用程序名稱:「com.domain.appname」
- 確保這是用於將應用程序簽名到我的iPhone的配置文件。
- 確保「com.domain.appname」是用於構建配置文件的應用程序ID。
- 確保在我的plist文件中使用「com.domain.appname」作爲包標識符。
一切似乎都已到位,但我仍然將我的產品退回給我作爲無效ID。
這是我使用的代碼:
- (void)requestProductData {
SKProductRequest *request = [[SKProductsRequest alloc] initWithProductIdentifiers: [NSSet setWithObject: @"com.domain.appname.productid"]];
request.delegate = self;
[request start];
}
- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
{
NSArray *myProducts = response.products;
NSArray *myInvalidProducts = response.invalidProductIdentifiers;
for(int i = 1; i < myInvalidProducts.count; ++i)
{
std::cout <<"invalid product id = " << [[myInvalidProducts objectAtIndex:i] UTF8String] << std::endl;
}
for(int i = 0; i < myProducts.count; ++i)
{
SKProduct * myProduct = [myProducts objectAtIndex:i];
std::cout << "Product Info:" << std::endl;
std::cout << "\tlocalizedTitle = " << [[myProduct localizedTitle] UTF8String] << std::endl;
std::cout << "\tlocalizedDescription = " << [[myProduct localizedDescription] UTF8String] << std::endl;
std::cout << "\tproductIdentifier = " << [[myProduct productIdentifier] UTF8String] << std::endl;
std::cout << "\tprice = " << [[myProduct price] doubleValue] << std::endl;
std::cout << "\tpriceLocale = " << [myProduct priceLocale] << std::endl;
}
[request autorelease];
}
我所有的產品ID在無效打印出現了,他們沒有在顯示「產品信息:」打印輸出。
任何意見將不勝感激...
p.S.是的,這是構建爲Objective-c/C++。
也許是一個愚蠢的問題,但是你真的去iTunes Connect並添加了你正在查詢的應用內購買產品嗎? –
根本不是一個愚蠢的問題。我確實添加了應用內購買。我檢查了它的ID,這一切都匹配。它已被清除出售並由開發人員驗證。 – EToreo
這可能不是它,但我注意到在你的示例代碼中你調用了「initWithProductIndentifiers」而不是「initWithProductIdentifiers」.... –