Ошибка NSUbiquitousKeyValueStore: нет действительного права com.apple.developer.ubiquity-kvstore-identifier

У меня проблема с интеграцией iCloud с моим приложением.

Когда я проверяю доступность iCloud, я получаю Успех за функцию

NSURL *iCloudURL = [fileManager URLForUbiquityContainerIdentifier:@"AppID"];

но сразу после этого, когда я пытаюсь выполнить:

NSUbiquitousKeyValueStore *iCloudStore = [NSUbiquitousKeyValueStore defaultStore];

Я получаю ошибку

NSUbiquitousKeyValueStore error: no valid com.apple.developer.ubiquity-kvstore-identifier entitlement.

Любые идеи о том, как это исправить? Мой файл App.Entitlements использует префиксы макросов по умолчанию, ничего не изменилось из автоматически сгенерированного файла. iCloud определенно включен в AppID в iTunes Connect.

Благодарю.

5 ответов

Решение

У меня была такая же проблема, хотя весь мой код, настройки, права и т. Д. Были правильными. Я исправил это, физически удалив приложение с моего iPhone, затем встроив Xcode и запустив его на моем iPhone, и это сработало. Просто хотел добавить, что в случае, если другие решения не работают для кого-то еще там.

Большое предупреждение: если ваше устройство взломано, убедитесь, что вы удалили AppSync. У меня было два безумных дня из-за этого. iCloud (и Game Center) не будут работать на устройстве с установленной AppSync даже с правильными правами и профилями!

Я сделал следующее, чтобы заставить это работать для меня (Xcode 4.2.1):

  1. В XCode перейдите к своей цели> Сводка> внизу, нажмите Включить Права.
  2. На портале обеспечения iOS перейдите к идентификаторам приложений и включите поддержку iCloud. (Возможно, вам не придется делать это, но это сработало для меня.)
  3. Отредактируйте ваш профиль обеспечения, чтобы заставить его обновить; затем загрузите этот профиль и откройте его, чтобы он автоматически запускался в Xcode.
  4. Очистите и создайте приложение на своем устройстве.

Я столкнулся с этой проблемой при попытке отладки приложения Mac (не iOS). Проблема оказалась в том, что я не подписывал отладочную сборку, и у меня не было фазы развертывания проекта с "Пропустить установку", установленной в "Да".

По-видимому, iCloud не будет работать должным образом с неподписанным приложением.

Добавлять com.apple.developer.ubiquity-kvstore-identifier в ваших Правах со следующим значением:

$(TeamIdentifierPrefix)$(CFBundleIdentifier)
Другие вопросы по тегам