[英]Xcode 9 folder references with custom project template
在 Xcode 9 中,当您创建一个组时,它也会在文件系统中创建一个链接文件夹。 所以你不需要手动为每个组创建文件夹。 关于 Xcode 9 中组和文件夹相关更改的一个很好的解释,请参阅此。
我有一个自定义 Xcode 项目模板,它生成一个项目并在自定义文件夹中添加大量 Swift 样板源文件。 我的问题是我只能创建这样的组文件夹: , 表示与文件系统目录无关的组。 这不好,因为如果您以后在 Xcode 中重命名文件夹,它将对相应的文件系统目录没有影响。
我的目标是编写一个 Xcode 项目模板,将我的自定义样板 swift 文件添加到真正的参考文件夹中,如下所示: .
你可以从这里下载我的简化模板,把它放在:~/Library/Developer/Xcode/Templates
然后 Xcode > File > New > Project,然后选择 Custom-Template。
模板信息.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>
它创建了一个这样的项目:
我想达到的目标:
任何帮助深表感谢! :)
更新 1:
我找到了一个小的解决方法.. 使用模板脚本创建您自己的复杂文件夹层次结构,然后简单地删除根文件夹 - 在我的例子中是“类”。 然后打开垃圾箱并将其拖回 Xcode,选择“如果需要复制项目”并选择“创建组”。 它将使用真实的参考文件夹构建文件夹结构。
这是您需要做的。 在命名文件之前在节点部分指定组。
<key>Nodes</key>
<array>
<string>MyGroup/File.swift:comments</string>
<array>
接下来在定义中提供键中的组名,如下所示:
<key>Definitions</key>
<dict>
<key>MyGroup/File.swift</key>
<dict>
<key>Path</key>
<string>File.swift</string>
<key>Group</key>
<string>MyGroup</string>
</dict>
希望这会有所帮助。
为此,可以使用 imessages 模板中使用的组件
组件的例子是
<key>Components</key>
<array>
<dict>
<key>Identifier</key>
<string>com.apple.dt.unit.messagesextensioncomponentios</string>
<key>Name</key>
<string>___PACKAGENAME___ MessagesExtension</string>
<key>ProductBuildPhaseInjections</key>
<array>
<dict>
<key>TargetIdentifier</key>
<string>com.apple.dt.messagesOnlyApp</string>
</dict>
</array>
</dict>
</array>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.