2016-09-11 3 views
15

Hullo,Xcode 8.0 Автоматический контроль поведения подписи

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

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

ответ

44

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

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

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

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

Другая проблема, которую вы описываете, «Отсутствие права на уведомление о передаче 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-не автоматически копировать АПС-среду права из резервов профилей во время сборки. Такое поведение предназначение. Чтобы использовать это право, включите Push Notifications в панели возможностей редактора проекта или вручную добавьте право в ваш файл прав. (28076333)

+0

Да, на самом деле возможность уведомления была странно красной. Я нажал кнопку, и она тоже попала. Странное поведение. Я думаю, что мне придется представить двоичный файл, поскольку он идет без уведомлений. Во всяком случае, Apple не отказалась от моего двоичного кода. –

+1

@pablobart, нормально ли, что право имеет значение «APS Entitlement -> development» после нажатия кнопки «Исправить проблему» в Capabilities? Я думаю о ценности распределения. – gaussblurinc

+1

Вот видеозапись WWDC 2016 Session 401: https://developer.apple.com/videos/play/wwdc2016/401/ –

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