2009-11-11 426 views
43

我一直在努力增加應用內購買,並且能夠使用Store Kit(yay!)創建和測試應用內購買。在測試期間,我以某種方式行使了我的應用程序,導致應用程序在購買時崩潰(所以我猜想接收paymentQueue:updatedTransactions和調用finishTransaction的正常週期被中斷)。iPhone應用內購買商店套件錯誤-1003「無法連接到iTunes商店」

現在我無法成功完成任何交易,而是我越來越有transactionState SKPaymentTransactionStateFailed只有交易時paymentQueue:updatedTransactions被調用。

的transaction.error.code爲-1003和transaction.error.localizedDescription是「無法連接到iTunes商店」!

我嘗試從iTunesConnect中刪除所有產品,並使用不同的標識符重建它們,但這並沒有幫助。我也嘗試使用App Store應用程序真正連接到真正的App Store並下載一些應用程序,這樣我就具有連接性。最後,我訪問了「設置:商店」應用,以確保我已退出正常的應用商店帳戶。

+0

你有沒有找到解決問題的方法?最近我遇到了這個問題,在沙盒服務器關閉之前,該商店在我的iPad上工作。它再次上線後,它不再工作。我將iPad項目中使用的相同代碼複製到iPhone項目項目中,並使用兩種不同的iPhone進行測試,然後運行。但它似乎不再適用於iPad應用程序。怎麼了? – NicTesla 2011-07-21 08:32:43

+1

使用StoreKit時,「無法連接到iTunes Store」錯誤消息似乎是用於各種不同網絡相關錯誤代碼的通用消息。特定的代碼-1003是'CFNetworkErrors.h'中定義的'kCFURLErrorCannotFindHost'。 – markshep 2011-09-13 14:31:59

+1

我有同樣的問題,但不幸的是第二次機會確認購買, 任何想法??? – 2012-11-20 11:54:08

回答

0

我忙着去應用程序商店,然後回到設置/存儲以註銷。我做了3次,每次重新訪問我的應用程序並添加調試NSLog輸出,現在我可以繼續測試我的應用程序內購買代碼,而不會出現錯誤-1003。我不確定這個工作的確切原因,但我相當確定是不是我的代碼更改,因爲我所做的只是添加NSLogs並重新運行我的應用程序。

0

是啊,如果你連接你的iPad/iPhone到另一臺計算機開始,並正在使用它在另一個,你絕對必須退出你的iPad上店,登錄瓦特/正常賬戶的iTunes上的MAC,然後同步。

此外,確保你的iPad「WIFI」是...

2

我,似乎彈出無處同樣的錯誤(工作正常的一天,但隨後的第二天,這是給我每3次嘗試測試我的應用程序內購買中的2次這些錯誤)。

然後我參觀了應用程序商店(試圖讓另一個真正購買時),並意識到他們有,他們希望我能確認新的用戶協議。在我這樣做之後,當我回到自己的應用程序並再次嘗試購買測試產品時,它運行良好,從此以後沒有任何錯誤。所以我懷疑我得到了錯誤,因爲他們想要我驗證新的用戶協議。

現在我不知道的唯一的事情是,如果有,而不是給他們一個神祕的錯誤我的應用程序內購買的方式是迅速轉發到我的用戶?

13

爲您的應用添加新的測試用戶。

+0

這工作在我的情況。 – 2012-01-28 06:55:01

39

我有類似的情況,並傾銷iPhone的網絡流量,看看發生了什麼。我發現正常的商店被聯繫而不是沙箱。它有助於從設備上刪除應用程序,進行清理並再次構建/安裝。顯然,發展概況出了問題。

更新:要轉儲非越獄iPhone的網絡流量,只需使用Mac上的Internet共享並將您的iPhone配置爲使用Mac的WiFi即可。然後,您的Mac上的tcpdump -n -i en1將執行此操作。

+3

不錯,我不得不刪除應用程序,並清理項目以使其工作 – aryaxt 2011-03-09 07:46:12

+0

+1。工作。通過刪除應用程序,清理並再次構建。 – HelmiB 2011-08-22 03:53:11

+0

我只是在得到-1003錯誤後才求助於網絡共享和tcpdump。看起來StoreKit正在爲'p40-sandbox.itunes.apple.com.'做一個DNS查詢,但是爲其獲取了'NXDOMAIN'(即沒有該名稱的DNS條目)。因此,在我的特殊情況下,它看起來像蘋果的錯誤..... – markshep 2011-09-13 16:01:36

1

SKPaymentTransactionState告訴SKPaymentTransactionStateFailed之前,你的請求添加到服務器隊列。

@class SKPayment; 

enum { 
    SKPaymentTransactionStatePurchasing, // Transaction is being added to the server queue. 
    SKPaymentTransactionStatePurchased,  // Transaction is in queue, user has been charged. Client should complete the transaction. 
    SKPaymentTransactionStateFailed,  // Transaction was cancelled or failed before being added to the server queue. 
    SKPaymentTransactionStateRestored  // Transaction was restored from user's purchase history. Client should complete the transaction. 
}; 
typedef NSInteger SKPaymentTransactionState; 

而且在SKPaymentTransaction類參考錯誤討論說:

error屬性未定義時transactionState設置爲SKPaymentTransactionStateFailed除外。您的應用程序可以讀取錯誤屬性以確定事務失敗的原因。

所以,transaction.error.localizedDescription是 「無法連接到iTunes Store的」!是一般錯誤消息。我在測試InApp購買時也定期收到此錯誤消息。

一些提示ü可以做的是,

  1. 使用SKProductsRequest檢索應用程序商店的所有產品,並檢查其response.products包含您的要求productIdentifier。 用於該用途,

    SKProductsRequest *request = [[SKProductsRequest alloc] initWithProductIdentifiers:[NSSet setWithArray:[objProducts allKeys]]]; 
    //pass product identifier array as argument 
    [request start]; 
    

,趕上應答:

- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response{ 
     NSArray *myProduct = response.products; 
} 

所以,你可以決定你是可以對應用程序商店通信。和你的產品ID在那裏。

  • 確保您使用在應用測試用戶帳戶進行測試。
  • 而且您使用的是您在應用程序購買中配置的相同應用程序ID設置。
  • 感謝

    0

    我做了一個乾淨的所有目標在Xcode和手動刪除該應用程序關閉我的設備,然後生成並在Xcode中運行,並且固定類似的問題(相同的錯誤信息,但不同的錯誤代碼: - 1009)

    11

    確保您在設置中設置了正確的日期和時間。否則它無法對商店進行SSL連接!

    +0

    這正是我的問題。謝謝! – 2011-06-24 10:33:39

    6

    我有同樣的錯誤,在通過developer forums上的一些線程閱讀後,我重置了設備上的設置(設置 - >常規 - >重置 - >重置所有設置),清除它。它看起來很激烈,但它工作。

    +1

    因爲我不得不這樣做了幾次。我也嘗試了「重置網絡設置」,我希望它能解決這個問題,但破壞性較小,但這並不奏效。 – 2011-07-13 23:39:24

    +0

    這真的很糟糕,因爲它基本上將它設置爲一個新的iPad,並迫使你從備份安裝。 – 2011-11-11 19:57:46

    24

    如果您收到錯誤0「無法連接到iTunes商店」(我知道是不是錯誤-1003是OP詢問,但網絡搜索錯誤0也導致這裏),這可以由以下原因造成兩個可能的問題:

    1. 您傳遞錯誤的產品標識符。如果是這種情況,那麼在撥打-[SKPaymentQueue addPayment:]後不久,您會在彈出窗口要求您確認付款之前收到錯誤0。
    2. 您的測試用戶已失效。如果您不小心通過測試用戶登錄App Store,可能會發生這種情況。發生這種情況時,輸入密碼確認付款後,您會收到錯誤0。

    要解決問題#1,通過在正確的產品ID。要修復問題#2,請在iTunes Connect上創建一個新的測試用戶,並可以選擇刪除舊的測試用戶。

    +0

    該問題和解決方案的清晰簡潔的描述。在上帝知道試圖解決這個問題多久之後,真的很有幫助。謝謝! – CCSab 2012-07-24 20:14:54

    +0

    創建一個新的測試用戶修復它。謝謝! – Hlung 2013-03-24 20:20:33

    +0

    非常感謝@Adam!我也得到同樣的錯誤。您的積分2號解決了我的問題! – 2013-05-26 13:46:24

    1

    對我來說有效的是從測試設備上卸載我的應用程序,然後從Xcode安裝新的副本。

    +0

    從設備卸載並重新安裝也適用於我。 – efeyc 2012-05-10 07:00:19

    14

    我有一個類似的問題,在Code = 0時出現「無法連接到iTunes Store」。這是我解決這個問題的方法,在互聯網上重新下載我的證書以重置所有設備設置以犧牲原始黑山羊之後,嘗試在互聯網上發現的每個其他儀式性建議之後:

    在應用程序的目標摘要中,我以前在「構建」字段中有我的版本號,但「版本」字段中沒有。這對我來說似乎很奇怪,所以我將版本號從「build」移到「version」。這導致了上述錯誤。將版本號移回「構建」解決了錯誤。

    +0

    我也在版本字段中有版本,但它沒有幫助。你可能在同一時間做了其他的事情。 – Kamchatka 2011-10-07 03:46:02

    +2

    我無法對發佈此修復程序感謝。我嘗試了所有其他修復程序。原來留下「Build」空白導致了它。謝謝!這實際上是爲了錯誤代碼:0 – jarrold 2012-01-17 09:52:05

    +1

    我正在駕駛堅果,解決方案完全出乎意料。你救了我至少24小時的生命!謝謝 – Fabio 2012-02-19 15:00:13

    0

    不幸的是,我遇到了一個這裏沒有記錄的問題。在您接受與應用和應用內清單相關的所有合同之前,應用內清除功能纔會起作用。因此,請確保您(或您的客戶)正確設置iTunesConnect中的所有合約,他們必須出現在「合同有效」部分,以使您的採購有效。

    0

    我們的問題是,在iTunes連接中我們有錯誤的包標識符。有人已經事先創建了應用程序,我們必須編輯應用程序並將其應用程序設置爲新應用程序。

    0

    我不得不導致此兩個問題:

    1)我已經從不同的(工作)應用中複製的IAP代碼,但已經錯過設定我的觀察者:

    觀察者= [[IAPHelper的alloc]在裏面]; [[SKPaymentQueue defaultQueue] addTransactionObserver:observer];

    2)我在我的設備設置中登錄iTunes。您只能在沙箱中使用測試用戶 - 我已註銷並再次運行。

    0

    只需註銷您的iTunes帳戶(現在不要登錄您的測試帳戶!),並啓動您的程序。當inapp購買時請詢問您的登錄信息,您必須輸入您的測試帳戶信息。

    0

    我嘗試了線程中提供的每個解決方案,但無濟於事。就我而言,我擁有一個通配符包標識符,其起始的域名與我在創建應用內購買配置配置文件的包標識符時使用的域名相同。

    這裏是我固定的問題,並可以幫助你解決你的(見附表):

    1)將iPhone連接到Mac。

    2)在「設備」下(在Xcode>窗口菜單>管理器窗口中),爲您的iPhone選擇「Provisioning Profiles」選項。您將看到當前駐留在iPhone上的所有配置配置文件。

    3)仔細刪除所有以包標識符(com.MYDOMAIN。*)中的特定域名開頭的預配置配置文件,尤其是那些使用通配符的預配置配置文件,除了您專門創建的配置文件,應用程序購買(com.MYDOMAIN.inappidentifier)。

    4)重新安裝應用程序,並且用新的iTunes測試實現連接測試用戶(沙盒)

    截圖:

    enter image description here

    0

    我一直停留2天,這裏是我的解決辦法:

    1. 刪除所有應用內商品。
    2. 刪除新的應用程序內產品。
    3. 創建一個沙盒測試器。
    4. 從設備(iPad)註銷我的蘋果帳戶,然後嘗試購買產品。
    5. 它會要求登錄,然後使用沙盒測試儀帳戶重新登錄。
    6. 購買通過。

    我認爲重要的是沙箱測試人員帳戶,我之前沒有使用它,因爲我總是得到錯誤-0。

    0

    在我的情況下, 我嘗試了所有在互聯網上,但沒有任何工作。

    蘋果實際上打破了生產支付系統和沙箱。我只能等待兩天,並開始工作。

    0

    In-App Purchase FAQ說:

    無法連接到iTunes Store的

    「無法連接到iTunes商店」 的問題可能是由於一種或多種原因如下:

    • 沙盒可能無法訪問。
    • 您的應用沒有捆綁版本(CFBundleVersion)。有關更多信息,請參閱設置版本號和構建字符串。
    • 您的應用程序正在模擬器中運行,該模擬器不支持應用程序內購買。
    • 您正試圖購買不可出售的產品。有關更多信息,請在呈現應用商店用戶界面之前查看產品信息查詢App Store。

    在我的情況下,發生錯誤是因爲我使用的是Xcode模擬器。它在我使用我的設備時開始工作。

    即使在In-App Purchase Programming Guide稱使用開發iOS設備有建議的測試步驟

    相關問題