讓現有的 Framework 項目支持 Swift Package Manager

Swift Package Manger 在 Xcode 11 已經獲得很好的支持。git

那麼如何讓一個現有的 Framewrok 支持 Swift Package Manager 呢?本文以我本身的開源項目 HSStockChart 舉例說明。github

使用 swift package init

首先,在項目的目錄下(含.xcodeproj文件的目錄)執行下面操做👇swift

swift package init --type library
複製代碼

這時候能夠看到這樣子的輸出:xcode

執行這個指令會在該目錄下生成 Swift Package Manger 所須要的目錄和相關文件。bash

按需修改 Package.swift 及文件目錄

咱們能夠看到該命令爲咱們生成了 SourcesTests 的目錄,及其一些文件。可是我本來項目的代碼並非放在該目錄下的,我又不想把代碼挪到這些默認的目錄下,並且我也沒有配置測試的 Target,因此我直接把 SourcesTests 都刪掉,在 Package.swift 中去指定個人代碼路徑。測試

這是我修改後的 Package.swift :ui

import PackageDescription

let package = Package(
    name: "HSStockChart",
    products: [
        // Products define the executables and libraries produced by a package, and make them visible to other packages.
        .library(
            name: "HSStockChart",
            targets: ["HSStockChart"]),
    ],
    dependencies: [
        // Dependencies declare other packages that this package depends on.
        // .package(url: /* package url */, from: "1.0.0"),
    ],
    targets: [
        // Targets are the basic building blocks of a package. A target can define a module or a test suite.
        // Targets can depend on other targets in this package, and on products in packages which this package depends on.
        .target(
            name: "HSStockChart",
            dependencies: [],
            path: "HSStockChart")
    ]
)
複製代碼

注意這裏我在 .target 那裏添加了:this

path: "HSStockChart"
複製代碼

"HSStockChart" 即爲個人源碼路徑。還有把 testTarget 內容給去掉了url

測試效果

咱們能夠新建一個項目,而後引入 HSStockChart 測試一下。spa

  • 首先選擇 Project --> Swift Packages --> 點擊 「+」

  • 而後在彈出的窗口中,輸入項目 Github 的地址

  • 注意在這一步選擇 Branch 爲 master,由於咱們尚未給新版打 tag

  • 最後咱們在 Project Navigator 那裏就能夠看到引入的 HSStockChart 啦

相關文章
相關標籤/搜索