iOS中静态库的自定义Xcode模板

在深入了解如何使用默认模板之前,让我们介绍一下TemplateInfo.plist文件中的一些重要属性。

  1. 种类:一种字符串类型,用于标识模板类型,例如,您将Xcode.Xcode3.ProjectTemplateUnitKind用于项目模板,并将Xcode.IDEFoundation.TextSubstitutionFileTemplateKind文件模板使用。
  2. 标识符:模板的唯一标识符。 以后将用于唯一地标识模板或从祖先模板继承属性。
  3. 混凝土:布尔型。 为项目选择模板时,Xcode必须设置为YES才能显示模板。 如果丢失或设置为NO,Xcode会将模板视为其他模板可以继承的抽象基础模板。
  4. 祖先:一种数组类型,用于保存标识符上的集合,用于从其他模板继承。

复制默认静态模板

以下路径是默认模板的存储位置: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates。 如果您的Xcode应用程序名称不是Xcode,则别忘了用路径中的适当名称替换Xcode.app。

从上面的路径导航到Project Templates / iOS / Framework&Library并将Cocoa Touch Static Library.xctemplate文件夹的内容复制到您的StaticFramework.xctemplate文件夹。 现在您可能想知道其中一些文件的含义,让我们看一下。

  1. ___PACKAGENAMEASIDENTIFIER___: Objc和Swift文件是基于所选语言创建项目时获得的默认文件。 对于Swift静态库,您需要获得___ PACKAGENAMEASIDENTIFIER ___。swift 对于Objc,您将获得.h.m文件。 宏用作文件名,因此在创建项目时将其替换。 有关使用哪个宏的更多信息,请访问此处。
  2. TemplateIcon.png:这些是可选的png文件,用于为您的自定义模板增添趣味,使其更易于识别。

设置标识符

如前所述,重要的是模板的标识符必须唯一。 Apple提供的默认模板使用com.apple.dt.unit前缀,因此它们提供的每个模板都有它。 对于我们的自定义模板,我们必须提供自己的标识符前缀。 我决定去com.personalLibrary.dt.unit,但可以随意使用自己的

设置swiftlint

将以下字典作为数组项粘贴到TemplateInfo.plistTargets数组中第一项下的BuildPhases中,以设置swiftlint。

   
Class
ShellScript
名称
运行SwiftLint
ShellPath
/ bin / sh
ShellScript
$(git rev-parse --show-toplevel)/ Tools / SwiftLint / swiftlint --path $ {SRCROOT} </ string

上面的ShellScript将对静态lib根目录中的所有文件执行Linting操作,当然,上述脚本仅在将静态lib添加到包含/ Tools / SwiftLint下的swiftlint可执行文件的项目时才起作用。 但是请记住根据您的swiftlint设置进行适当的更改(如果有)。

设置构建配置

将以下内容粘贴到TemplateInfo.plist的根字典中,以设置构建配置。

  项目 

配置

Debug

阶段

AppStore


上面的设置会将3种配置添加到我们的静态库,Debug,Stage和AppStore。

现在,我们已经完成了将所有适当的属性添加到TemplateInfo.plist的操作,现在可以通过使用自定义模板创建一个新的Static库来进行测试,方法是转到File-> New-> Project。 这样做时,您应该会看到类似以下内容(您可能会有其他图标have):