如何使Xcode识别自定义模板

10

我一直在使用Generamba为iOS下的每个VIPER架构模块创建模板文件。

这样可以节省很多时间,但是仍然需要通过终端输入命令来运行Generamba并创建文件。请问有谁知道如何将生成的这些模板直接嵌入到XCode 8中吗?

3个回答

6
你可以使用Xcode中的模板来生成VIPER类。看一下这个代码库,它已经为您实现了基本的VIPER文件。
希望对您有所帮助。

3
我不熟悉Generamba,但是为了让Xcode通常能够识别您的模板,请执行以下操作:
  • 将您的Template.swift文件放入名为MyTemplate.xctemplate的文件夹中
  • 通过向MyTemplate.xctemplate添加Templateinfo.plist(如下所示)告诉Xcode有关您的模板的一些详细信息。
  • 将MyTemplate.xctemplate复制到~/Library/Developer/Xcode/Templates/File\ Templates/Custom。
完成后,模板将显示在Xcode的“新建文件”模板选择菜单底部。
示例:

enter image description here


你可以使用环境变量占位符,这些占位符将被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场景。
你可以在这个“Clean Swift”模板存储库中找到工作示例和makefile(Clean Swift是Swift的另一种干净架构方法)。

如何在macOS部分自定义设置模板? - A.C
@A.C:我认为你只能创建新的部分。 - shallowThought
是的,我已经为 macOS 创建了一个新的部分。谢谢! - A.C

0

看一下ViperC,它支持Objective-CSwift。此外,您可以为创建的模块创建测试类。测试类使用QuickExpecta用于Objective-C,使用QuickNimble用于Swift


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接