在使用PackageMaker(XCode 3.2.1 1613,针对Snow Leopard)开发安装程序时,有时我在大多数(如果不是全部)文件上设置的权限,所有者和组会消失。结果看起来像我刚刚将文件添加到PackageMaker之前,在每个文件上设置文件perm/own/grp一样。

奇怪的是,.pmdoc文件夹中的大多数xml文件都发生了更改,甚至index.xml都发生了变化,从而在没有任何更改的情况下导致了一个很大的SVN问题!发生这种情况时,我只需要SVN Revert,然后在构建之前检查所有内容(可能需要20分钟)。

如何避免这种情况?我应该怎么做才能触发这种(不良的)行为?我还无法将自己的行动与问题相关联。下次发生这种情况时,我有空闲时间,我将比较.pmdoc/xml的更改,看看是否可以找到模式。

同时,如果有人在那里有一些提示,我将不胜感激。

最佳答案

使用PackageMaker GUI生成的.pmdoc项目时,我看到的是同一件事。

组成.pmdoc的文件包含指向各种内容的嵌入式绝对路径,包括.pmdoc文件本身。无论您将已安装文件的路径更改为相对于.pmdoc位置的路径,还是发生任何其他情况,都会发生这种情况。

经过一些试验,看来如果您移动.pmdoc或进行任何其他更改其位置或环境的操作,PackageMaker会将各种值重置为默认值-包括所有者/组权限以及组件重定位和降级标​​志。这是在PackageMaker的内存中发生的,因为组成我的.pmdoc文件的组件文件都被我的源代码控制系统(Perforce)锁定了,并且我已经证实它们没有更改。

目前,我只是在设置构建机器和构建文件夹,而不移动任何东西。

从长远来看,我打算切换到使用PackageMaker的命令行界面构建.pkg文件,这显然是Apple所做的。我找到了a pretty good article,上面有一些提示。

更新

This article对使用命令行“packagemaker”实用程序构建的简单安装程序进行了很好的讨论和示例。替换示例中的明显值,这在我尝试过的每台机器上都是开箱即用的,开箱即用,没有任何随机重置方法。与使用PackageMaker在两天内完成的工作相比,这种方式在一个小时内可以完成更多的工作。放弃GUI并使用它-您会很高兴的。

如果您真的想使用GUI来将您的安装程序组合在一起,Packages看起来很有前途,但是我实际上没有尝试过。

关于macos - Mac PackageMaker-所有者/组/权限的随机重置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2010902/

10-12 21:05