Ошибка 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):
- В XCode перейдите к своей цели> Сводка> внизу, нажмите Включить Права.
- На портале обеспечения iOS перейдите к идентификаторам приложений и включите поддержку iCloud. (Возможно, вам не придется делать это, но это сработало для меня.)
- Отредактируйте ваш профиль обеспечения, чтобы заставить его обновить; затем загрузите этот профиль и откройте его, чтобы он автоматически запускался в Xcode.
- Очистите и создайте приложение на своем устройстве.
Я столкнулся с этой проблемой при попытке отладки приложения Mac (не iOS). Проблема оказалась в том, что я не подписывал отладочную сборку, и у меня не было фазы развертывания проекта с "Пропустить установку", установленной в "Да".
По-видимому, iCloud не будет работать должным образом с неподписанным приложением.
Добавлять com.apple.developer.ubiquity-kvstore-identifier
в ваших Правах со следующим значением:
$(TeamIdentifierPrefix)$(CFBundleIdentifier)