Можно ли подписывать приложения Apple Silicon с помощью самозаверяющего сертификата при их распространении за пределами App Store?

#macos #app-store #codesign #osx-gatekeeper #apple-silicon

#macos #app-store #кодовый дизайн #osx-привратник #apple-silicon

Вопрос:

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

Однако с появлением компьютеров Apple M1 ситуация изменилась, поскольку подпись кода, похоже, теперь обязательна для собственных приложений Apple Silicon. Вот почему я хотел бы спросить: достаточно ли подписать мое приложение с помощью самозаверяющего сертификата при его распространении за пределами App Store? Смогут ли пользователи, загружающие приложение, подписанное с помощью самозаверяющего сертификата, запустить это приложение?

Я ожидаю, что Gatekeeper, вероятно, сначала заблокирует такое приложение, потому что оно было подписано с использованием самозаверяющего сертификата, но смогут ли пользователи переопределить вето Gatekeeper в настройках безопасности (как это было ранее в случае с неподписанными приложениями)?

Или все приложения, созданные для Apple Silicon, должны быть подписаны официальным сертификатом Apple? Я бы хотел избежать этого, потому что в прошлый раз, когда я проверял, это составляло 99 долларов в год.

Ответ №1:

Вы можете разработать код с ad-hoc помощью функции. codesign -s - -f /path/to/filename . Для этого не требуется сертификат.

Комментарии:

1. Специальный подписанный код AFAIU будет выполняться только на компьютере, на котором он был подписан. Это не позволит мне распространять мое приложение среди других пользователей.

2. Нет, специальный подписанный код будет работать просто отлично. Я пробовал это, и исполняемые файлы отлично работают при перемещении на другой компьютер Apple silicon.

3. Вы подписали весь пакет приложений или только основной исполняемый Name.app/Contents/MacOS файл?

4. Я пробовал только исполняемые файлы, а не пакеты приложений.