如何让 Xcode 识别自定义模板
HowTo make Xcode recognize custom templates
我一直在使用 Generamba 为 iOS 的 VIPER 架构下的每个模块创建模板文件。
它节省了很多时间,但仍然需要通过终端命令 运行 Generamba 并创建文件。有没有人知道如何将直接生成的模板嵌入到 XCode 8 中?
我不熟悉 Generamba
,但要让 Xcode
大体上识别您的模板:
将您的 Template.swift
文件放入名为 MyTemplate.xctemplate
的文件夹中
通过将 Templateinfo.plist
添加到 MyTemplate.xctemplate
来告诉 Xcode 关于您的模板的一些详细信息(参见下面的示例)。
将MyTemplate.xctemplate
复制到~/Library/Developer/Xcode/Templates/File\ Templates/Custom
。
这样做之后,模板会显示在 Xcode
s new File
模板选择菜单的底部。
示例:
您可以使用被 Xcode
替换的环境变量占位符。
这是一个名为 Worker.swift
:
的简单示例模板
//
// ___FILENAME___
// ___PROJECTNAME___
//
// Created by ___FULLUSERNAME___ on ___DATE___.
// Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
//
// This file was generated. DO NOT MODIFY !
//
import Foundation
class ___FILEBASENAMEASIDENTIFIER___Worker {
//implementation goes here
}
及其示例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>DefaultCompletionName</key>
<string>MyWorker</string>
<key>Description</key>
<string>This generates a new worker.</string>
<key>Kind</key>
<string>Xcode.IDEKit.TextSubstitutionFileTemplateKind</string>
<key>Options</key>
<array>
<dict>
<key>Default</key>
<string>___VARIABLE_sceneName:identifier___Worker</string>
<key>Description</key>
<string>The worker name</string>
<key>Identifier</key>
<string>workerName</string>
<key>Name</key>
<string>Worker Name:</string>
<key>Required</key>
<true/>
<key>Type</key>
<string>static</string>
</dict>
</array>
<key>Platforms</key>
<array>
<string>com.apple.platform.iphoneos</string>
</array>
<key>SortOrder</key>
<string>4</string>
<key>Summary</key>
<string>Summery</string>
</dict>
您还可以在 MyTemplate.xctemplate
目录中放置多个文件,以便 Xcode 一次创建多个文件。对于 VIPER
模板,您可以 Xcode 一次创建整个 VIPER
场景。
您可以找到工作示例以及 makefile
in this "Clean Swift" template repo(Clean Swift 是 Swift 的另一种 Clean Architecture 方法)。
您可以使用 templates inside Xcode to generate your VIPER classes. Take a look on this repository,它已经为您实现了基本的 VIPER 文件。
希望对您有所帮助。
看看 ViperC 它同时支持 Objective-C 和 Swift。您还可以为您创建的模块创建测试 类。测试 类 使用 Quick
和 Expecta
用于 Objective-C 以及 Quick
和 Nimble
用于 Swift.
我一直在使用 Generamba 为 iOS 的 VIPER 架构下的每个模块创建模板文件。
它节省了很多时间,但仍然需要通过终端命令 运行 Generamba 并创建文件。有没有人知道如何将直接生成的模板嵌入到 XCode 8 中?
我不熟悉 Generamba
,但要让 Xcode
大体上识别您的模板:
将您的
Template.swift
文件放入名为MyTemplate.xctemplate
的文件夹中
通过将
Templateinfo.plist
添加到MyTemplate.xctemplate
来告诉 Xcode 关于您的模板的一些详细信息(参见下面的示例)。将
MyTemplate.xctemplate
复制到~/Library/Developer/Xcode/Templates/File\ Templates/Custom
。
这样做之后,模板会显示在 Xcode
s new File
模板选择菜单的底部。
示例:
您可以使用被 Xcode
替换的环境变量占位符。
这是一个名为 Worker.swift
:
//
// ___FILENAME___
// ___PROJECTNAME___
//
// Created by ___FULLUSERNAME___ on ___DATE___.
// Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
//
// This file was generated. DO NOT MODIFY !
//
import Foundation
class ___FILEBASENAMEASIDENTIFIER___Worker {
//implementation goes here
}
及其示例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>DefaultCompletionName</key>
<string>MyWorker</string>
<key>Description</key>
<string>This generates a new worker.</string>
<key>Kind</key>
<string>Xcode.IDEKit.TextSubstitutionFileTemplateKind</string>
<key>Options</key>
<array>
<dict>
<key>Default</key>
<string>___VARIABLE_sceneName:identifier___Worker</string>
<key>Description</key>
<string>The worker name</string>
<key>Identifier</key>
<string>workerName</string>
<key>Name</key>
<string>Worker Name:</string>
<key>Required</key>
<true/>
<key>Type</key>
<string>static</string>
</dict>
</array>
<key>Platforms</key>
<array>
<string>com.apple.platform.iphoneos</string>
</array>
<key>SortOrder</key>
<string>4</string>
<key>Summary</key>
<string>Summery</string>
</dict>
您还可以在 MyTemplate.xctemplate
目录中放置多个文件,以便 Xcode 一次创建多个文件。对于 VIPER
模板,您可以 Xcode 一次创建整个 VIPER
场景。
您可以找到工作示例以及 makefile
in this "Clean Swift" template repo(Clean Swift 是 Swift 的另一种 Clean Architecture 方法)。
您可以使用 templates inside Xcode to generate your VIPER classes. Take a look on this repository,它已经为您实现了基本的 VIPER 文件。
希望对您有所帮助。
看看 ViperC 它同时支持 Objective-C 和 Swift。您还可以为您创建的模块创建测试 类。测试 类 使用 Quick
和 Expecta
用于 Objective-C 以及 Quick
和 Nimble
用于 Swift.