Проблемы с контейнером Ubiquity, Правами и подписью кода, которые не очень хорошо играют друг с другом - PullRequest
2 голосов
/ 05 ноября 2011

Я работаю над добавлением поддержки iCloud в мое приложение для отслеживания доходов myIncome, которое в настоящее время находится в Mac App Store версии 1.0 и работает так же, как и в версии 1.0.

Я только добавил код, чтобы получить контейнер ubiquity и загрузить выбранный файл в iCloud. В настоящее время я использую блок, чтобы узнать, доступен ли iCloud для проверки пункта меню, отправляющего файл.

if ([[NSFileManager defaultManager] URLForUbiquityContainerIdentifier: container] == nil) return NO;
    return YES;

Я добавил ключи в файл полномочий и у меня есть профиль обеспечения разработки для приложения с активным iCloud.

Если подпись кода включена, я получаю эти сообщения в Console.app, и отладчик останавливается в runtime_init с EXC_BAD_INSTRUCTION

11/4/11 6:52:49.952 PM taskgated: none of the 2 applicable provisioning profile(s) apply
11/4/11 6:52:49.952 PM taskgated: killed com.themikeswan.myIncome[pid 13532] because its use of the com.apple.developer.ubiquity-container-identifiers entitlement is not allowed

Если я отключаю подпись кода (и очищаю проект), я получаю ноль, когда пытаюсь получить контейнер ubiquity, и Console.app показывает эти сообщения:

11/4/11 10:38:03.549 PM librariand: client process 13863 does not have a valid com.apple.developer.ubiquity-container-identifiers entitlement
11/4/11 10:38:03.550 PM librariand: error in handle_container_path_request: LibrarianErrorDomain/9/The client process does not have a valid com.apple.developer.ubiquity-container-identifiers entitlement

Я сделал небольшое тестовое приложение, которое является приложением Core Data и имеет идентификатор приложения с поддержкой iCloud, и с использованием того же кода все работает, поэтому в myIncome явно что-то конфликтует. Я просто не уверен, где искать проблему .

Кто-нибудь еще сталкивался с подобной проблемой или есть идеи, где искать?

Как только я включу iCloud в myIncome, я планирую написать учебное пособие для всех, кто сможет воспользоваться этими знаниями, поскольку сейчас почти нет информации о том, как добавить iCloud в приложение Mac.

1 Ответ

0 голосов
/ 10 ноября 2011

Оказывается, что ответ - удалить контейнер приложения.~/Library/Containers/<yourBundleID>

Редактировать: Вот изображение части окна с полным путем и некоторыми контейнерами внутри него. enter image description here

...