2012-05-21 115 views
2

我试图通过PackageMaker的命令行界面自动化Mac OS X包构建。到目前为止,我设法构建包并运行postinstall脚本。告诉我有没有办法在通过命令行构建时添加选项?因为我希望用户有一个运行或不运行postinstall脚本的选项。 P.S .:我不想使用“.pmdoc”。这个选项很糟糕。Mac OS X PackageMaker

+0

我写了关于在此处使用[pkgbuild和productbuild](http://stackoverflow.com/questions/11487596/making-os-x-installer-packages-like-a-pro-xcode4-developer-id-mountain -lion-RE/11487658#11487658)。 PackageMaker一直都是鬼鬼祟祟的,而且被Mac OS X 10.6 Snow Leopard弃用。 – catlan

回答

3

正如我在评论中所说的,PackageMaker列出了我添加到项目中的文件并将其写入到它的项目中。所以,如果我想添加一个单独的文件,我需要打开项目,删除包含该文件的选择,最后,再次添加包含新文件的所有文件。或直接编辑项目的XML文件。使用PackageMaker自动构建我的项目包是无法忍受的。所以我改变了一个工具。一些谷歌搜索帮我找到了Packages。这个工具也不是很理想,但它比Apple的好得多。 Mojca大致描述了我迄今为止使用PackageMaker所做的工作。 虽然使用我也不得不使用项目文件。但是,这个软件不收集有关您加入到项目中的所有文件的信息,除非你明确告诉它这样做: this screen is helpful

您可以在照片,我在什么深度文件应包含项目有选择的看。 .app文件夹下的所有文件夹都被手动扩展,以确保可以包含新文件的文件夹不会被扩展。在这种情况下,它是Java文件夹。 下一页和最后一步是组装使用蚂蚁包:

<exec executable="/usr/local/bin/packagesbuild"> 
      <arg value="-v"/> 
      <arg value="${basedir}/Installer/MyProject.pkgproj"/> 
</exec> 
2

这是不准确的回答你的问题,而是一个有经验的Mac开发谁花了很多时间去测试,并与PackageMaker战斗最近给我下面的提示:

您可以从命令调用PackageMaker行, ,但它看起来像苹果没有花费很多努力,很多东西 不起作用。因此改用GUI界面。

我决定接受他的教训。对我来说,作为一个相当不错的妥协方案,一次只使用GUI来准备初始文件并手动对这些xml文件进行任何后续更改。然后我们在Xcode项目的目标这就要求packagemaker:

packagemaker --doc $SRCROOT/Project.pmdoc --out $BUILT_PRODUCTS_DIR/stage/ProjectInstaller.pkg 
hdiutil create $BUILT_PRODUCTS_DIR/Project-$VERSION.dmg -volname \"Project-$VERSION\" -fs HFS+ -srcfolder \"$BUILT_PRODUCTS_DIR/stage 

,让所有我们现在需要做的(除了增加.pmdoc文件版本)来调用

xcodebuild -target Package 

获得.dmg图片。

我决定发布这个答案,尽管你明确要求不要使用.pmdoc主要是从头开始创建一个包时分享(别人的)不好的CLI体验。也因为我第一次没有意识到用GUI创建一个包并不意味着我每次需要修改或构建一个包时都需要使用“奇怪的GUI工具”。

+0

我对* .pmdoc *有不好的体验。为什么我不想使用它的主要原因 - 不可能只给一个文件夹gui PackageMaker。这个丑陋的东西枚举了给定文件夹中的所有文件,并将它们的列表写入到它的项目文件中。这就是为什么您不能将单个文件添加到部署单元,而不会再次混淆.pmdoc和PackageMaker。这是非常不方便的。我想我会回答描述我现在使用的解决方案。 –

4

挣扎与packagemaker的命令行参数一段时间后,我发现有更先进的日期和相关工具:pkgbuildproductbuild

自从我找到一种方法来做我想折磨包装工的人,我从未使用过他们。

希望这会帮助一些不幸的Mac开发者。

+0

感谢您的回答。现在我正在使用第三方工具* Packager *。也许我会在下一个mac项目上尝试一下你的建议。 –