Какой сертификат следует использовать для подписания Приложения Mac OS X?

мы разрабатываем приложение Mac OS X, которое мы собираемся распространять за пределами Mac App Store. Мы закончили тем, что эти сертификаты в Программе разработчиков Mac:

List of six certificates: two of type Mac Development, four of types Developer ID Installer, Mac App Distribution, Mac Installer Distribution, Developer ID Application

и когда я иду, чтобы выбрать один для подписания приложений, я обнаружил следующее:

Certificate selection menu. Automatic: Mac Developer, Mac Distribution, Developer ID: *; others in Identities in Keychain

Я прав в том, что я должен использовать Developer ID: * для отладки? Позволит ли это разработчикам, у которых нет сертификата моей компании, подписать приложение, чтобы иметь возможность запустить локально?

какой сертификат я должен использовать для выхода?

2 ответов


для разработки (например, конфигуратино отладки) используйте Mac Developer опция, которая выберет ваш локальный сертификат разработчика Mac (в вашем случае "Mac Developer: José Fernández"), который предназначен для членов команды, работающих над вашим проектом (включая тестирование/отладку).

для выпуска используйте " Developer ID: *", который выберет стандартный сертификат выпуска приложения, используемый вне AppStore, в вашем случае " приложение Developer ID: Carousel Apps. Я рекомендуется выполнить окончательный тест / отладку после разработки кода, чтобы убедиться, что он работает должным образом.

способ Xcode подбирает сертификаты с помощью простого сопоставления подстрок.

Типы Сертификатов Apple Codesigning

(имя, тип, описание)

разработка iOS

  • разработчик iPhone: имя члена команды, используемое для запуска приложения iOS на устройства и использовать определенные сервисы приложений во время разработки.

iOS дистрибутив

  • распределение iPhone: Имя команды, используемое для распространения приложения iOS назначенные устройства для тестирования или отправки в App Store.

Разработка Mac

  • Разработчик Mac: имя члена команды, используемое для включения определенных служб приложений при разработке и тестирование.

Mac App Дистрибутив

  • стороннее приложение для разработчиков Mac: имя команды, используемое для подписи приложения Mac перед отправкой в Mac App Store.

Распространение Установщика Mac

  • установщик разработчика Mac 3rd Party: имя команды используется для подписи и отправки пакет установщика Mac, содержащий подписанное приложение, для Mac Приложение Магазин.

разработчик ID приложения

  • разработчик ID приложения: имя команды, используемое для подписания Приложения Mac перед распространение его за пределами Mac App Store.

установщик ID разработчика

  • установщик ID разработчика: имя команды, используемое для подписания и распространения Mac Пакет установщика, содержащий подписанное приложение, за пределами Mac Приложение Магазин

enter image description here После codesigned вы также можете имитировать поведение запуска вашего приложения, когда Gatekeeper включен из Terminal.app:

spctl -a -v Carousel.app

./Carousel.app: accepted
source=Developer ID

на Developer ID Application сертификат позволяет вашему приложению работать с Gatekeeper на установке " разрешить приложения, загруженные из Mac App Store и определили разработчиков"


для кодового знака через терминал (если не использовать XCode):

codesign - S "идентификатор разработчика" - V Карусель.app # подписать с "Developer ID Application" для распространения

codesign - S "Mac Developer" - v CarouselDebug.app # подписать с "Mac Developer:*" для тестирования

Карусель spctl-a-V.app # для проверки, искать "принято"

spctl-a-v CarouselDebug.app # для проверки, искать "принято"

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

ссылка: https://developer.apple.com/library/content/documentation/Security/Conceptual/CodeSigningGuide/Procedures/Procedures.html#//apple_ref/doc/uid/TP40005929-CH4-SW4