Может подключаться только к общедоступному контейнеру CloudKit через Wi-Fi, но не сотовый

#ios #swift #cloudkit

#iOS #swift #cloudkit

Вопрос:

Существует реальная нехватка документации и информации в целом относительно общедоступного контейнера CloudKit. У меня возникла проблема, из-за которой данные не могут быть отправлены, когда устройство подключено к сотовой сети, но отлично работает при подключении к Wi-Fi.

 let publicCloudDatabase = CKContainer.default().publicCloudDatabase
let operation = CKModifyRecordsOperation(recordsToSave: [exampleRecord], recordIDsToDelete: nil)
let operationConfiguration = CKOperation.Configuration()

operationConfiguration.allowsCellularAccess = true
operationConfiguration.qualityOfService = .userInitiated
operation.configuration = operationConfiguration

operation.perRecordProgressBlock = {(record, progress) in
    print(progress)
}

operation.perRecordCompletionBlock = {(record, error) in
    print("Upload complete")
}

publicCloudDatabase.add(operation)
publicCloudDatabase.save(exampleRecord) { [unowned self] record, error in
    if let error = error {
        print("public cloud database error: (error)")
    } else {
        print("Sucessfully uploaded to Public Cloud DB")
    }
}
  

Я продолжаю получать сообщение об ошибке, в котором говорится:

Ошибка CKError 0x281ff9ec0: «Сеть недоступна» (3 / NSURLErrorDomain:-1009); «Подключение к Интернету, похоже, отключено».

когда сотовое соединение определенно не является проблемой на моем устройстве.

Комментарии:

1. Вы не отправляете запрос URL, не так ли?

2. Разве CloudKit API не делает это для нас в CKContainer.default().publicCloudDatabase ?

Ответ №1:

Интересно, может ли это быть настройкой на устройстве. Вы проверили, что iCloud Drive разрешено использовать данные сотовой связи?

На вашем iPhone / iPad перейдите к Settings > Cellular > iCloud Drive (путь внизу; убедитесь, что он включен).

Комментарии:

1. вау, я боролся с этим последние несколько дней. Большое вам спасибо

2. Есть ли способ проверить, включены ли у пользователя эти настройки?

3. Я не думаю, что есть, нет. Вам просто нужно будет следить за ошибкой сетевого подключения, а затем показывать пользователю сообщение, в котором говорится, что Интернета нет (и что, возможно, им следует проверить свои настройки).).

4. Мы столкнулись с такой же проблемой, и iCloud Drive был включен. Я пытаюсь найти причину, есть ли какая-либо другая возможная причина?