在XCode 4模板中创建子组

时间:2011-03-26 22:09:55

标签: xcode xcode4

虽然在XCode 3中有很多文档和示例用于创建模板,但将它们转换为XCode4模板却是一场噩梦......

首先,我发现了这一点:

  • BorealKiss为州议员提供了一个很好的教程
  • Cocos2d有一些非常好的示例可让您的模板更“进化”

但他们都没有回答这个样本问题:

如何创建文件夹内幕其他文件夹

例如,如果您想在组中包含文件,则应编写:

<key>Definitions</key>
<dict>
    <key>File1.h</key>
    <dict>
        <key>Group</key>
        <string>Group1</string>
        <key>Path</key>
        <string>File1.h</string>
        <key>TargetIndices</key>
        <array/>
    </dict>
    <key>File1.m</key>
    <dict>
        <key>Group</key>
        <string>Group1</string>
        <key>Path</key>
        <string>File1.m</string>
    </dict>
</dict>

<key>Nodes</key>
<array>
    <string>File1.h</string>
    <string>File1.m</string>
</array>

但是你如何在Group2中使用Group1。

我尝试了很多东西,与祖先玩耍,但除了一切都没有用之外。 任何建议或任何文档(我在这些XCode模板上找不到任何文档)都将不胜感激。

3 个答案:

答案 0 :(得分:18)

我已多次尝试修改TemplateInfo.plist,我也尝试制作一个子组并将文件放入其中。最后我找到了解决方案:

定义部分:

<key>Definitions</key>
<dict>
    <key>main.h</key>
    <dict>
        <key>Path</key>
        <string>main.h</string>
        <key>Group</key>
        <array>
            <string>parent</string>
            <string>child</string>
        </array>
    </dict>
</dict>

在节点部分:

<key>Nodes</key>
<array>
    <string>main.h</string>
</array>

上面的代码将创建父组和子组。并且main.h在孩子身上

Project
--parent
---child
----main.h

答案 1 :(得分:1)

我也一直在努力解决这个问题。 作为一种解决方法,我在TemplateInfo.plist位置创建并添加了一个文件夹(在您的情况下应该是名为Group1的文件夹)。文件夹布局(子文件夹和文件)与我希望它们在我的项目源树中相同(例如文件夹'Group1'有子文件夹'Group2',文件夹'Group2'有文件File1.h和File1.m等)。 然后我只需在我的TemplateInfo.plist文件中添加根文件夹(Group1),方法是在“定义”部分中定义它,然后将其添加到“节点”部分,如下所示:

<key>Definitions</key>
<dict>
<key>Group1/</key>
<dict>
<key>Path</key>
<string>Group1/</string>
<key>TargetIndices</key>
<array/>
</dict>

<key>Nodes</key>
<array>
<string>Group1</string>
</array>

答案 2 :(得分:1)

enter image description here

对于任何需要帮助的人,这是在 Xcode 12.4 上,这是一个项目模板。

                        <key>Nodes</key>
                    <array>
                        <string>ViewController.swift:comments</string>
                        <string>ViewController.swift:imports:importCocoa</string>
                        <string>ViewController.swift:implementation(___FILEBASENAME___: UIViewController)</string>
                        <string>ViewController.swift:implementation:methods:viewDidLoad(override func viewDidLoad(\))</string>
                        <string>ViewController.swift:implementation:methods:viewDidLoad:super</string>
                        <string>Info.plist:UIMainStoryboardFile</string>
                        <string>Info.plist:UIApplicationSceneManifest:UISceneStoryboardFile</string>
                        <string>Base.lproj/Main.storyboard</string>
                        <string>Some/MainCoordinator.swift</string>
                        <string>Some/Other/TestClass.swift</string>
                    </array>
                    <key>Definitions</key>
                    <dict>
                        <key>Base.lproj/Main.storyboard</key>
                        <dict>
                            <key>Path</key>
                            <string>Main.storyboard</string>
                            <key>SortOrder</key>
                            <integer>98</integer>
                        </dict>
                        <key>Info.plist:UIMainStoryboardFile</key>
                        <string>&lt;key&gt;UIMainStoryboardFile&lt;/key&gt;
                            &lt;string&gt;Main&lt;/string&gt;
                        </string>
                        <key>Some/MainCoordinator.swift</key>
                        <dict>
                            <key>Group</key>
                            <array>
                                <string>Some</string>
                            </array>
                            <key>Path</key>
                            <string>MainCoordinator.swift</string>
                        </dict>
                        <key>Some/Other/TestClass.swift</key>
                        <dict>
                            <key>Group</key>
                            <array>
                                <string>Some</string>
                                <string>Other</string>
                            </array>
                            <key>Path</key>
                            <string>TestClass.swift</string>
                        </dict>
                    </dict>