如何调试Mac OS X pkg



我构建了一个Mac OS X捆绑包Frequon Invaders.app,它运行良好。可执行文件是用Go创建的。然后我把它包装成这样:

$ pkgbuild --component 'Frequon Invaders.app' --install-location /Applications FrequonInvaders.pkg
pkgbuild: Adding component at /Users/Dad/Documents/projects/Frequon-Invaders-2.2/installer-macos/Frequon Invaders.app
pkgbuild: Wrote package to FrequonInvaders.pkg

当我在Finder中打开FrequonInvaders.pkg时,我会看到一个"安装频率入侵者"窗口,让我完成安装操作,摘要部分显示"安装成功"。但当我查看/Applications时,它不在那里。事实上,捆绑包中没有安装任何文件。

[更新]环顾四周,我发现该软件包似乎安装在Frequon Invaders.app最初构建的位置的正上方。似乎--install-location /Applications被完全忽略了!

问题:

  • 如何使用pkgbuild构建一个真正安装在install-location所说的安装位置的包

如何调试Mac OS X pkg?

调试.pkg文件很棘手,因为没有简单的方法可以获得详细的输出。

sudo installer -pkg my_package.pkg  -target / -verbose

这可能有助于理解失败的步骤,但实际上无助于缩小问题范围。。。

接下来,您可以使用类似The Unarchiver的实用程序来提取.pkg文件。您的脚本将需要通过该实用程序提取两次。

注意:如果您喜欢命令行:

xar -xf my_package.pkg # extract pkg
tar -xf Scripts        # extract scripts

从那里,您可以尝试解决脚本出现的问题。

但在我的情况下,我能够调试脚本的唯一方法是反复运行包,将调试语句回显到文件中。

例如:

# preinstall
echo "here!" >> /Users/Tom/Desktop/debug.txt

对于这样简单的安装程序,最好使用工具为您完成工作。我通常使用软件包工具

http://s.sudre.free.fr/Software/Packages/about.html

这是免费的,真的非常好。

最新更新