我有一个Mac OS X应用程序在XULRunner ver 18.0上正常运行。
现在我将XULRunner版本从18.0升级到30.0。遵循以下步骤:
Dyld错误消息: 未加载库:@ executable_path / libmozglue.dylib 参考自:/Users/USER/Desktop/*/MyApp.app/Contents/MacOS/xulrunner 原因:未找到图像
答案 0 :(得分:3)
不幸的是,XULRunner没有得到很好的支持,但是我能够解决大部分错误并使其正常工作,除了我稍后会遇到的一个问题。
基本上,我可以找到的关于如何构建bundle的所有指令都已过时。 Mozilla had to restructure the binaries due to changes in the Mac code signing layout requirements。从this bug report和一些试验和错误,我能够确定布局要求。
从命令行运行Contents/MacOS/xulrunner
二进制文件时我们可以看到的第一个错误。
dyld:未加载库:@ executable_path / libmozglue.dylib
必须将XUL.framework
内容的全部内容放入App的Contents/MacOS/
目录中。因此,要修复此错误,请将XUL.framework/Versions/Current
中的所有内容复制到您应用的MacOS
目录中。
好的,现在二进制文件将运行。但是,这会将我们带到下一个错误,也可以从命令行中看到。
无法加载XPCOM。
此错误只是描述性的,但要解决此问题,您只需将dependentlibs.list
文件(现在位于MacOS
目录中)复制到Contents/Resources/
目录。
现在,当您通过命令行运行时,您将获得类似以下内容。
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
目前,我现在可以提供的最后一个问题的唯一可能的解决方案是加载一个螺柱,一个shell脚本或编译的二进制文件,它执行必要的命令以在{{application.ini
中运行xulrunner
1}}。