ProcessBuilder с открытой командой завершается неудачно в OSX - PullRequest
0 голосов
/ 25 мая 2018

Я столкнулся с проблемой, связанной с macOS.Чтобы объяснить ситуацию, мы пытаемся обновить старую систему автообновления для mac, которая просто заменила старые файлы jar, новым кодом, который автоматически откроет файл установщика .pkg после его загрузки.(На данном этапе единственный способ обновить все приложение, используя Sparkle или другую платформу, невозможен).

Файл .pkg подписан сертификатом «ID идентификатора разработчика ID».Файл .app подписывается сертификатом «Идентификатор приложения ID разработчика».

Но ... Когда приложение запускается двойным щелчком по нему или из терминала с помощью команды «открыть», когда дело доходит дочасть кода, где мы пытаемся запустить pkg через ProcessBuilder и команду «open», ничего не происходит, и консольное приложение Apple сообщает, что произошла проблема безопасности (-67062), ничего более.

Однакокогда то же приложение запускается непосредственно с помощью команды java, определенной JavaApplicationStub (копия, вставленная из журнала консольного приложения Apple), оно работает без проблем, и pkg открывается нормально.

Что мы можем сделать дляпреодолеть это?

ОБНОВЛЕНИЕ: Я также обнаружил, что команда spctl -a -v "возвращает:

 MyApp.pkg: rejected
 source=no usable signature

Если только она не используется с параметром"--type install ", которая дает:

 MyApp.pkg: accepted
 source=Developer ID

Я не знаю, имеет ли это значение или ожидаемый результат, но это может помочь

ОБНОВЛЕНИЕ 2:

Копать дальше в журналах High Sierra (недоступно с консоли, хотя, казалось, это предусмотрено ...), с помощью следующей команды:

 log stream --debug

Я смог увидеть, что проблема возникла изфайл jspawnhelper, расположенный в папке "lib" JRE, который не был подписан Oracle ... Кстати, это означает, что мы должны включить JRE, связанный с приложением Java, со всеми исполняемыми файлами, должным образом подписанными с помощью "Developer"Идентификатор приложения "сертификат.

Но ... все еще не решен ... Еще одна ошибка возникает снова с командой" open ", но это идет немного дальше.Теперь у меня есть следующее, выброшенное встроенным Installer.app от Apple:

 No Info.plist file in application bundle or no NSPrincipalClass in the Info.plist file, exiting.

И все еще не знаю, так как мой пакет уже содержит Info.plist ...

...