Подтвердить что ты не робот

Xcode 8.0 Автоматическое управление поведением подписи

Некоторое время я использовал опцию "Автоматически управлять подписью". Тем не менее, когда я делаю это в последней версии Xcode 8.0, это заставляет меня использовать идентификацию подписи кода разработчика даже для выпуска и распространения в настройках сборки, что само по себе довольно странно. И когда я отправляю относительный двоичный файл, я получаю страшное электронное письмо от Apple. Чтобы восполнить это, я отключил автоматическую опцию и вернулся вручную, указав профили, что позволило мне сохранить профиль распространения в настройке сборки дистрибутива и сохранить электронное письмо с предупреждением от Apple.

Почему автоматическое управление работает таким образом и что нужно сделать, чтобы настроить его поведение?

4b9b3361

Ответ 1

С выпуском Xcode 8 Apple представила новый способ управления конфигурацией подписи. Теперь у вас есть две опции Manual и Automatic.

Этот новый Automatic Signing работает не так, как в предыдущих версиях Xcode. До того, как вы установили профили подготовки Automatic, Xcode использовал первый профиль обеспечения и сертификат на вашем компьютере, который соответствует идентификаторам и идентификатору пакета, который вы пытались использовать.

В Xcode 8 Automatic Signing будет управлять профилями, правами и сертификатами для вас, но только для Development. Если вы выберете автоматический, вы будете вынуждены использовать профили подготовки Development signing и Xcode.

На WWDC 2016 (сеанс 401 - что нового в подписании приложения Xcode) они объясняют этот новый метод подписи и описывают некоторые "лучшие практики", Когда вы создаете для распространения и используете Automatic Signing или Manual, вы должны архивировать для Development, а затем экспортировать (из организатора или инструментов командной строки xcodebuild -exportArchive) в качестве Distribution. Организатор будет повторно подписывать ваше приложение для Distribution, даже если он был заархивирован для Development.

Другая проблема, которую вы описываете, "Отсутствие права на уведомление Push Push" заключается в том, что Xcode 8 изменил способ применения прав. В предыдущих версиях Xcode вам не нужно было явно добавлять права на APS Environment, этого было достаточно, если ваш профиль обеспечения имел это право. Убедитесь, что функция Push Notification включена на вкладке Capabilities и убедитесь, что там нет ошибок.

(Edit: это новое поведение преднамеренно и описано в примечаниях к выпуску Xcode 8: https://developer.apple.com/library/content/releasenotes/DeveloperTools/RN-Xcode/Introduction.html#//apple_ref/doc/uid/TP40001051-CH1-DontLinkElementID_44)

Xcode 8 не автоматически копирует права доступа aps-environment из профилей подготовки во время сборки. Это поведение намеренным. Чтобы использовать это право, активируйте Push Notifications в панели возможностей редактора проектов или вручную добавить право на ваш файл прав. (28076333)