2014-09-23 2 views
5

У меня есть существующее приложение в App Store, которое отлично работает с iOS 7 и 8. Это приложение, которое использует Core Data для хранения информации, добавленной из пользователя, а также iCloud для синхронизации (без хранения ключа).Недействительные права на подписание кода для iCloud, Core Data и Xcode 6.01 с iOS 8

С Xcode 5.1.1 все работает очень хорошо. Я только что потратил некоторое время на освобождение срочного исправления часового пояса для моих пользователей, поэтому исправление не имеет ничего общего с iCloud и Core Data. С момента выпуска Xcode 6.0.1 и iOS 8 SDK я пошел вперед и начал использовать это.

Когда дело дошло до проверки моего приложения сегодня утром, я получил следующее сообщение об ошибке:

Invalid Code Signing Entitlements. The entitlements in your app bundle signature do not match the ones that are contained in a provisioning profile. The bundle contains a key that is not included in the provisioning profile: 'com.apple.developer.icloud-container-environment' in Payload/AppName.app/AppName'. 

В Developer портала, мой App ID имеет ICloud включено, но только для Xcode 5, потому что я не хочу использовать CloudKit только пока:

enter image description here

в разделе Xcode, в Xcode 6 я теперь вижу следующее, равно как и все остальные:

enter image description here

С моей Панетом прав. Так что в моем случае это что-то вроде 82828282.com.company.app, и это в RED в разделе Capabilities.

enter image description here

Я не совсем понимаю, что я должен сделать, чтобы получить эту работу.

Вопросы

1) Я должен использовать CloudKit?

2) Должен ли я включить CloudKit в ИД приложения портала разработчиков?

3) Должен ли я использовать контейнеры iCloud в портале разработчиков?

Мой текущий iCloud настроен на использование прав: TeamID.identifier.

Я работал над этим, отправив приложение из Xcode 5.1.1, потому что это срочное решение, но я просто не понимаю, что делать, чтобы продвигаться с использованием iOS 8 и Xcode 6.0.1 для будущей разработки , с iCloud и Core Data по-прежнему очень активно в моем приложении.

Я видел некоторые подобные случаи внутри SO, как здесь (iCloud Core Data Not available after running in Xcode 6/ios 8 SDK) и Using Core Data, iCloud and CloudKit for syncing and backup and how it works together, но я действительно не уверен, что делать.

Любые указания вообще были бы оценены.

+0

Это может быть очевидно (но не для меня), но если вы решите использовать CloudKit, вы будете ограничивать себя iOS8 и выше. –

ответ

3

Если вы хотите продолжать использовать старый формат контейнера Ubiquity (тот, который начинается с $ (TeamIdentifierPrefix)) после того, как Xcode 6 обновили его в контейнер ICloud, вы должны:

  • Go на сертификаты, идентификаторы & Страница профилей в центре участника Apple и установите «Совместимость с Xcode 5» в настройках iCloud вашего идентификатора приложения - похоже, что вы уже это сделали.

  • Убедитесь, что в вашем файле прав нет ключа «com.apple.developer.icloud-services» или «com.apple.developer.icloud-container-identifiers».

  • Возможно, вам потребуется регенерировать все профили обеспечения, в которых используется этот идентификатор приложения.

+0

Извините за поздний ответ на этот Серхио - это было прекрасно и очень полезно. – amitsbajaj

1

У меня была аналогичная проблема с Xcode 7.3.1, но предусматривающие ICloud только мое приложение не поддерживает Core Data, и после того, как попробовал большинство из предложения нашли вокруг сети без каких-либо удачи, я разрешаться собирается на портале разработчиков:

Certificates Identities Profiles -> Identifiers -> iOS App IDs -> NameOfMyApp -> Edit

и там изменения радиокнопку с «Совместимость с Xcode 5» к «Включайте CloudKit поддержки (требуется Xcode 6)». В моем приложении используется только iCloud Key-value storage. enter image description here

+0

Эта проблема была решена на Xcode 8.0. Спасибо, что поделились знаниями. –

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