К сожалению, XULRunner плохо поддерживается, но мне удалось обойти большинство ошибок и заставить его работать, за исключением одной проблемы, о которой я расскажу позже.
По сути, все инструкции, которые я могу найти о том, как структурировать пакет, устарели. Mozilla пришлось реструктурировать двоичные файлы из-за изменений в Mac требования к макету подписи кода. Из этого отчета об ошибке и некоторых проб и ошибок я смог определить макет требования.
Первая ошибка, которую мы можем увидеть при запуске бинарника Contents/MacOS/xulrunner
из командной строки.
Ошибка 1:
dyld: библиотека не загружена: @executable_path/libmozglue.dylib
Все содержимое XUL.framework
должно быть помещено в каталог Contents/MacOS/
приложения. Итак, чтобы исправить эту ошибку, скопируйте все из XUL.framework/Versions/Current
в каталог MacOS
вашего приложения.
Хорошо, теперь бинарник запустится. Однако это подводит нас к следующей ошибке, которую также можно увидеть из командной строки.
Ошибка 2:
Не удалось загрузить XPCOM.
Эта ошибка не является описательной, но для ее решения вам просто нужно скопировать файл dependentlibs.list
(теперь в вашем каталоге MacOS
) в ваш каталог Contents/Resources/
.
Ошибка 3:
Теперь, когда вы запустите командную строку, вы получите что-то вроде следующего.
Mozilla XULRunner 36.0.4
Usage: xulrunner [OPTIONS]
xulrunner APP-FILE [APP-OPTIONS...]
OPTIONS
--app specify APP-FILE (optional)
-h, --help show this message
-v, --version show version
--gre-version print the GRE version string on stdout
APP-FILE
Application initialization file.
APP-OPTIONS
Application specific options.
К сожалению, xulrunner
не находит автоматически файл application.ini
в Contents/Resources
. Для тестирования мы можем форсировать его через командную строку. Что-то вроде следующего поможет:
./MyApp.app/Contents/MacOS/xulrunner MyApp.app/Contents/Resources/application.ini
На данный момент единственное возможное решение этой последней проблемы, которое я могу предложить на данный момент, - это загрузить стад, либо сценарий оболочки, либо скомпилированный двоичный файл, который выполняет необходимую команду для запуска application.ini
в xulrunner
.
person
Alexander O'Mara
schedule
24.03.2015
libmozglue.dylib
? В сообщении об ошибке ясно сказано, что он должен быть там, но его нет. - person Wladimir Palant   schedule 14.07.2014