Xcode Swift library Package.swift template

r1zhe5dt  于 12个月前  发布在  Swift
关注(0)|答案(1)|浏览(127)

我想找到Xcode的Package.swift Swift库(包)项目模板文件。
我在/Applications/Xcode.app/Contents/Developer/Library/Xcode/Templates/Project Templates/MultiPlatform/Library/Library.xctemplate中查找,但是,我找到的唯一文件是TemplateInfo.plist
在哪里可以找到它?

yrwegjxp

yrwegjxp1#

正如uliwisite在评论中所说,Xcode可能只是使用swift package init命令来生成一个新项目。
apple/swift-package-manager的源代码来看,似乎没有Package.swift的模板 * 文件 *。Package.swift是由硬编码的字符串字面量生成的。
请参阅InitPackage.writeManifestFile的实现。以下是摘录:

try writePackageFile(manifest) { stream in
    stream.send(
        """
        // The swift-tools-version declares the minimum version of Swift required to build this package.

        import PackageDescription

        """
    )

    if packageType == .macro {
        stream.send(
          """
          import CompilerPluginSupport

          """
        )
    }

    stream.send(
        """

        let package = Package(

        """
    )

    var pkgParams = [String]()
    pkgParams.append("""
            name: "\(pkgname)"
        """)

字符串
不使用模板文件的一个可能原因是Apple希望SPM是自包含的,并且不希望依赖于外部模板引擎,例如Xcode的。另一个原因可能是生成此文件的逻辑相当复杂,并且使用Swift编写它比为其编写模板更具可读性。

相关问题