如何在项目模板中添加构建阶段?

7

我正在尝试在Xcode 4的自定义项目模板中为目标添加“运行脚本构建阶段”。

有没有任何关于如何做到这一点的示例、教程或提示?

我认为这将在TemplateInfo.plist中完成,但我的搜索结果都没有收获。

2个回答

14
经历了不少的尝试和错误,我终于解决了。在TemplateInfo.plist中需要添加以下额外的键。这将添加一个脚本,该脚本将在其他默认构建阶段之后运行。
<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># Just a comment</string>
            </dict>
        </array>
    </dict>
</array>

4
如果我希望在“编译源代码”阶段之前运行它,该怎么办? - kender
2
在编译阶段之前运行此脚本的任何提示吗? - Jason McDermott
为了让它先运行,您应该打开祖先直到找到其他构建阶段。然后将其放在源构建阶段之前即可。 - Paulo Faria
2
@Wex 你知道如何定义输入和输出文件吗? - Paulo Faria
FYI:您实际上可以通过指定键“Name”(<key>Name</key><string>Some Title</string>)在XCode中重命名脚本的标题。 - Martin

1
为了回答 @Paulo Faria 的问题,我找到了一种方法来添加输入和输出文件到运行脚本阶段(我的模板使用 R.swift,需要输入和输出文件):
<key>Targets</key>
<array>
    <dict>
        <key>BuildPhases</key>
        <array>
            <dict>
                <key>Class</key>
                <string>ShellScript</string>
                <key>ShellPath</key>
                <string>/bin/sh</string>
                <key>Name</key>
                <string>R.swift</string>
                <key>ShellScript</key>
                <string>"$PODS_ROOT/R.swift/rswift" generate "$SRCROOT/R.generated.swift"</string>
                <key>InputFiles</key>
                <array>
                    <string>$TEMP_DIR/rswift-lastrun</string>
                </array>
                <key>OutputFiles</key>
                <array>
                    <string>$SRCROOT/R.generated.swift</string>
                </array>
            </dict>
        </array>
    </dict>
</array>

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