我們的 codebase 有用到放在 GitHub private repo 的 Swift package,為了讓 Xcode 能夠存取 private repo,必須讓 Xcode 認得 SSH key 才行。

因為 Xcode 只支援 RSA / DSA / ECDSA 這三種演算法的 SSH key,但 GitHub 不支援 RSA 跟 DSA 了,所以我們只剩下 ECDSA 可以用。

如果當時按照 GitHub 的文件建立 SSH key,它很有可能是 ED25519,這個演算法 Xcode 認不得,所以我們要新增一個新的 SSH key。

修改 SSH Key

新增 SSH key 的方法可以參考 GitHub 的文件,唯二要修改的地方是

  1. ssh-keygen -t ed25519 -C "your_email@example.com" 改成 ssh-keygen -t ecdsa -b 521 -C "your_email@example.com"
  2. id_ed25519 改成 id_ecdsa

然後參考另一份 GitHub 文件,把 SSH key 加到你的 GitHub account。

Xcode 新增 GitHub account

從 Xcode Preference -> Accounts 新增一個 GitHub account,

  • Account 就是登入 GitHub 的信箱
  • Token 從 GitHub Settings 建立,記得 Xcode 需要的權限都要打勾,然後設為永不過期

建立帳號之後,記得把 SSH Key 設為剛剛建立的 ECDSA。這樣就完成啦。