쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

자습서: 인증서 스토리지용 S3를 사용하여 CodeBuild에서 Fastlane으로 Apple 코드 서명

포커스 모드
자습서: 인증서 스토리지용 S3를 사용하여 CodeBuild에서 Fastlane으로 Apple 코드 서명 - AWS CodeBuild

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

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

fastlane은 iOS 및 Android 앱의 베타 배포 및 릴리스를 자동화하는 인기 있는 오픈 소스 자동화 도구입니다. 스크린샷 생성, 코드 서명 처리, 애플리케이션 릴리스와 같은 모든 지루한 작업을 처리합니다.

사전 조건

이 자습서를 완료하려면 먼저 다음을 설정해야 합니다.

1단계: 로컬 시스템에서 S3와 Fastlane 일치 설정

Fastlane Match Fastlane 도구 중 하나이며 로컬 개발 환경과 CodeBuild 모두에서 코드 서명을 위한 원활한 구성을 지원합니다. Fastlane Match는 모든 코드 서명 인증서 및 프로비저닝 프로필을 Git 리포지토리/S3 버킷/Google 클라우드 스토리지에 저장하고 필요한 경우 필요한 인증서와 프로필을 다운로드하여 설치합니다.

이 예제 구성에서는 Amazon S3 버킷을 설정하고 스토리지에 사용합니다.

  1. 프로젝트에서 일치 항목 초기화:

    fastlane match init
  2. 메시지가 표시되면 S3를 스토리지 모드로 선택합니다.

  3. S3를 사용하도록 `Matchfile`을 업데이트합니다.

    storage_mode("s3") s3_bucket("your-s3-bucket-name") s3_region("your-aws-region") type("appstore") # The default type, can be: appstore, adhoc, enterprise or development

2단계: Fastfile 설정

다음 경로로 `Fastfile`을 생성하거나 업데이트합니다.

CodeBuild에서는 앱을 빌드하고 서명할 때마다 Fastlane Match를 실행해야 합니다. 이렇게 하는 가장 쉬운 방법은 앱을 빌드하는 차선에 match 작업을 추가하는 것입니다.

default_platform(:ios) platform :ios do before_all do setup_ci end desc "Build and sign the app" lane :build do match(type: "appstore", readonly: true) gym( scheme: "YourScheme", export_method: "app-store" ) end end
참고

일치 작업이 올바르게 작동하려면 Fastfilesetup_ci before_all 섹션에를 추가해야 합니다. 이렇게 하면 적절한 권한이 있는 임시 Fastlane 키체인이 사용됩니다. 이를 사용하지 않으면 빌드 실패 또는 일관되지 않은 결과가 표시될 수 있습니다.

3단계: fastlane match 명령을 실행하여 각 인증서 및 프로필 생성

지정된 유형(예: 개발, 앱 스토어, 임시, 엔터프라이즈)에 대한 fastlane match 명령은 원격 스토어에서 사용할 수 없는 경우 인증서와 프로필을 생성합니다. 인증서와 프로필은 fastlane에 의해 S3에 저장됩니다.

bundle exec fastlane match appstore

명령 실행은 대화형이며 fastlane은 인증서 복호화를 위한 암호 문구를 설정하도록 요청합니다.

4단계: 프로젝트에 대한 애플리케이션 파일 생성

프로젝트에 적합한 애플리케이션 파일을 생성하거나 추가합니다.

  1. 프로젝트 빌드 요구 사항에 따라 Gymfile, Appfile, Snapfile, Deliverfile을 생성하거나 추가합니다.

  2. 원격 리포지토리에 변경 사항 커밋

5단계: Secrets Manager에서 환경 변수 생성

fastlane 세션 쿠키와 일치하는 암호 구문을 저장하기 위한 두 개의 암호를 생성합니다. Secrets Manager에서 보안 암호를 생성하는 방법에 대한 자세한 내용은 보안 암호 생성을 AWS Secrets Manager참조하세요.

  1. 다음과 같이 fastlane 세션 쿠키에 액세스합니다.

    1. 보안 키 - FASTLANE_SESSION

    2. 보안 암호 값 - 로컬 시스템에서 다음 명령을 실행하여 생성된 세션 쿠키입니다.

      참고

      이 값은 로컬 파일에서 인증 후 사용할 수 있습니다~/.fastlane/spaceship/my_appleid_username/cookie.

      fastlane spaceauth -u <apple account>
  2. Fastlane Match 암호 - Fastlane Match가 S3 버킷에 저장된 인증서와 프로필을 해독하도록 하려면 매치 설정 단계에서 구성한 암호화 암호를 CodeBuild 프로젝트의 환경 변수에 추가해야 합니다.

    1. 보안 키 - MATCH_PASSWORD

    2. 보안 암호 값 - <암호화 암호를 일치시켜 인증서 해독>. 3단계에서 인증서를 생성하는 동안 암호가 설정됩니다.

참고

Secrets Manager에서 위의 보안 암호를 생성하는 동안 다음 접두사가 있는 보안 암호 이름을 지정해야 합니다. /CodeBuild/

6단계: 컴퓨팅 플릿 생성

프로젝트의 컴퓨팅 플릿을 생성합니다.

  1. 콘솔에서 CodeBuild로 이동하여 새 컴퓨팅 플릿을 생성합니다.

  2. 운영 체제로 "macOS"를 선택하고 적절한 컴퓨팅 유형과 이미지를 선택합니다.

7단계: CodeBuild에서 프로젝트 생성

CodeBuild에서 프로젝트를 생성합니다.

  1. https://console.aws.amazon.com/codesuite/codebuild/home://에서 AWS CodeBuild 콘솔을 엽니다.

  2. 빌드 프로젝트를 생성합니다. 자세한 내용은 빌드 프로젝트 만들기(콘솔)빌드 실행(콘솔) 섹션을 참조하세요.

  3. 소스 공급자(예: GitHub, CodeCommit)를 설정합니다. 이는 iOS 프로젝트 소스 리포지토리이며 인증서 리포지토리가 아닙니다.

  4. 환경에서 다음과 같이 합니다.

    • 예약 용량을 선택합니다.

    • 플릿에서 위에서 생성한 플릿을 선택합니다.

    • CodeBuild가 자동으로 생성할 서비스 역할의 이름을 입력합니다.

    • 아래 환경 변수를 제공합니다.

      • 이름: MATCH_PASSWORD, 값: <secrets arn>, 유형: Secrets Manager(MATCH_PASSWORD의 경우 5단계에서 생성된 보안 암호 ARN)

      • 이름: FASTLANE_SESSION, 값: <secrets arn>, 유형: Secrets Manager(FASTLANE_SESSION의 5단계에서 생성된 보안 암호 ARN)

  5. Buildspec에서 다음을 추가합니다.

    version: 0.2 phases: install: commands: - gem install bundler - bundle install build: commands: - echo "Building and signing the app..." - bundle exec fastlane build post_build: commands: - echo "Build completed on date" artifacts: files: - '*/.ipa' name: app-$(date +%Y-%m-%d)

8단계: IAM 역할 구성

프로젝트가 생성되면 CodeBuild 프로젝트의 서비스 역할에 인증서가 포함된 S3 버킷에 액세스할 수 있는 권한이 있는지 확인합니다. 역할에 다음 정책을 추가합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:ListBucket" ], "Resource": "arn:aws:s3:::your-s3-bucket-name" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject" ], "Resource": "arn:aws:s3:::your-s3-bucket-name/*" } ] }

9단계: 빌드 실행

빌드를 실행합니다. CodeBuild에서 빌드 상태 및 로그를 검토할 수 있습니다.

작업이 완료되면 작업 로그를 볼 수 있습니다.

문제 해결

  • 인증서 가져오기에 문제가 발생하면 S3 액세스를 위해 IAM 권한이 올바르게 설정되었는지 확인합니다.

  • 인증서 복호화에 문제가 발생하면 MATCH_PASSWORD 환경 변수에서 올바른 암호를 설정해야 합니다.

  • 코드 서명 문제의 경우 Apple 개발자 계정에 필요한 인증서 및 프로필이 있고 Xcode 프로젝트의 번들 식별자가 프로비저닝 프로필의 번들 식별자와 일치하는지 확인합니다.

보안 고려 사항

다음은이 자습서의 보안 고려 사항입니다.

  • S3 버킷에 저장 데이터 암호화를 비롯한 적절한 보안 설정이 있는지 확인합니다. 특히 버킷에 퍼블릭 액세스 권한이 없는지 확인하고 액세스 권한이 필요한 CodeBuild 및 시스템으로만 액세스를 제한합니다.

  • 를 사용하여 MATCH_PASSWORD 및 FASTLANE_SESSION과 같은 민감한 정보를 AWS Secrets Manager 저장하는 것이 좋습니다.

이 샘플은 인증서 스토리지용 Amazon S3를 사용하여 CodeBuild에서 Fastlane을 사용하여 iOS 코드 서명을 위한 설정을 제공합니다. 특정 프로젝트 요구 사항 및 CodeBuild 환경에 따라 일부 단계를 조정해야 할 수 있습니다. 이 접근 방식은 AWS 서비스를 활용하여 AWS 에코시스템 내에서 보안 및 통합을 강화합니다.

프라이버시사이트 이용 약관쿠키 기본 설정
© 2025, Amazon Web Services, Inc. 또는 계열사. All rights reserved.