Как получить доступ к данным iCloud Container из приложения с другим идентификатором пакета? - PullRequest
1 голос
/ 18 октября 2019

Я заканчиваю приложение, которое позволяет пользователям отправлять отзывы в контейнер iCloud. Чтобы упростить процесс получения обратной связи и защитить конфиденциальность, я создал другое приложение для чтения этих представлений. Это приложение будет приватным и не будет загружено в App Store. Для этого требуется, чтобы оба приложения имели доступ к одному и тому же контейнеру iCloud. Поэтому оба приложения имеют права с идентификатором контейнера iCloud, установленным на одно и то же значение:

iCloud.com.myDomain.My-App

Для ясности я обращаюсь кпервое приложение как My App , а второе как My App Feedback .

Когда я пытаюсь запустить My App Feedback, чтобы прочитать отзывы, XCode выдает ошибку:

Не удалось получить конфигурацию контейнера с сервера для контейнера "iCloud.com.myDomain.My-App-Feedback "

Похоже, что хотя я установил права доступа к приложениям для идентификатора контейнера iCloud для обоих приложений на Мое приложение , Xcode использует идентификатор пакета приложениявместо.

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

1 Ответ

1 голос
/ 21 октября 2019

Если вы выбрали правильный контейнер в разрешениях, то просто убедитесь, что при настройке вашего CloudKit-контейнера в коде из Мой отзыв приложения , что вы указываете правильный:

let container = CKContainer(identifier: "iCloud.com.myDomain.My-App")

и , а не , любой из этих:

let container = CKContainer(identifier: "iCloud.com.myDomain.My-App-Feedback")
let container = CKContainer.default() //This should work, but might be using the wrong one

Вы можете подтвердить, какой контейнер был выбран, распечатав его на консоли, когда он будет создан. Надеюсь, это поможет.

...