10

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

它节省了大量时间,但仍然需要通过终端命令来运行 Generamba 并创建文件。有没有人知道如何将这些模板直接嵌入到 XCode 8 中?

4

3 回答 3

6

您可以使用Xcode 中的模板来生成您的 VIPER 类。看看这个存储库,它已经为你实现了基本的 VIPER 文件。

希望能帮助到你。

于 2016-11-09T13:10:35.097 回答
3

我不熟悉Generamba,但Xcode一般要识别您的模板:

  • 将您的Template.swift文件放在一个名为的文件夹中MyTemplate.xctemplate

  • Templateinfo.plist通过添加一个to告诉 Xcode 一些关于您的模板的详细信息MyTemplate.xctemplate(在下面找到示例)。

  • 复制MyTemplate.xctemplate~/Library/Developer/Xcode/Templates/File\ Templates/Custom.

这样做之后,模板会显示在模板选择菜单Xcode的底部。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 您可以在这个“Clean Swift”模板存储库中找到工作示例和 a (Clean Swift 是 Swift 的另一种 Clean Architecture 方法)。

于 2016-11-06T11:13:53.823 回答
0

看看ViperC,它同时支持Objective-CSwift。您还可以为您创建的模块创建测试类。测试类使用andQuick用于ExpectaObjective - C和SwiftQuickNimble

于 2017-09-21T13:51:59.813 回答