2015-07-26 2 views
1

У меня есть «динамические» подписки, которые мне нужно создать при запуске приложения, и они не могут быть предварительно определены, поскольку они основаны на некотором уникальном идентификаторе, который я генерирую временно для каждого подключаемого устройства. При работе в режиме разработки, CloudKit прекрасно работает, однако в режиме распределения я получаю эту ошибку:Может ли подписка CloudKit не создавать код?

<CKError 0x1358436e0: "Invalid Arguments" (12/2006); server message = "attempting to create a subscription in a production container"; uuid = 41F4CA23-9849-40B1-8DB5-0030BBD91251; container ID = "iCloud.com.company.CloudKit"> 

не существует никакого способа для создания подписки динамически? Я думал, что только RecordTypes необходимо создать с помощью Dashboard.

ответ

0

Решение оказалось чем-то другим. Ранее я использовал метод saveSubscription частной базы данных. Это, по-видимому, продолжало давать мне вышеупомянутую ошибку. Я закончил использовать CKFetchSubscriptionsOperation и CKModifySubscriptionsOperation, и теперь это работает отлично.

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

3

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

Имейте в виду, что производственная среда также используется в бета-тестировании.

0

Похоже, что TRUEPREDICATE нельзя использовать для подписки в производственном контейнере, это верно для обоих методов (saveSubscription и CKModifySubscriptionsOperation). Просто измените предикат, чтобы получить успешную подписку.

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