Swift 패키지 관리자를 다음과 같이 구성하십시오. CodeArtifact - CodeArtifact

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Swift 패키지 관리자를 다음과 같이 구성하십시오. CodeArtifact

Swift Package Manager를 사용하여 패키지를 게시하거나 패키지를 사용하려면 먼저 CodeArtifact 리포지토리에 액세스할 수 있는 자격 증명을 설정해야 합니다. AWS CodeArtifact 자격 증명 및 리포지토리 엔드포인트를 사용하여 Swift Package Manager CodeArtifact CLI를 구성하는 권장 방법은 명령을 사용하는 aws codeartifact login 것입니다. Swift Package Manager를 수동으로 구성할 수도 있습니다.

로그인 명령으로 Swift 구성

aws codeartifact login명령을 사용하여 Swift 패키지 관리자를 구성하십시오 CodeArtifact.

참고

로그인 명령을 사용하려면 Swift 5.8 이상이 필요하며 Swift 5.9 이상을 사용하는 것이 좋습니다.

aws codeartifact login 명령은 다음을 수행합니다.

  1. 에서 CodeArtifact 인증 토큰을 가져와서 사용자 환경에 저장합니다. 보안 인증이 저장되는 방식은 환경의 운영 체제에 따라 달라집니다.

    1. macOS: macOS 키체인 애플리케이션에 항목이 생성됩니다.

    2. Linux 및 Windows: ~/.netrc 파일에 항목이 생성됩니다.

    모든 운영 체제에서 보안 인증 항목이 있는 경우 이 명령은 해당 항목을 새 토큰으로 대체합니다.

  2. CodeArtifact 리포지토리 엔드포인트 URL을 가져와서 Swift 구성 파일에 추가합니다. 이 명령은 /path/to/project/.swiftpm/configuration/registries.json에 있는 프로젝트 수준 구성 파일에 리포지토리 엔드포인트 URL을 추가합니다.

참고

aws codeartifact login 명령은 Package.swift 파일이 포함된 디렉터리에서 실행해야 하는 swift package-registry 명령을 호출합니다. 따라서 aws codeartifact login 명령은 Swift 프로젝트 내에서 실행해야 합니다.

로그인 명령으로 Swift를 구성하려면
  1. Package.swift 프로젝트 파일이 포함된 Swift 프로젝트 디렉터리로 이동합니다.

  2. 다음 aws codeartifact login 명령을 실행합니다.

    자신이 소유한 도메인의 리포지토리에 액세스하는 경우 --domain-owner를 포함하지 않아도 됩니다. 자세한 설명은 크로스 계정 도메인 섹션을 참조하세요.

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

--namespace 옵션은 CodeArtifact 리포지토리의 패키지가 지정된 네임스페이스에 있는 경우에만 패키지를 사용하도록 애플리케이션을 구성합니다. CodeArtifact 네임스페이스는 스코프와 동의어이며 코드를 논리적 그룹으로 구성하고 코드베이스에 여러 라이브러리가 포함된 경우 발생할 수 있는 이름 충돌을 방지하는 데 사용됩니다.

login 직접 호출 후의 기본 승인 기간은 12시간이며, 토큰을 주기적으로 재발급하려면 login를 직접적으로 호출해야 합니다. login 명령으로 만든 인증 토큰에 관한 자세한 내용은 login 명령으로 생성된 토큰을 참조하세요.

로그인 명령 없이 Swift 구성

aws codeartifact login 명령을 사용하여 Swift를 구성하는 것이 좋지만 Swift Package Manager 구성을 수동으로 업데이트하여 로그인 명령 없이 Swift Package Manager를 구성할 수도 있습니다.

다음 절차에서는 를 사용하여 다음을 수행합니다. AWS CLI

  1. 에서 CodeArtifact 인증 토큰을 가져와서 사용자 환경에 저장합니다. 보안 인증이 저장되는 방식은 환경의 운영 체제에 따라 달라집니다.

    1. macOS: macOS 키체인 애플리케이션에 항목이 생성됩니다.

    2. Linux 및 Windows: ~/.netrc 파일에 항목이 생성됩니다.

  2. CodeArtifact 리포지토리 엔드포인트 URL을 가져오세요.

  3. ~/.swiftpm/configuration/registries.json 구성 파일에 리포지토리 엔드포인트 URL 및 인증 유형이 포함된 항목을 추가합니다.

로그인 명령 없이 Swift를 구성하려면
  1. 명령줄에서 다음 명령을 사용하여 CodeArtifact 인증 토큰을 가져와서 환경 변수에 저장합니다.

    • my_domain을 도메인 이름으로 바꾸십시오. CodeArtifact

    • 111122223333을 도메인 소유자의 AWS 계정 ID로 바꾸십시오. 소유한 도메인의 리포지토리에 액세스하는 경우 --domain-owner를 포함하지 않아도 됩니다. 자세한 설명은 크로스 계정 도메인 섹션을 참조하세요.

    macOS and Linux
    export CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text`
    Windows
    • Windows(기본 명령 쉘 사용):

      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
    • PowerShell윈도우:

      $env:CODEARTIFACT_AUTH_TOKEN = aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text
  2. 다음 명령을 실행하여 CodeArtifact 리포지토리의 엔드포인트를 가져옵니다. 리포지토리 엔드포인트는 패키지를 사용하거나 게시하도록 Swift Package Manager를 리포지토리로 이동하는 데 사용됩니다.

    • my_domain을 도메인 이름으로 바꾸십시오. CodeArtifact

    • 111122223333을 도메인 소유자의 AWS 계정 ID로 바꾸십시오. 소유한 도메인의 리포지토리에 액세스하는 경우 --domain-owner를 포함하지 않아도 됩니다. 자세한 설명은 크로스 계정 도메인 섹션을 참조하세요.

    • my_repo를 저장소 이름으로 바꾸십시오. CodeArtifact

    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(기본 명령 쉘 사용):

      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
    • 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은 리포지토리 엔드포인트의 예입니다.

    https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/swift/my_repo/
    중요

    Swift Package Manager를 구성하는 데 사용할 때는 리포지토리 URL 엔드포인트 끝에 login을 추가해야 합니다. 이 절차는 이 절차의 명령으로 자동으로 수행됩니다.

  3. 이 두 값을 환경 변수에 저장한 후 swift package-registry login 명령을 사용하여 Swift에 전달합니다.

    macOS and Linux
    swift package-registry login ${CODEARTIFACT_REPO}login --token ${CODEARTIFACT_AUTH_TOKEN}
    Windows
    • 윈도우(기본 커맨드 쉘 사용):

      swift package-registry login %CODEARTIFACT_REPO%login --token %CODEARTIFACT_AUTH_TOKEN%
    • 윈도우 PowerShell:

      swift package-registry login $Env:CODEARTIFACT_REPO+"login" --token $Env:CODEARTIFACT_AUTH_TOKEN
  4. 그런 다음 애플리케이션에서 사용하는 패키지 레지스트리를 업데이트하여 저장소에서 종속성을 모두 제거하세요 CodeArtifact . 이 명령은 패키지 종속성을 해결하려는 프로젝트 디렉터리에서 실행해야 합니다.

    macOS and Linux
    $ swift package-registry set ${CODEARTIFACT_REPO} [--scope my_scope]
    Windows
    • Windows(기본 명령 쉘 사용):

      $ swift package-registry set %CODEARTIFACT_REPO% [--scope my_scope]
    • Windows: PowerShell

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

    --scope 옵션은 애플리케이션이 지정된 범위 내에 있는 경우에만 CodeArtifact 저장소의 패키지를 사용하도록 구성합니다. 범위는 CodeArtifact 네임스페이스와 동의어이며 코드를 논리적 그룹으로 구성하고 코드베이스에 여러 라이브러리가 포함된 경우 발생할 수 있는 이름 충돌을 방지하는 데 사용됩니다.

  5. 프로젝트 디렉터리에서 다음 명령을 실행하여 프로젝트 수준 .swiftpm/configuration/registries.json 파일의 내용을 보면 구성이 올바르게 설정되었는지 확인할 수 있습니다.

    $ 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 }

이제 리포지토리와 함께 Swift Package Manager를 구성했으므로 이를 사용하여 Swift 패키지를 게시하고 CodeArtifact 리포지토리에서 Swift 패키지를 사용할 수 있습니다. 자세한 설명은 Swift 패키지 사용 및 게시 섹션을 참조하세요.