XULRunner 30.0升级

时间:2014-07-14 16:01:03

标签: macos firefox xulrunner

我有一个Mac OS X应用程序在XULRunner ver 18.0上正常运行。

现在我将XULRunner版本从18.0升级到30.0。遵循以下步骤:

  1. 下载了XULRunner 30.0 Runtime
  2. 从XULRunner.Framework目录中删除内容
  3. 复制在XULRunner 30.0 Runtime中下载的最新文件
  4. 现在,在启动应用程序时,我收到此错误:
  5. Dyld错误消息:   未加载库:@ executable_path / libmozglue.dylib   参考自:/Users/USER/Desktop/*/MyApp.app/Contents/MacOS/xulrunner   原因:未找到图像

1 个答案:

答案 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二进制文件时我们可以看到的第一个错误。

错误1:

  

dyld:未加载库:@ executable_path / libmozglue.dylib

必须将XUL.framework内容的全部内容放入App的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

目前,我现在可以提供的最后一个问题的唯一可能的解决方案是加载一个螺柱,一个shell脚本或编译的二进制文件,它执行必要的命令以在{{application.ini中运行xulrunner 1}}。