Xcode自定义模板创建嵌套文件Group分组的配置方法
Xcode自定义模板生成嵌套Group分组配置方案
配置不生效原因
当前配置无法生成外层分组的核心原因:
- 未在
Nodes数组中显式声明外层分组节点,Xcode解析模板时会自动忽略路径中未单独声明的目录段,直接将文件平铺到当前创建位置 - 未给外层分组配置对应定义项,Xcode无法识别该路径是项目内的虚拟Group,还是磁盘上的实体文件夹
正确配置规则
- 在
Nodes数组中先声明外层分组路径,再依次列出分组下所有文件的完整嵌套路径 - 在
Definitions字典中单独添加外层分组配置,设置Group属性为true,标记为项目分组 - 每个Swift文件的定义项中,通过
Group字段绑定到所属外层分组,Path字段指向模板目录下的实际模板文件
完整可用配置示例
以下是适配MVVM-C RxSwift UIKit模板的完整TemplateInfo.plist代码,可直接替换原有配置:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Kind</key> <string>Xcode.IDEKit.TextSubstitutionFileTemplateKind</string> <key>Platforms</key> <array> <string>com.apple.platform.iphoneos</string> </array> <key>Options</key> <array> <dict> <key>Identifier</key> <string>productName</string> <key>Required</key> <true/> <key>Name</key> <string>Module Name</string> <key>Description</key> <string>MVVM-C RxSwift UIKit</string> <key>Type</key> <string>text</string> <key>Default</key> <string>Module1</string> <key>Nodes</key> <array> <string>___FILEBASENAME___</string> <string>___FILEBASENAME___/___FILEBASENAME___Coordinator.swift</string> <string>___FILEBASENAME___/___FILEBASENAME___ViewModel.swift</string> <string>___FILEBASENAME___/___FILEBASENAME___ViewController.swift</string> </array> <key>Definitions</key> <dict> <!-- 外层分组定义 --> <key>___FILEBASENAME___</key> <dict> <key>Group</key> <true/> </dict> <!-- 分组下文件定义 --> <key>___FILEBASENAME___/___FILEBASENAME___Coordinator.swift</key> <dict> <key>Group</key> <array> <string>___FILEBASENAME___</string> </array> <key>Path</key> <string>___FILEBASENAME___Coordinator.swift</string> </dict> <key>___FILEBASENAME___/___FILEBASENAME___ViewModel.swift</key> <dict> <key>Group</key> <array> <string>___FILEBASENAME___</string> </array> <key>Path</key> <string>___FILEBASENAME___ViewModel.swift</string> </dict> <key>___FILEBASENAME___/___FILEBASENAME___ViewController.swift</key> <dict> <key>Group</key> <array> <string>___FILEBASENAME___</string> </array> <key>Path</key> <string>___FILEBASENAME___ViewController.swift</string> </dict> </dict> </dict> </array> </dict> </plist>
补充说明
- 上述配置默认只在Xcode项目导航栏创建虚拟Group,磁盘上不会生成多余嵌套文件夹,模板目录下直接存放所有Swift模板文件即可,不需要额外创建同名文件夹
- 如果需要同步在磁盘生成对应实体目录,只需要在外层分组的定义项中添加
<key>Path</key><string>___FILEBASENAME___</string>配置即可
内容的提问来源于stack exchange,提问作者Mickael Belhassen
相关产品推荐
相关产品推荐

