在使用PackageMaker(适用于Snow Leopard的XCode 3.2.1 1613)开发安装时,有时我在大多数(如果不是全部)文件上设置的权限,所有者和组都会蒸发。结果看起来我刚刚将文件添加到PackageMaker,然后在每个文件上设置文件perm / own / grp。
奇怪的是,.pmdoc文件夹中的大多数xml文件都会更改,甚至是index.xml,在没有任何更改的情况下强制出现大的SVN问题!当发生这种情况时,我只是SVN Revert,然后在建造之前检查所有内容(可能需要20分钟)。
我该如何避免这种情况?我可以做些什么来触发这种(不良的)行为?我还没有能够将我的行为与问题联系起来。下次它发生并且我有松弛的时间,我会区分.pmdoc / xml的变化,看看我是否能找到一个模式。
同时,如果有人有一些提示,我很感激。
答案 0 :(得分:2)
当使用使用PackageMaker GUI生成的.pmdoc项目时,我看到了同样的事情。
构成.pmdoc的文件包含嵌入各种内容的绝对路径,包括.pmdoc文件本身。无论您是将安装文件的路径更改为相对于.pmdoc位置还是其他任何内容,都会发生这种情况。
经过一些实验,看来如果你移动.pmdoc,或做任何改变其位置或环境的事情,PackageMaker会将所有类型的值重置为默认值 - 包括所有者/组权限,以及组件重定位和降级标志。这发生在PackageMaker的内存中,因为构成我的.pmdoc文件的组件文件都被我的源代码控制系统(Perforce)锁定,我已经验证它们没有更改。
暂时,我只是设置一个构建机器并构建文件夹而不是移动任何东西。
从长远来看,我打算使用PackageMaker的命令行界面切换到构建.pkg文件,这显然是Apple所做的。我发现a pretty good article有关于此的提示。
<强>更新强>
This article有一个很好的讨论和使用命令行“packagemaker”实用程序构建的简单安装程序的示例。替换示例中的明显值,这在我尝试过的每台机器上首次开箱即用,没有任何随机重置hoohah。与使用PackageMaker的两天相比,我在一小时内完成了更多的工作。抛弃GUI并使用它 - 你会很高兴。
如果您真的想使用GUI将安装程序放在一起,Packages看起来很有希望,但我还没有尝试过。