2015-07-01 1 views
1

У меня возникли проблемы с выпуском подписанного пакета приложений для OS X с Install4j 6. Я прочитал запись в блоге по адресу http://blog.ej-technologies.com/2014/09/the-v2-signature-scheme-for-application.html, и это заставило меня поверить что невозможно создать подписанное приложение-установщик (для моего клиента требуется несколько шагов, включая согласие с лицензией), который устанавливает подписанное приложение.Комплект приложения для подписи кода на OS X с Install4j 6, запечатанный ресурс отсутствует или недействителен

Пример:

  1. загрузок пользователя MyApplication.dmg
  2. Пользователь устанавливает его в Finder и нажимает кнопку "Установить MyApplication.app"
  3. пользователя следующим инструкциям в программе установки и пакета приложения заканчивается в/Application /MyApplication.app

проблема здесь состоит в том, что если я использую Single Bundle Installer, только «Instal l MyApplication.app '(установщик) подписан. Я могу проверить это с помощью spctl.

$ spctl -a -v /Volumes/<VOLNAME>/Install\ MyApplication.app 
/Volumes/<VOLNAME>/Install MyApplication.app: accepted 
source=Developer ID 

Проблема, само приложение расслоение не подписан, и я получаю раздражающие всплывающие окна брандмауэра, потому что приложение должно открыть TCP порт.

$ spctl -a -v /Applications/My\ Application.app 
/Applications/My Application.app: rejected 
source=no usable signature 

Так что я сделал это преобразовать его в Single Bundle Archive. Затем я открываю DMG и перетаскиваю MyApplication.app в папку/Applications. Но затем spctl все еще жалуется:

$ spctl -a -v /Applications/My\ Application.app 
/Applications/My Application.app: a sealed resource is missing or invalid 

Может ли кто-нибудь указать мне правильное направление? Как исправить эту проблему? И совершенно невозможно иметь подписанный установщик (т. Е. Что-то с помощью мастера GUI), который извлекает подписанный пакет приложений? Почему это необходимо для изменения пакета при его установке?

+0

Вы пытаетесь подписать «архив продукта установщика» или «пакет приложений», это немного неясно? Также, пожалуйста, укажите точную команду кодового обозначения, которую вы используете, и какой тип кода присваивает сертификат.Инсталляторные пакеты должны быть подписаны определенным образом, и это обеспечило «pkg» или «mpkg» - из внешнего вида, который не похож на тип используемого вами пакета установщика. –

ответ

1

Проблема здесь состоит в том, что если я использую Single Bundle Installer, только> 'Установить MyApplication.app' (инсталлятор) подписан

Это правильно. Технически это невозможно, так как есть переменные файлы времени выполнения в содержащейся директории (.install4j), которая нарушит подпись. Мы не будем добавлять этот тип медиафайла сегодня, но мы, очевидно, не можем его удалить.

Он пройдет мимо привратника, но если вам нужен подписанный пакет приложений, вам нужно использовать один пакетный пакет или установщик папок.

Так что я сделал, это преобразовать его в один архив. То, что я тогда делаю, - это> открыть DMG и перетащить MyApplication.app в папку/Applications. > Но тогда spctl все еще жалуется:

Этого не должно быть. Что-то должно было изменить файл между ними. Попробуйте подписать другой установщик, например, образец «hello world» и проверьте, что происходит в этом случае.

+0

Привет Инго, спасибо, что так быстро ответил. Я рад поговорить с определенным авторитетом в этом вопросе. Я понимаю, что изменение файла в комплекте приведет к сломанию подписи, что я не понимаю, почему это необходимо сделать в первую очередь? Может ли простейший установщик представить себе не просто копию уже подготовленного пакета приложений в/Applications? –

+0

Установщик не работает таким образом в install4j, он устанавливает все файлы отдельно, конечный результат не известен во время компиляции. Можно было бы подумать о медиа-файле, который делает то, что вы хотите, но это будет сильно отличаться от нашей концепции установщика. Кроме того, предварительно подписанный пакет приложений не нуждается в установщике в Mac OS X, его следует перетащить в конечный пункт назначения пользователем. Если необходима дополнительная настройка, вы можете сделать это при первом запуске с помощью специального приложения-установщика. –

+0

Хорошо, спасибо. Я постараюсь, чтобы архив Single Bundle работал, и добавьте лицензионное соглашение в DMG. –