有人在Xcode 4模板中使用拷贝文件构建阶段取得了成功吗?

11

我一直在尝试为Xcode 4项目模板添加“复制文件”构建阶段,但是我无法弄清如何添加要复制的文件。

这是我为目标添加的内容。DstPath、DstSubfolderSpec和RunOnlyForDeploymentPostprocessing的更改在从模板创建的项目中都有体现。但是没有文件。我尝试使用名称为Files、Definitions、Nodes的键添加数组,但是没有任何影响。

如有任何想法或建议,将不胜感激!

        <key>BuildPhases</key>
        <array>
            <dict>
                <key>Class</key>
                <string>CopyFiles</string>
                <key>DstPath</key>
                <string></string>
                <key>DstSubfolderSpec</key>
                <string>10</string>
                <key>RunOnlyForDeploymentPostprocessing</key>
                <string>NO</string>
            </dict>
        </array>

你为什么要用XML而不是通过GUI来完成呢? - Ben Mosher
他正在创建一个XCode模板。 - Jano
我能找到的最好的是在开发者论坛上引用了一位“知情人士”在WWDC上表示这不受支持;这与我尝试通过 'strings DevToolsCore' 找到一个适当的字符串名称相对应的必要识别字符串在 plist 中是一致的:它在字符串 'Copy Files' 附近呈现了字符串 DstPath 和 DstSubfolderSpec,但没有一个字符串可以引用生成的文件数组,就像在 Xcode 中以图形方式执行时那样。我尝试了字符串 'buildFiles',但它在 .plist 的那部分没有被识别。 - john.k.doe
有人最终找到了如何做到这一点吗? - Santhosh R
3个回答

2

我在一些奇怪的Python脚本中发现了一个小宝石,它提供了一个“更好”的(与无解释相对)神秘DstSubfolderSpec的解释……

# dstSubfolderSpec property value used in a PBXCopyFilesBuildPhase object.
'BUILT_PRODUCTS_DIR': 16,  # Products Directory
 : 1,                      # Wrapper
 : 6,                      # Executables: 6
 : 7,                      # Resources
 : 15,                     # Java Resources
 : 10,                     # Frameworks
 : 11,                     # Shared Frameworks
 : 12,                     # Shared Support
 : 13,                     # PlugIns

实际上,在脚本中有相当多有趣的信息,(显然这是pythonwebkit的一部分,或者类似的东西)...如果你想尝试获取其他有用的信息,我在这里发布了一个要点


1

到目前为止,我已经让这个工作起来了:

<dict>
    <key>Class</key>
    <string>CopyFiles</string>
    <key>DstPath</key>
    <string>www</string>
    <key>DstSubfolderSpec</key>
    <string>7</string>

这将创建一个CopyFiles构建阶段,将文件复制到资源内的“www”文件夹中。(这将导致这些文件位于应用程序包中的/ www下。)但是,我还没有能够指定要复制哪些文件。这类似于此问题


0

我不知道答案,但这可能是一个解决方法。它会在每次构建时运行一个脚本。

<key>Targets</key>
<array>
    <dict>
        <key>BuildPhases</key>
        <array>
            <dict>
                <key>Class</key>
                <string>ShellScript</string>
                <key>ShellPath</key>
                <string>/bin/sh</string>
                <key>ShellScript</key>
                <string>~/hello.sh</string>
            </dict>

enter image description here

请注意脚本的路径是绝对路径。也许你可以使用PathType Group定义一个路径,使其相对于项目内的组(我没有尝试过)。 DstPath是要复制文件的目标路径(我猜测)。我不知道DstSubfolderSpec是什么,它只在命令行工具中出现,并且值为0。我猜你也不知道。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接