您可以在 iOS 应用程序中使用 Package.swift 而不是使用 .xcodeproj 吗?

Mar*_*rty 19 xcode swift swift-package-manager

我一直在使用“文件”->“Swift 包”->“添加包依赖项”将 Swift 包依赖项添加到我的 iOS 应用程序项目中。但是可以使用 Package.swift 代替吗?我以为我可以放入 Package.swift 并且它会开始使用它来解析我的包。我也在使用 Cocoapods,所以我无法生成新的 xcodeproj 文件。

iUr*_*rii 8

要使用文件管理项目的 swift 包依赖关系,Package.swift您应该执行以下步骤:

  1. 创建一个包含您的项目的工作区(如果没有)
  2. 在项目文件夹中创建空的 swift 包,例如“依赖项”
  3. 将包添加到您的工作区(只需拖放包含 swift 包的文件夹)
  4. 将项目的目标与“依赖项”链接:“构建阶段 -> 将二进制文件与库链接”
  5. 将您的依赖项添加到 Package.swift:
let package = Package(
    name: "Dependencies",
    ...
    dependencies: [
        .package(url: "https://github.com/username/SwiftPackage.git", .exact("1.1.0")),
    ],
    targets: [
        .target(
            name: "Dependencies",
            dependencies: ["SwiftPackage"]),
        ...
    ]
)
Run Code Online (Sandbox Code Playgroud)

现在,编辑 Package.swift 文件后,所有 swift 包依赖项都会自动在您的项目中可用。

更新

还有第二个非常稳定的选项可以将依赖项 swift 包添加到您的项目中:

  1. 在项目文件夹中创建一个空的 swift 包,例如“依赖项”。
  2. 将您的依赖项添加到 Package.swift (见上文)。
  3. 在“依赖项”文件夹中创建本地 git 存储库,并将所有文件提交到master.
  4. 通过提供完整路径(Xcode 只允许通过完整路径添加)在项目设置的“Swift Packages”选项卡中添加“依赖项”swift 包file:///Users/.../Dependencies并将其指向master分支。
  5. 如果您需要使用相对路径,只需执行下一个技巧:XCRemoteSwiftPackageReference > repositoryURL手动将值更改为file://Dependenciesproject.pbxproj 文件中的值,然后您可以看到: 本地 swift 包的相对路径

注意:在更改 Package.swift 文件中的依赖项后,您需要master每次推送所有更改,以允许您的项目看到它们。