

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Konfigurasikan Swift Package Manager dengan CodeArtifact
<a name="configure-swift"></a>

Untuk menggunakan Swift Package Manager untuk memublikasikan paket ke atau menggunakan paket dari AWS CodeArtifact, Anda harus terlebih dahulu menyiapkan kredensil untuk mengakses repositori Anda. CodeArtifact Metode yang disarankan untuk mengonfigurasi CLI Swift Package Manager dengan CodeArtifact kredensi dan titik akhir repositori Anda adalah dengan menggunakan perintah. `aws codeartifact login` Anda juga dapat mengkonfigurasi Swift Package Manager secara manual.

## Konfigurasikan Swift dengan perintah login
<a name="configure-swift-login-command"></a>

Gunakan `aws codeartifact login` perintah untuk mengkonfigurasi Swift Package Manager dengan CodeArtifact.

**catatan**  
Untuk menggunakan perintah login, Swift 5.8 atau yang lebih baru diperlukan dan Swift 5.9 atau yang lebih baru direkomendasikan.

`aws codeartifact login`Perintah akan melakukan hal berikut:

1. Ambil token otentikasi dari CodeArtifact dan simpan di lingkungan Anda. Bagaimana kredensil disimpan tergantung pada sistem operasi lingkungan:

   1. **macOS:** Entri dibuat di aplikasi macOS Keychain.

   1. **Linux dan Windows:** Entri dibuat dalam `~/.netrc` file.

   Di semua sistem operasi, jika ada entri kredensil, perintah ini menggantikan entri itu dengan token baru.

1. Ambil URL endpoint CodeArtifact repositori Anda dan tambahkan ke file konfigurasi Swift Anda. Perintah menambahkan URL titik akhir repositori ke file konfigurasi tingkat proyek yang terletak di. `/path/to/project/.swiftpm/configuration/registries.json`

**catatan**  
`aws codeartifact login`Perintah memanggil `swift package-registry` perintah yang harus dijalankan dari direktori yang berisi `Package.swift` file. Karena itu, `aws codeartifact login` perintah harus dijalankan dari dalam proyek Swift.

**Untuk mengkonfigurasi Swift dengan perintah login**

1. Arahkan ke direktori proyek Swift yang berisi `Package.swift` file proyek Anda.

1. Jalankan perintah `aws codeartifact login` berikut.

   Jika Anda mengakses repositori di domain milik Anda, Anda tidak perlu menyertakan `--domain-owner`. Untuk informasi selengkapnya, lihat [Domain lintas akun](domain-overview.md#domain-overview-cross-account).

   ```
   aws codeartifact login --tool {{swift}} --domain {{my_domain}} \
   --domain-owner {{111122223333}} --repository {{my_repo}} \
   [--namespace {{my_namespace}}]
   ```

`--namespace`Opsi mengonfigurasi aplikasi untuk hanya menggunakan paket dari CodeArtifact repositori Anda jika mereka berada di namespace yang ditentukan. [CodeArtifact namespace](codeartifact-concepts.md#welcome-concepts-package-namespace) identik dengan cakupan, dan digunakan untuk mengatur kode ke dalam grup logis dan untuk mencegah tabrakan nama yang dapat terjadi ketika basis kode Anda menyertakan beberapa pustaka.

Periode otorisasi default setelah memanggil `login` adalah 12 jam, dan `login` harus dipanggil untuk menyegarkan token secara berkala. Untuk informasi selengkapnya tentang token otorisasi yang dibuat dengan perintah `login`, lihat [Token dibuat dengan perintah `login`](tokens-authentication.md#auth-token-login).

## Konfigurasikan Swift tanpa perintah login
<a name="configure-swift-without-login-command"></a>

Meskipun disarankan agar Anda [mengkonfigurasi Swift dengan `aws codeartifact login` perintah](#configure-swift-login-command), Anda juga dapat mengkonfigurasi Swift Package Manager tanpa perintah login dengan memperbarui konfigurasi Swift Package Manager secara manual.

Dalam prosedur berikut, Anda akan menggunakan AWS CLI untuk melakukan hal berikut:

1. Ambil token otentikasi dari CodeArtifact dan simpan di lingkungan Anda. Bagaimana kredensil disimpan tergantung pada sistem operasi lingkungan:

   1. **macOS:** Entri dibuat di aplikasi macOS Keychain.

   1. **Linux dan Windows:** Entri dibuat dalam `~/.netrc` file.

1. Ambil URL titik akhir CodeArtifact repositori Anda.

1. Dalam file `~/.swiftpm/configuration/registries.json` konfigurasi, tambahkan entri dengan URL titik akhir repositori dan jenis otentikasi Anda.

**Untuk mengkonfigurasi Swift tanpa perintah login**

1. Dalam baris perintah, gunakan perintah berikut untuk mengambil token CodeArtifact otorisasi dan menyimpannya dalam variabel lingkungan.
   + Ganti {{my\_domain}} dengan nama CodeArtifact domain Anda.
   + Ganti {{111122223333}} dengan ID AWS akun pemilik domain. Jika Anda mengakses repositori di domain milik Anda, Anda tidak perlu menyertakan `--domain-owner`. Untuk informasi selengkapnya, lihat [Domain lintas akun](domain-overview.md#domain-overview-cross-account).

------
#### [ macOS and Linux ]

   ```
   export CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain {{my_domain}} --domain-owner {{111122223333}} --query authorizationToken --output text`
   ```

------
#### [ Windows ]
   + Windows (menggunakan shell perintah default):

     ```
     for /f %i in ('aws codeartifact get-authorization-token --domain {{my_domain}} --domain-owner {{111122223333}} --query authorizationToken --output text') do set CODEARTIFACT_AUTH_TOKEN=%i
     ```
   + Jendela PowerShell:

     ```
     $env:CODEARTIFACT_AUTH_TOKEN = aws codeartifact get-authorization-token --domain {{my_domain}} --domain-owner {{111122223333}} --query authorizationToken --output text
     ```

------

1. Dapatkan endpoint CodeArtifact repositori Anda dengan menjalankan perintah berikut. Endpoint repositori Anda digunakan untuk mengarahkan Swift Package Manager ke repositori Anda untuk mengkonsumsi atau menerbitkan paket.
   + Ganti {{my\_domain}} dengan nama CodeArtifact domain Anda.
   + Ganti {{111122223333}} dengan ID AWS akun pemilik domain. Jika Anda mengakses repositori di domain milik Anda, Anda tidak perlu menyertakan `--domain-owner`. Untuk informasi selengkapnya, lihat [Domain lintas akun](domain-overview.md#domain-overview-cross-account).
   + Ganti {{my\_repo}} dengan nama CodeArtifact repositori Anda.

------
#### [ macOS and Linux ]

   ```
   export CODEARTIFACT_REPO=`aws codeartifact get-repository-endpoint --domain {{my_domain}} --domain-owner {{111122223333}} --repository {{my_repo}} --format swift --query repositoryEndpoint --output text`
   ```

------
#### [ Windows ]
   + Windows (menggunakan shell perintah default):

     ```
     for /f %i in ('aws codeartifact get-repository-endpoint --domain {{my_domain}} --domain-owner {{111122223333}} --repository {{my_repo}} --format swift --query repositoryEndpoint --output text') do set CODEARTIFACT_REPO=%i
     ```
   + Jendela PowerShell:

     ```
     $env:CODEARTIFACT_REPO = aws codeartifact get-repository-endpoint --domain {{my_domain}} --domain-owner {{111122223333}} --repository {{my_repo}} --format swift --query repositoryEndpoint --output text
     ```

------

   URL berikut adalah contoh titik akhir repositori.

   ```
   https://{{my_domain}}-111122223333.d.codeartifact.{{us-west-2}}.amazonaws.com/swift/{{my_repo}}/
   ```
**catatan**  
Untuk menggunakan endpoint dualstack, gunakan endpoint. `codeartifact.{{region}}.on.aws`
**penting**  
Anda harus menambahkan `login` ke akhir endpoint URL repositori saat digunakan untuk mengkonfigurasi Swift Package Manager. Ini dilakukan untuk Anda dalam perintah prosedur ini.

1. Dengan dua nilai ini disimpan dalam variabel lingkungan, teruskan ke Swift menggunakan `swift package-registry login` perintah sebagai berikut:

------
#### [ macOS and Linux ]

   ```
   swift package-registry login ${CODEARTIFACT_REPO}login --token ${CODEARTIFACT_AUTH_TOKEN}
   ```

------
#### [ Windows ]
   + Windows (menggunakan shell perintah default):

     ```
     swift package-registry login %CODEARTIFACT_REPO%login --token %CODEARTIFACT_AUTH_TOKEN%
     ```
   + Jendela PowerShell:

     ```
     swift package-registry login $Env:CODEARTIFACT_REPO+"login" --token $Env:CODEARTIFACT_AUTH_TOKEN
     ```

------

1. Selanjutnya, perbarui registri paket yang digunakan oleh aplikasi Anda sehingga ketergantungan apa pun akan ditarik dari CodeArtifact repositori Anda. Perintah ini harus dijalankan di direktori proyek tempat Anda mencoba menyelesaikan ketergantungan paket:

------
#### [ macOS and Linux ]

   ```
   $ swift package-registry set ${CODEARTIFACT_REPO} [--scope {{my_scope}}]
   ```

------
#### [ Windows ]
   + Windows (menggunakan shell perintah default):

     ```
     $ swift package-registry set %CODEARTIFACT_REPO% [--scope {{my_scope}}]
     ```
   + Jendela PowerShell:

     ```
     $ swift package-registry set $Env:CODEARTIFACT_REPO [--scope {{my_scope}}]
     ```

------

   `--scope`Opsi mengonfigurasi aplikasi untuk hanya menggunakan paket dari CodeArtifact repositori Anda jika mereka berada dalam lingkup yang ditentukan. Cakupan identik dengan [CodeArtifact ruang nama](codeartifact-concepts.md#welcome-concepts-package-namespace), dan digunakan untuk mengatur kode ke dalam grup logis dan untuk mencegah tabrakan nama yang dapat terjadi ketika basis kode Anda menyertakan beberapa pustaka.

1. Anda dapat mengonfirmasi bahwa konfigurasi telah diatur dengan benar dengan melihat isi `.swiftpm/configuration/registries.json` file tingkat proyek dengan menjalankan perintah berikut di direktori proyek Anda:

   ```
   $ cat .swiftpm/configuration/registries.json
   {
     "authentication" : {
   
     },
     "registries" : {
       "[default]" : {
         "url" : "https://my-domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/swift/my-repo/"
       }
     },
     "version" : 1
   }
   ```

Sekarang setelah Anda mengkonfigurasi Swift Package Manager dengan CodeArtifact repositori Anda, Anda dapat menggunakannya untuk mempublikasikan dan menggunakan paket Swift ke dan dari itu. Untuk informasi selengkapnya, lihat [Mengkonsumsi dan menerbitkan paket Swift](swift-publish-consume.md).