在 GitHub 上創建一個 Swift 管理包:其實一點也不簡單
來自: 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。