Ошибка NSUbiquitousKeyValueStore: нет действительного права com.apple.developer.ubiquity-kvstore-identifier
У меня проблема с интеграцией iCloud с моим приложением.
Когда я устанавливаю проверку доступности iCloud, я получаю Success для функции
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.
Спасибо.
Ответы
Ответ 1
У меня была такая же проблема, хотя все мои коды, настройки, права и т.д. были правильными. Я исправил это, физически удалив приложение с моего iPhone, а затем построил в Xcode и запустил его на моем iPhone, и он сработал. Просто хотел добавить это, если другие решения не работают для кого-то другого.
Ответ 2
Большое предупреждение: если ваше устройство заблокировано, убедитесь, что вы удалили AppSync. Из-за этого у меня было два безумных дня. iCloud (и Game Center) не будет работать на устройстве с AppSync, установленным даже с правильными правами и профилями!
Ответ 3
Я сделал следующее, чтобы заставить это работать для меня (Xcode 4.2.1):
- В Xcode перейдите к своей цели > Сводкa > внизу, нажмите "Включить права".
- В IOS Provisioning Portal перейдите в App ID и включите поддержку iCloud. (Возможно, вам не обязательно это делать, но это сработало для меня.)
- Отредактируйте профиль Provisioning Profile, чтобы заставить его обновить; затем загрузите этот профиль и откройте его, чтобы он автоматически запускался в Xcode.
- Очистите и создайте приложение на своем устройстве.
Ответ 4
Я столкнулся с этой проблемой при попытке отладки приложения Mac (не iOS). Проблема оказалась в том, что я не подписывал отладочную сборку и не имел фазы развертывания проекта с установкой "Пропустить установку" на "Да".
По-видимому, iCloud не будет корректно работать с неподписанным приложением.
Ответ 5
Добавьте com.apple.developer.ubiquity-kvstore-identifier
в свои права со следующим значением:
$(TeamIdentifierPrefix)$(CFBundleIdentifier)