在 GitHub 上創建一個 Swift 管理包:其實一點也不簡單

fkngn 9年前發布 | 11K 次閱讀 Swift Apple Swift開發 Github

來自: http://swift.gg/2016/02/22/creating-a-swift-package-on-github-not-as-easy-as-i-thought/

一談到 git 的事情,我就沒什么可說的了。對每一個人而言這應該再熟悉不過了。

Package.swift

我認為 建立一個 git 倉庫 來使用包管理工具不需要學什么新東西。畢竟使用一個包僅僅是意味著貼一行代碼到一個 app 包中,不是嗎?

我創建了一個 Package.swift 文件,我想我只需要編譯就能用。

import PackageDescription
let package = Package (
    name: "myutility",
    dependencies: [
    .Package(url: "https://github.com/erica/SwiftString.git",
                 majorVersion: 1),
    ]
)

然而我失敗了。

Git 標簽

當我硬著頭皮去學習 git 標簽后,才發現它并不會在創建后自動推送到 GitHub 上。事實上,直到我最終克隆了一個倉庫并且運行了一下 git tag 命令,發現什么都沒有輸出時,我才發現了這個問題。

% git tag
%

這就是為什么我一直嘗試編譯一個簡單的測試 app,結局卻總是 swift-build: The dependency graph could not be satisfied (早期的 Swift 編譯是 satisfed)。

添加標簽

你可以使用 git tag 添加標簽,例如:

% git tag -a 1.0.0 -m "Version 1.0.0"

你可以使用不帶參數的 git tag 查看所有標簽:

% git tag
% 1.0.0

也可以顯示標簽名字(以及附加的信息):

git tag -n
1.0.0 Version 1.0.0

這些標簽不會被自動上傳到 GitHub ,除非你推送它們:

% git push --tags
Counting objects: 1, done.
Writing objects: 100% (1/1), 176 bytes | 0 bytes/s, done.
Total 1 (delta 0), reused 0 (delta 0)
To https://github.com/erica/SwiftString.git
 * [new tag] 1.0.0 -> 1.0.0

現在,那些依賴于 tag 版本的倉庫終于能正常工作了!

Kevin B 補充到: git push --tags 將會推送你所有的標簽。所以如果你只想推送一個,需要明確指定出來,例如, git push origin v1.0.0

閱讀標簽

進入你的包文件夾,就可以在終端中閱讀標簽。你可以看到,每一個文件結尾都包含標簽數字。

% ls
% ./ ../ SwiftString-1.0.1/

如果你點進這個包的文件夾,你會看到完整的克隆倉庫,包括全部的 .git 文件。你同樣可以在這里查看標簽和與其關聯的信息:

% cd SwiftString-1.0.0/
% ls
./      .git/       Makefile    README.md
../     .gitignore  Package.swift   Sources/
% git tag -n
1.0.0           Version 1.0.0
%

希望這篇文章對大家有幫助,解決這個問題浪費了我一天的時間。

本文由 SwiftGG 翻譯組翻譯,已經獲得作者翻譯授權,最新文章請訪問http://swift.gg。

 本文由用戶 fkngn 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!