Creating sub-groups in XCode 4 Templates
While there is quite a lot of documentation and example for c开发者_如何学Creating templates in XCode 3 converting them to XCode4 Templates is quite a nightmare...
First here is what i've found:
- BorealKiss provides a nice tutorial for staters
- Cocos2d has some very nice examples to make your templates more "evolved"
But all of them fail to answer this sample question:
How can someone create Folders Insider other Folders ?
For example if you want to have files inside a group you should write:
<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>
but how would you go for having Group1 inside Group2 for example.
I've tried many many things, playing with ancestors and all but nothing worked. Any piece of advice or any documentation (I couldn't find any on those XCode templates) would be greatly appreciated.
I've tried many times modify the TemplateInfo.plist
and I've also tried to make a sub group and put files in them. Finally I found the solution:
Definition section:
<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>
in the node section:
<key>Nodes</key>
<array>
<string>main.h</string>
</array>
The code above will create groups parent and child. and the main.h is in the child
Project
--parent
---child
----main.h
I've been struggling with this one myself too. As a workaround I've created and added a folder in my TemplateInfo.plist location (in your case that should be folder named Group1). The folder layout (subfolders and files) are the same as I want them to be in my project source tree ( e.g folder 'Group1' has subfolder 'Group2', folder 'Group2' has files File1.h and File1.m etc). Then I just add the root folder (Group1) in my TemplateInfo.plist file by defining it in the Definition section and by adding it to the Nodes section like this:
<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>
For anyone that needs help, this is on Xcode 12.4, this is a project template.
<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><key>UIMainStoryboardFile</key>
<string>Main</string>
</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>
精彩评论