2010-04-09 72 views
3

我想(定期和自动)从许多地方的各种文件和文件夹创建安装程序。但是,我无法弄清楚如何为packagemaker命令提供我想要安装的所有项目的路径。您可以使用PackageMaker命令从文件列表创建安装程序吗?

这是用于内部开发目的,而不是用于客户分布。我希望包含的文件是可配置的;使用GUI来添加所有路径并不是一个真正的选择,因为它们会频繁更改。

我能做的最好的就是使用--watch标志和touch包中包含的所有我想要的东西。这非常混乱,并且包含偶然在同一时间被访问的其他文件。没有一个共同的计划,我想包括,所以我不能只是--filter休息了。

理想情况下,我只是给它一个完整的路径文件,它会构建包。如果这不是一种选择,我不会反对生成XML或将它们放在命令行或任何可用的工具上。我可能在安装程序中有大约30个文件,但这个数字可能会增加。

有没有更好的方法来做到这一点?我错过了这一点吗?

编辑:认为我可以将包中所需的所有文件复制到目录中,然后使用--root标志。这是做这件事的最好方法吗?

编辑2:有没有办法用符号链接来做到这一点,所以我不需要复制文件之前?

+0

哪里是命令行PackageMaker?我只能找到PackageMaker.app – yairchu 2010-05-30 21:00:53

+3

nm。我找到了答案('/Developer/Applications/Utilities/PackageMaker.app/Contents/MacOS/PackageMaker --help') – yairchu 2010-05-30 21:23:39

+0

@zekel - 你可以用这个命令行选项发布一个答案吗? – petert 2011-10-12 17:16:30

回答

1

(我不是标志着这个答案是接受了,因为我真的希望能够创建在不同位置的文件安装程序,而无需将其复制到一个临时目录。)

按照要求通过petert,以下是您如何从目录中的文件创建安装程序。请注意,这不完全是我想要的,因为它将全部添加到目录中的文件中。 (我只希望包括一些特定的文件)。

## create the fake root directory (which is also the name of the .pkg installer created) 
## paths below this will be interpreted as absolute when the installer runs 
mkdir -p MyInstaller 

## create some fake stuff to install 
install_to="MyInstaller/$HOME/installed_dir/" 
mkdir -p "$install_to" 
echo 'it worked!' > "$install_to/test.txt" 

## actually create the installer 
/Developer/usr/bin/packagemaker -i com.mycompany.myInstallerName --root MyInstaller 

请注意,您必须提供与-i选项捆绑标识符(或提供的plist。)

+0

谢谢zekel。实际上我发现如果你把所有的文件放在say/tmp/mypackage中,那么在pmdoc中使用这个绝对路径,当你在命令行上运行packagemaker时,它会按预期工作。 – petert 2011-10-24 09:06:54

+0

我同意,你必须为所有必须添加到包中的文件创建一个“暂存”文件夹,但它工作起来很负责任;而苹果公司现在还不打算开发AppMaker应用程序进一步开发PackageMaker应用程序。灯泡时刻意识到您只需创建一个包含'staging'文件夹的包(pmdoc)doc文件,然后您可以重新使用此文件来创建新版本的任何文件。 – petert 2011-10-26 08:50:35