Хотя ссылка RedYeti полезна, просто для того, чтобы сэкономить несколько кликов для других, позвольте мне напомнить, как создать сертификат для подписи кода и использовать его для (повторной) подписи кода:
Создайте свой собственный сертификат подписи кода:
В Доступе Цепочки для ключей, Доступ Цепочки для ключей> Помощник Сертификата> Создать сертификат. Это запускает Ассистент Сертификата:
Имя: введите здесь произвольную строку, которую вы можете запомнить. Избегайте пробелов, иначе вам потребуется экранировать имя сертификата при использовании codesign
из командной строки.
Тип удостоверения: самоподписанный корень
Тип сертификата: Кодовая подпись
Установите флажок «Позвольте мне переопределить значения по умолчанию», это очень важно
Серийный номер: 1 (ОК, если комбинация имени сертификата / серийного номера уникальна)
Срок действия: 3650 (дает 10 лет)
Адрес электронной почты, имя и т. Д. Заполните, как хотите.
Информация о паре ключей: установлена в RSA, 2048 бит. ИМХО не имеет большого значения.
От «Расширения использования ключа» до «Расширения альтернативного имени субъекта»: примите значения по умолчанию.
Расположение: логин брелок.
После того, как он создан, установите «Всегда доверять» в цепочке ключей входа в систему: щелкните правой кнопкой мыши сертификат, выберите «Получить информацию», а в разделе «Доверие» установите «При использовании этого сертификата» значение «Всегда доверять».
Повторная подпись приложения:
codesign -f --deep -s <certname> /path/to/app
Убедитесь, что это сработало:
codesign -dvvvv /path/to/app
Наслаждайтесь!
ОБНОВЛЕНИЕ:
Люди спрашивали меня, почему это не работает в macOS 10.14 «Мохаве». Теперь, когда я наконец обновился :-), вот что я узнал.
По сути, не используйте самозаверяющий сертификат для подписи кода. Создайте сертификат, используя свой Apple ID в XCode вместо этого. Чтобы кратко повторить шаги:
В Xcode> Настройки> Учетные записи, выберите свой идентификатор разработчика Apple, нажмите «Управление сертификатами», выберите «+» в левом нижнем углу, он предлагает вам опцию «Apple Development». Выберите это, это сделает сертификат для вас. Нажав Ctrl-клик по новому сертификату, вы можете экспортировать его (в .p12
формате) и, open
загрузив этот .p12
файл, загрузить в свою цепочку для ключей входа в систему.
Вы увидите, что этот сертификат действителен в течение года, «выданного: Apple Worldwide Certification Authority». Я подозреваю, что это заслуживает доверия, чем самозаверяющий сертификат.
Теперь вы можете подписать свое приложение, как и раньше, с помощью codesign -f -s <apple_ID> /path/to/prog
. Я попробовал это с простым двоичным файлом (скомпилировано из hello.c
:-)), и это можно проверить с помощью codesign -v
.
Я еще не пробовал это с пакетами Python, поэтому я не советую людям, которые упомянули в своих комментариях, что это не может подписывать "python.app".