2015-05-31 1 views
1

Я получаю гайки с этой ошибкой. Пожалуйста, обратите внимание на сообщение об ошибке! Это «SS ErrorDomain« NOT »SK ...» в сочетании с кодом = 0. До сих пор я не мог найти никого с такой же проблемой в сети. Люди, кажется, имеют либо SS ErrorDomain с кодом = или SK ErrorDomain с кодом = . Моя комбинация нигде не описывалась, и до сих пор ничего не помогало.Ошибка домена = SSErrorDomain Код = 0 «Не удается подключиться к iTunes Store»

Хорошо, вот что я пытаюсь: приложение работает нормально без приложения с 1 января, оно доступно в магазине. Теперь я добавил покупки In-App в свое приложение. Я пытаюсь их протестировать, но все, что я получаю, это ошибка выше. Он даже не пытается попросить меня испытать пользователя или что-то еще.

Я абсолютно уверен, что я вышел из магазина, работая на реальном устройстве и выполнил все остальные тесты (много раз), которые я мог найти в сети. Ничего! «Не удается подключиться ...»

Я проверил все описанные здесь 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") 
     } 
    } 
} 

Журнал печатает два идентификаторов продукта, считанных из списка свойств, правильно. В журнале также отображается «запрос начат». После того, что он вызывает непосредственно процедуру ошибки:

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 и iPhone 6 с прошивкой 8.3. GameCenter iAdBanner и все остальные функции отлично работают.

Любые любые предложения, где я мог бы смотреть и что я мог сделать, это высоко приветствуется!

ответ

3

Наконец-то я нашел его. Это на самом деле дубликат этого: Swift Cannot connect to iTunes.

Вот фрагмент кода, я изменился: OLD/НЕВЕРНО:

  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 
      } 
     } 

В принципе, я сделал ошибку в чтении из списка свойств, как это было хранится в наборе как один объект, содержащий две строки. Теперь это действительно набор из двух строк.

В итоге очень «интересное» сообщение об ошибке для невозможности инициировать запрос вообще!

Смежные вопросы