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

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

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


person Fabrizio Bartolomucci    schedule 11.09.2016    source источник


Ответы (2)


С выпуском 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-уведомление», связана с тем, что Xcode 8 изменил способ применения прав. В предыдущих версиях Xcode вам не нужно было явно добавлять право APS Environment, было достаточно, если у вашего профиля подготовки было это право. Убедитесь, что у вас включена возможность Push Notification на вкладке Capabilities, и убедитесь, что там нет ошибок.

(Редактировать: это новое поведение является преднамеренным и описано в примечаниях к выпуску 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 из профилей подготовки во время сборки. Такое поведение является преднамеренным. Чтобы использовать это право, либо включите Push-уведомления на панели «Возможности» редактора проекта, либо вручную добавьте право в свой файл прав. (28076333)

person pablobart    schedule 14.09.2016
comment
Да, на самом деле возможность уведомления была странно красной. Я нажал кнопку, и он тоже вошел. Странное поведение. Я думаю, мне придется отправить двоичный файл, так как этот идет без уведомлений. Во всяком случае, Apple не отвергла мой двоичный файл. - person Fabrizio Bartolomucci; 17.09.2016
comment
@pablobart, нормально ли, что право имеет значение Права APS -> разработка после нажатия кнопки «Исправить проблему» в «Возможности»? Я думаю о ценности распределения. - person gaussblurinc; 23.09.2016
comment
Профили подготовки, созданные Xcode. означает ли это, что xcode будет автоматически создан на сайте developer.apple.com? потому что я читал кое-что, когда было сказано, что он будет создан с общим «XC» - person Jai Gtz; 06.06.2018

Вот процесс включения подписи вручную

  1. В редакторе проекта выберите цель во всплывающем меню «Проект/Цель», нажмите «Подписание и возможности», затем откройте настройки подписи.

  2. Щелкните Все или конкретную конфигурацию сборки.

    Например, вы можете использовать автоматическую подпись для конфигурации выпуска и ручную подпись для конфигурации отладки.

  3. Снимите флажок «Автоматически управлять подписанием».

    Примечание. Если цель не использует профиль обеспечения (например, платформу), выберите команду во всплывающем меню «Команда».

  4. Во всплывающем меню «Профиль обеспечения» выберите настраиваемый профиль обеспечения.

    Меню содержит все настраиваемые профили подготовки для всех ваших команд, которые соответствуют идентификатору целевого пакета. Меню может содержать просроченные и недействительные профили подготовки — например, профиль подготовки с идентификатором приложения, который изменился в вашей учетной записи разработчика.

    Если профиль обеспечения, который вы хотите использовать, не отображается в меню, вы можете загрузить профиль обеспечения или импортировать профиль обеспечения.

Для получения дополнительной информации: https://help.apple.com/xcode/mac/current/#/dev1bf96f17e

person Paresh Mangukiya    schedule 07.12.2020