[英]iPhone Store Kit returning invalid product ID errors
我正在嘗試在我的iPhone上測試In App Purchases並遇到一個問題,我在那里請求信息,最終作為“didRecieveResponse”方法中的無效產品ID返回給我。
我有:
一切似乎都已到位,但我仍然將我的產品作為無效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都顯示在無效的打印輸出中,並且沒有一個顯示在“產品信息:”打印輸出中。
任何建議將不勝感激...
PS是的,這是作為Objective-c / c ++構建的。
我嘗試了在Apple論壇和這里建議的所有內容,但仍無法使其工作。 找到解決方案 - 您的應用程序需要通過Xcode傳輸才能啟用沙箱。
很明顯,對吧? 好吧,如果您正在使用現有帳戶的更新,設備仍會將其視為App Store安裝的應用程序。
刪除它,然后再次傳輸。 它現在應該工作:)
刪除測試iPhone上的應用程序並重新安裝它有效。 此外,自提交應用內購買項目以來,我也等了8個小時。
請完成以下步驟:
使用您的開發者帳戶登錄iTunes連接( https://itunesconnect.apple.com/WebObjects/iTunesConnect.woa/wo/ )。
轉到標簽 - “合同,稅收和銀行業務”
檢查請求合同和流程中的合同部分。
查看“iOS付費應用程序” ,然后需要設置聯系信息,銀行信息和稅務信息。
當“iOS付費應用程序”單元格將移至“合同生效”部分時,我將能夠在應用程序購買中使用“產品”。
請通過以下鏈接獲取更多信息: http : //developer.apple.com/library/ios/#technotes/tn2259/_index.html
請注意,當iPhone越獄時, AppSync數據包完全打破了應用內購買測試。 AppSync與Install0us一起作為依賴項安裝。
您無需完全恢復iOS, 只需在Cydia中卸載AppSync即可成功測試應用內購買 。
在我刪除AppSync之前,所有關於fixind'無效產品'的論壇,教程和評論的所有提示都不適合我。
我一直在嘗試添加應用程序購買的新應用程序(v1.0尚未在商店發布)中遇到類似問題。 我設置了所有內容,添加了產品等,當我進行SKProductsRequest時,我的產品總是無效。
當我在Apple開發者論壇上看到一篇與之相關的帖子時,我正打算放棄整個過程。 它建議從測試設備中刪除應用程序並進行全新的構建+安裝。 這就是訣竅。
只是為了確定,我在另一台給我同樣麻煩的設備上嘗試過它,並且它也修復了它。
這只是一個猜測,但我認為如果設備上有一個構建版本,它是使用在添加IAP之前創建的配置文件創建的,則需要刪除該構建並使用IAP配置文件添加新版本。 (也就是說,簡單地替換應用程序就行不通。)
如果您的代碼沒有任何問題,有時它會返回無效的productId,因為您可能需要超過10小時的時間來更改信息。 生效。 或者,productId無效,因為您的設備上仍然存在錯誤,因此您可以再次嘗試刪除您的應用並重新構建它。 根據我的經驗,希望它會有所幫助。
好的,所以在完成了我可能想到的所有內容並閱讀了那里的每個論壇之后,這是有效的:
重做一切。
這就是讓我的商店工作所需要的。 我最好的猜測是蘋果后端服務器有時會被搞砸,你只需要從頭開始。
希望這有助於每個人!
最近更新了IAP的iTunes Connect界面,可能導致無效:<產品ID>錯誤。
您現在可以在iTunes連接中添加IAP,而無需將默認價格設置為0美元,它將允許您保存該條目。
如果您未事先編輯價格字段,則在按下保存時,舊版本的UI會抱怨。
很容易完全錯過這個字段,任何通過任何iOS調用使用該產品ID獲取信息的嘗試都會導致無效:<產品ID>而不是告訴您它找到<產品ID>定價為0美元。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.