2015-05-31 131 views
1

我收到這個錯誤的堅果。請有一個確切的看看錯誤信息!它是「SS ErrorDomain」NOT「SK ...」結合代碼= 0。到目前爲止,我無法在網絡上的任何地方找到任何同樣的問題。人們似乎有SS ErrorDomain代碼= 或SK ErrorDomain代碼= 。到目前爲止,我的組合沒有描述,也沒有任何幫助。錯誤域= SSErrorDomain代碼= 0「無法連接到iTunes Store」

好的,這是我的嘗試:應用程序工作正常,沒有在應用程序自1月1日以來,它是在商店可用。現在我已經添加了應用內購買到我的應用程序。我嘗試測試它們,但我得到的只是上面的錯誤。它甚至不會試圖問我一個測試用戶或任何東西。

我絕對相信,我退出了商店,在一個真正的設備上工作,並做了所有其他測試(很多次),我可以在網上找到。沒有!仍然「無法連接...」

我已檢查此處描述的所有內容Ray Wenderlichs In-App Tutorial。我甚至用他的教程從頭創建了一個新的應用程序。同樣的問題。等了幾天也沒有幫助。

我已經完成了這裏描述的東西Cannot connect to iTunes in Baker Factory。你可以猜出結果。

這是一些代碼。只要這就是所謂的viewDidLoad()開始:

internal class InApp : NSObject, SKProductsRequestDelegate, SKPaymentTransactionObserver { 
private var request: SKProductsRequest! 

// Start communication with Apple Store to retrieve list of available products 
internal func start() { 
    if let url = NSBundle.mainBundle().URLForResource("InAppProducts", withExtension: "plist") { 
     if let productIds = NSArray(contentsOfURL: url) { 
      NSLog("InApp: Product-Id \(productIds)") 
      SKPaymentQueue.defaultQueue().addTransactionObserver(self) 
      request = SKProductsRequest(productIdentifiers: Set(arrayLiteral: productIds)) 
      request.delegate = self 
      request.start() 
      NSLog("InApp: request started") 
     } 
    } 
} 

日誌打印出兩款產品的ID,從plist中讀取正確。日誌還顯示「請求已啓動」。之後,它直接調用錯誤例程:

internal func request(request: SKRequest!, didFailWithError error: NSError!) { 
    NSLog("ERROR: decription: \(error!.description), reason: \(error!.localizedFailureReason), options: \(error!.localizedRecoveryOptions), suggestion: \(error!.localizedRecoverySuggestion)") 
} 

我正在使用Xcode 6.3和iOS 6的iOS 6。 GameCenter iAdBanner和所有其他功能完美工作。

任何任何建議,我可以看看,我能做什麼,是高度歡迎!

回答

3

最後我找到了。它實際上是這一個的重複:Swift Cannot connect to iTunes

下面的代碼片段我已經改變了: OLD/WRONG:

  if let url = NSBundle.mainBundle().URLForResource("InAppProducts", withExtension: "plist") { 
      if let productIds = NSArray(contentsOfURL: url) { 
       let request = SKProductsRequest(productIdentifiers: Set(arrayLiteral: productIds)) 
       request.delegate = self 
       request.start() 
       return true 
      } 
     } 

NEW/RIGHT:

  if let url = NSBundle.mainBundle().URLForResource("InAppProducts", withExtension: "plist") { 
      if let productIds = NSArray(contentsOfURL: url) { 
       var set = Set<String>() 
       for productId in productIds { 
        if let productId = productId as? String {set.insert(productId as String)} 
       } 
       log("InApp: Product-Id \(productIds) = \(set))") 

       let request = SKProductsRequest(productIdentifiers: set) 
       request.delegate = self 
       request.start() 
       return true 
      } 
     } 

基本上,我從plist中閱讀,因爲它犯了一個錯誤作爲一個對象存儲在一個集合中,包含兩個字符串。現在它真的是一套兩個字符串。

最後,一個非常「有趣」的錯誤消息根本無法啓動請求!

相關問題