使用和發佈 Swift 套件 - CodeArtifact

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用和發佈 Swift 套件

使用斯威夫特軟件包 CodeArtifact

使用下列程序來使用 AWS CodeArtifact 儲存庫中的 Swift 套件。

若要使用 CodeArtifact 儲存庫中的 Swift 套件
  1. 如果您還沒有,請依照中的步驟設使用配置 Swift Package 管理器 CodeArtifact定「Swift Package 管理員」,以使用適當的認證來使用 CodeArtifact 儲存庫。

    注意

    生成的授權令牌有效期為 12 小時。如果自創建令牌以來已經過去了 12 個小時,則需要創建一個新的。

  2. 編輯應用程式專Package.swift案資料夾中的檔案,以更新專案要使用的套件相依性。

    1. 如果Package.swift檔案不包含dependencies區段,請新增一個區段。

    2. Package.swift檔案的dependencies區段中,透過新增套件識別碼來新增您要使用的套件。包標識符由範圍和包名稱由一個句點分隔。如需範例,請參閱稍後的步驟之後的程式碼片段。

      提示

      若要尋找套件識別碼,您可以使用主 CodeArtifact 控台。尋找您要使用的特定套件版本,並參考套件版本頁面上的「安裝」捷徑指示。

    3. 如果Package.swift檔案不包含targets區段,請新增一個區段。

    4. 在此targets區段中,新增需要使用相依性的目標。

      下面的代碼片段是一個示例代碼片段dependencies,顯示Package.swift文件中配置的targets部分:

      ... ], dependencies: [ .package(id: "my_scope.package_name", from: "1.0.0") ], targets: [ .target( name: "MyApp", dependencies: ["package_name"] ),... ], ...
  3. 現在,所有內容都已配置完畢,請使用以下命令從中下載軟件包依賴關係 CodeArtifact。

    swift package resolve

CodeArtifact 在 Xcode 中使用斯威夫特軟件包

使用以下過程從 Xcode 中的 CodeArtifact 存儲庫中使用 Swift 軟件包。

從 Xcode 中的 CodeArtifact 存儲庫中使用 Swift 軟件包
  1. 如果您還沒有,請依照中的步驟設使用配置 Swift Package 管理器 CodeArtifact定「Swift Package 管理員」,以使用適當的認證來使用 CodeArtifact 儲存庫。

    注意

    生成的授權令牌有效期為 12 小時。如果自創建令牌以來已經過去了 12 個小時,則需要創建一個新的。

  2. 在 Xcode 中將軟件包作為依賴項添加到項目中。

    1. 選擇「檔案 > 新增套件」。

    2. 使用搜尋列搜尋您的套件。您的搜索必須在表格中package_scope.package_name

    3. 找到後,選擇軟件包並選擇添加包裹

    4. 驗證 Package 件後,請選擇要新增為相依性的套件產品,然後選擇「新增套件」。

如果您在 Xcode 中使用 CodeArtifact 存儲庫時遇到問題,請參迅速的故障閱常見問題和可能的修復。

發布斯威夫特軟件包 CodeArtifact

CodeArtifact 推薦 Swift 5.9 或更高版本,並使用該swift package-registry publish命令發布 Swift 軟件包。如果您使用的是較早的版本,則必須使用 Curl 命令將 Swift 套件發佈到 CodeArtifact.

使用swift package-registry publish指令發佈 CodeArtifact 套件

使用下列程序搭配 Swift 5.9 或更新版本,將 Swift 套件發佈至具有「Swift Package 件管理員」的 CodeArtifact 儲存庫。

  1. 如果您還沒有,請依照中的步驟設使用配置 Swift Package 管理器 CodeArtifact定「Swift Package 管理員」,以使用適當的認證來使用 CodeArtifact 儲存庫。

    注意

    生成的授權令牌有效期為 12 小時。如果自創建以來已過 12 小時,則需要創建一個新的。

  2. 導航到包含包含Package.swift文件的 Swift 項目目錄。

  3. 執行下列swift package-registry publish命令以發佈套件。此指令會建立套件來源封存檔,並將其發佈至您的 CodeArtifact 存放庫。

    swift package-registry publish packageScope.packageName packageVersion

    例如:

    swift package-registry publish myScope.myPackage 1.0.0
  4. 您可以簽入主控台或使用aws codeartifact list-packages指令,來確認套件已發佈且存在於存放庫中,如下所示:

    aws codeartifact list-packages --domain my_domain --repository my_repo

    您可以使用aws codeartifact list-package-versions命令列出單個版本的軟件包,如下所示:

    aws codeartifact list-package-versions --domain my_domain --repository my_repo \ --format swift --namespace my_scope --package package_name

使用 Curl 發佈 CodeArtifact 套件

雖然建議您使用 Swift 5.9 或更新版本隨附的swift package-registry publish命令,但您也可以使用 Curl 將 Swift 套件發佈到 CodeArtifact.

請使用下列程序,將 Swift 套件發佈至含有 Curl 的 AWS CodeArtifact 儲存庫。

  1. 如果尚未執行,請依照中的步驟建立CODEARTIFACT_AUTH_TOKEN並更新和CODEARTIFACT_REPO環境變數使用配置 Swift Package 管理器 CodeArtifact

    注意

    身分驗證字符的有效期為 12 小時。如果自建立以來已過 12 小時,您將需要使用新認證重新整理CODEARTIFACT_AUTH_TOKEN環境變數。

  2. 首先,如果你沒有創建一個 Swift 包,你可以通過運行以下命令來做到這一點:

    mkdir testDir && cd testDir swift package init git init . swift package archive-source
  3. 使用以下 Curl 命令將您的 Swift 包發布到 CodeArtifact:

    macOS and Linux
    curl -X PUT --user "aws:$CODEARTIFACT_AUTH_TOKEN" \ -H "Accept: application/vnd.swift.registry.v1+json" \ -F source-archive="@test_dir_package_name.zip" \ "${CODEARTIFACT_REPO}my_scope/package_name/packageVersion"
    Windows
    curl -X PUT --user "aws:%CODEARTIFACT_AUTH_TOKEN%" \ -H "Accept: application/vnd.swift.registry.v1+json" \ -F source-archive="@test_dir_package_name.zip" \ "%CODEARTIFACT_REPO%my_scope/package_name/packageVersion"
  4. 您可以簽入主控台或使用aws codeartifact list-packages指令,來確認套件已發佈且存在於存放庫中,如下所示:

    aws codeartifact list-packages --domain my_domain --repository my_repo

    您可以使用aws codeartifact list-package-versions命令列出單個版本的軟件包,如下所示:

    aws codeartifact list-package-versions --domain my_domain --repository my_repo \ --format swift --namespace my_scope --package package_name

從中獲取 Swift 軟件包 GitHub 並重新發布到 CodeArtifact

請使用下列程序來擷取 Swift 套件, GitHub 並將其重新發佈至 CodeArtifact 儲存庫。

要從中獲取 Swift 包 GitHub 並將其重新發布到 CodeArtifact
  1. 如果您還沒有,請依照中的步驟設使用配置 Swift Package 管理器 CodeArtifact定「Swift Package 管理員」,以使用適當的認證來使用 CodeArtifact 儲存庫。

    注意

    生成的授權令牌有效期為 12 小時。如果自創建令牌以來已經過去了 12 個小時,則需要創建一個新的。

  2. 克隆你想獲取並通過使用下面的git clone命令重新發布斯威夫特包的 git 存儲庫。如需複製 GitHub 儲存庫的詳細資訊,請參閱在 GitHub 文件中複製儲存庫。

    git clone repoURL
  3. 導航到您剛剛克隆的存儲庫:

    cd repoName
  4. 建立套件並將其發佈至 CodeArtifact。

    1. 議:如果您使用的是 Swift 5.9 或更新版本,您可以使用下列swift package-registry publish指令建立套件,並將其發佈到您設定的 CodeArtifact 儲存庫。

      swift package-registry publish packageScope.packageName versionNumber

      例如:

      swift package-registry publish myScope.myPackage 1.0.0
    2. 如果您使用的是早於 5.9 的 Swift 版本,則必須使用該swift archive-source命令來創建包,然後使用 Curl 命令發布它。

      1. 如果您尚未設定CODEARTIFACT_AUTH_TOKENCODEARTIFACT_REPO環境變數,或已經超過 12 小時,請依照中的步驟執行配置斯威夫特沒有登錄命令

      2. 通過使用swift package archive-source命令創建斯威夫特包:

        swift package archive-source

        如果成功,您將Created package_name.zip在命令行中看到。

      3. 使用下面的 Curl 命令來發布斯威夫特包 CodeArtifact:

        macOS and Linux
        curl -X PUT --user "aws:$CODEARTIFACT_AUTH_TOKEN" \ -H "Accept: application/vnd.swift.registry.v1+json" \ -F source-archive="@package_name.zip" \ "${CODEARTIFACT_REPO}my_scope/package_name/packageVersion"
        Windows
        curl -X PUT --user "aws:%CODEARTIFACT_AUTH_TOKEN%" \ -H "Accept: application/vnd.swift.registry.v1+json" \ -F source-archive="@package_name.zip" \ "%CODEARTIFACT_REPO%my_scope/package_name/packageVersion"
  5. 您可以簽入主控台或使用aws codeartifact list-packages指令,來確認套件已發佈且存在於存放庫中,如下所示:

    aws codeartifact list-packages --domain my_domain --repository my_repo

    您可以使用aws codeartifact list-package-versions命令列出單個版本的軟件包,如下所示:

    aws codeartifact list-package-versions --domain my_domain --repository my_repo \ --format swift --namespace my_scope --package package_name