在Xcode 9中,当您创建组时,它也会在文件系统中创建链接文件夹.因此,您无需手动为每个组创建文件夹.关于Xcode 9中与组和文件夹相关的更改的一个很好的解释,请参阅此内容.
我有一个自定义Xcode项目模板,它生成一个项目并在自定义文件夹中添加大量Swift样板源文件.我的问题是我只能创建这样的组文件夹:
,表示与文件系统目录无关的组.这不好,因为如果您稍后在Xcode中重命名文件夹,它将对相应的文件系统目录没有影响.
我的目标是编写一个Xcode项目模板,将我的自定义样板swift文件添加到真实的参考文件夹中,如下所示:
.
您可以从此处下载我的简化模板,将其放在:〜/ Library/Developer/Xcode/Templates下
然后Xcode> File> New> Project,并选择Custom-Template.
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.Xcode3.ProjectTemplateUnitKind</string>
<key>Concrete</key>
<true/>
<key>Identifier</key>
<string>custom-swift.xcodeTemplate</string>
<key>Description</key>
<string>Swift starter project for iOS projects</string>
<key>Ancestors</key>
<array>
<string>com.apple.dt.unit.cocoaTouchFramework</string>
</array>
<key>Nodes</key>
<array>
<string>Classes/Interfaces/CustomInterface.swift</string>
</array>
<key>Definitions</key>
<dict>
<key>Classes/Interfaces/CustomInterface.swift</key>
<dict>
<key>Group</key>
<array>
<string>Classes</string>
<string>Interfaces</string>
</array>
<key>Path</key>
<string>Classes/Interfaces/CustomInterface.swift</string>
</dict>
</dict>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)
它创建了一个这样的项目:
我想要实现的目标:
任何帮助深表感谢!:)
更新1:
我发现了一个小的解决方法..使用模板脚本创建自己的复杂文件夹层次结构然后只需删除根文件夹 - 在我的例子中为"Classes".然后打开"废纸篓"并将其拖回Xcode,选择"复制项目(如果需要)"并选择"创建组".它将使用真实的参考文件夹构建文件夹结构.
虽然有很多文档和示例在XCode 3中创建模板,将它们转换为XCode4模板是一个噩梦......
首先,这是我发现的:
但他们都没有回答这个样本问题:
有谁可以创建文件夹内幕其他文件夹?
例如,如果您想在组中包含文件,则应编写:
<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>
Run Code Online (Sandbox Code Playgroud)
但是你如何在Group2中使用Group1呢?
我尝试了许多东西,与祖先玩耍,但除了一切都没有用之外.任何建议或任何文档(我在这些XCode模板上找不到任何文档)将不胜感激.
最近我发现我可以通过创建我自己的 Xcode 文件模板来摆脱大量的样板代码,但后来我想,用存储在这个组中的所有文件创建组会更酷。但是,我没有找到任何解决方案。只有一个接近我的问题的答案是在 XCode 4 Templates 中创建子组,但我尝试过但不起作用
我的 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.IDEFoundation.TextSubstitutionFileTemplateKind</string>
<key>Description</key>
<string>An empty Swift file.</string>
<key>Summary</key>
<string>An empty Swift file</string>
<key>SortOrder</key>
<string>30</string>
<key>DefaultCompletionName</key>
<string>File</string>
<key>Platforms</key>
<array>
<string>com.apple.platform.iphoneos</string>
</array>
<key>Definitions</key>
<dict>
<key>___FILEBASENAME___.swift</key>
<dict>
<key>Group</key>
<string>Group1</string>
<key>Path</key>
<string>___FILEBASENAME___.swift</string>
<key>TargetIndices</key>
<array/>
</dict>
</dict>
<key>Nodes</key>
<array>
<string>___FILEBASENAME___.swift</string>
</array>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)