нотариально заверять Java-приложение для распространения в Mac App Store - PullRequest
0 голосов
/ 23 ноября 2018

У меня есть приложение со встроенным jvm. Я пытался загрузить его в яблоко для нотариального заверения, но я получал the binary is not signed ошибки

severity    "error"
code    null
path    "Myapp.dmg/Myapp.app/Contents/Resources/javafx-media-11-mac.jar/libfxplugins.dylib"
message "The binary is not signed."
docUrl  null
architecture    "x86_64"

Я уже подписал Myapp.app, а также подписалMyapp.dmg с --deep & --options runtime Я также пытался подписать все файлы в папке своего приложения с помощью find Myapp.app -exec codesign -f -s $MYDEVELOPERID --deep --options runtime {} \;, но все равно не работал.

Обратите внимание, что путь к файлу, который я получил из ошибки,внутри флягиЯ уже подписал файл фляги.Нужно ли мне распаковывать файл jar, подписывать каждый файл и перепаковывать его?Это было бы слишком тривиально!

1 Ответ

0 голосов
/ 19 декабря 2018

также подписал Myapp.dmg с --deep & --options runtime

Может показаться, что --deep еще не закодировано для перемещения внутри файлов JAR.

Я уже подписал файл jar.Нужно ли мне распаковывать файл jar, подписывать каждый файл и перепаковывать его?

Да..dylib, .jnilib (и, вероятно, .so) должны быть подписаны индивидуально.Если они предоставлены сторонней организацией из JAR, вам нужно будет извлечь, подписать и затем повторно связать файл JAR.

В вашем случае JavaFX больше не связан с Java 11 Runtimeтак что это JavaFX JAR, который вы связываете, который вам нужно извлечь, подписать и повторно заархивировать.

Этот процесс прописан (в общем) здесь: https://stackoverflow.com/a/53528020/3196753. Есть такжессылка на ANT-специфичный код здесь , но каждая сборка будет нуждаться в очень специфичном коде, поэтому он предоставляется только в качестве ориентира для работающей нотариально заверенной сборки.

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

Можно подумать, что подпись этих файлов .dylib должна принадлежать поставщику JAR, но я 'Мы ничего не нашли о разрешении смешанных подписчиков в проектах ни в одной из документации Apple .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...