好吧我正在撕掉我的頭髮。我正在開發一款免費的應用程序(包含廣告和一些鎖定功能)。應用內購買會移除廣告並提供完整的功能。不能讓應用程序內購買工作
因此,我設置了一個SKProductsRequest,將它傳遞給我的產品id(com.mydomain.Myapp.fullversion)並執行'start'。這不會失敗,並繼續致電productsRequest:didReceiveResponse:,其中一個NSLog顯示response.products.count等於零 - 太麻煩了!
所以,首先是愚蠢的問題。
Q1。在我的測試設備上通過Xcode運行我的應用程序時,測試設備是否需要連接到互聯網(例如無線開啓),還是足以讓運行Xcode的Mac有互聯網連接? (已回答:您需要測試設備上的連接)。
Q2.我該如何解決這個問題?
我都檢查以下內容:
是否啓用了應用程式爲你的App ID?:
在根據應用程序ID的Provisioning戶購買我「bundle_seed_id.com.mydomain.Myapp '和'應用內購買'已啓用。
你檢查可銷售你的產品?:
在iTunes Connect中,我創建我的應用程序內購買「com.mydomain.Myapp.fullversion」,它是爲銷售清除。
請問你的項目的.plist包ID匹配你的App ID?:
是它,它被設置爲「com.mydomain.Myapp」。
已經生成並安裝了新的供應配置文件爲新的App ID?:
是的,我已經創建並安裝了PP的「com.mydomain.Myapp」。
你有沒有配置您的項目代碼標誌使用這個新的供應配置文件?:
我只有在輸入「代碼簽名身份」(而不是CS權利,CS資源規則路徑和其他CS標誌)。它已由自動配置文件選擇器> IPhone Developer設置,並且自己匹配Myapp,並設置爲調試>任意SDK和發行版>任何iOS SDK。
正在一個SKProductRequest?:
是的,我使用「com.mydomain.Myapp.fullversion」時,當您使用完整的產品ID。
自從將產品添加到iTunes Connect後,您是否等了幾個小時?:
是的,我已經等了24小時。
您的銀行信息是否在iTunes Connect上處於活動狀態?:
是的。
您是否嘗試過從設備上刪除應用程序並重新安裝?:
很多次。
觀察這裏:在測試設備上,我沒有登錄到「iTunes & App Stores」,當我在測試設備上從Xcode運行應用程序時,它沒有要求我登錄(我有一個測試用戶在iTunes Connect中設置並準備使用)。因此,我的應用程序運行時,調用從SKProductRequest開始,但從不提示我登錄到「iTunes & App Store」。
非常感謝提前。我希望有人可以幫助我獲得應用內購買的工作。拜倫。
更新1:下面是一些代碼,但我不知道有多少,這將有助於,正如我上面說這是失敗的productsRequest:didReceiveResponse:通過不返回任何產品。
首先我打電話:
[[MyappIAPHelper sharedInstance] requestProductsWithCompletionHandler:^(BOOL success, NSArray *products)
{
if (success)
{
NSLog(@"SUCCESS - WE HAVE PRODUCTS");
_products = products;
NSLog(@"_products.count = %d", _products.count);
}
else
{
if(products == nil)
{
NSLog(@"FAILED - WE HAVE NO PRODUCTS");
}
}
}];
該代碼如下所示:
- (void)requestProductsWithCompletionHandler:(RequestProductsCompletionHandler)completionHandler
{
_completionHandler = [completionHandler copy];
NSLog(@"IAPHelper, requestProductsWithCompletionHandler{}, _productIdentifiers = %@", [_productIdentifiers anyObject]);
_productsRequest = [[SKProductsRequest alloc] initWithProductIdentifiers:_productIdentifiers];
_productsRequest.delegate = self;
[_productsRequest start];
}
'開始' 並沒有失敗,接着調用productsRequest:didReceiveResponse:
- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
{
NSLog(@"Loading list of products...");
NSLog(@"iAPHelper, productRequest:didRecieveResponse{}, Products count = %d", response.products.count);
一旦你進入這個函數,它就會失敗,因爲response.products.count等於零。
我剛纔添加以下調試代碼productRequest:didRecieveResponse {}
for (NSString *invalidProductId in response.invalidProductIdentifiers)
{
NSLog(@"Invalid product id: %@" , invalidProductId);
}
,並且聲明 'com.mydomain.Myapp.fullversion' 是無效的。
更新2:這已經超出了一個笑話 - 仍然不工作!
我完全按照http://developer.apple.com/library/ios/#technotes/tn2259/_index.html。我認爲這個問題可能是因爲在創建我的應用程序內購買時,我上傳了屏幕截圖 - 但我通過刪除應用程序內購買,重新創建它以確保它處於「等待屏幕截圖」狀態,根據文件。我現在已經等待了12個小時以重新創建應用內購買,以便通過Apple的服務器進行過濾。我從我的測試設備中刪除了該應用程序。檢查我是否從測試設備上的商店註銷。重新啓動我的測試設備。在Xcode中執行'Clean'並重新啓動Xcode。從Xcode運行應用程序並猜測是什麼?產品標識無效!!!! 幫助,請任何人,我失去了我的想法!!!!!
@ s.bandara不幸的是,這也不起作用。 –