메인 콘텐츠로 바로가기
CI/CD

Codemagic을 사용하여 자동화된 Capacitor IOS 빌드

5분 안에 Codemagic과 Codemagic을 사용하여 IOS Ionic 앱에 CI/CD PIPELINE을 설정하는 방법 (2024)

Martin Donadieu

Martin Donadieu

콘텐츠 마케터

Codemagic을 사용하여 자동화된 Capacitor IOS 빌드

iOS 개발을 위한 지속적인 배포

준비 사항

이 튜토리얼을 계속하기 전에…

  • iOS 개발자 프로그램 회원입니다.
  • 읽고 싶은 마음이 드는…

가격에 대한 중요한 점

가격 Codemagic Action

https://codemagic.io/pricing/

서비스는 '무료'입니다.월 500개의 macOS M1 분 / 월, 선택한 기계에 따라 달라집니다. 우리는 다음을 사용할 것입니다.
__CAPGO_KEEP_0__ macOS M1 스크린샷에서 볼 수 있는 것처럼, 가격과 제한 (튜토리얼이 생성된 시점의 가격, 미래에 변경될 수 있음)을 확인할 수 있습니다.

🔴 요구 사항과 가격에 대해 경고된 후, 만약에 좋다면 계속… 하겠습니다.

📣 애플리케이션을 iTunes Connect에서 생성했으며, 애플 생태계의 인증서를 가지고 있다고 가정합니다. 모든 설정은 Codemagic!에 의해 자동으로 처리됩니다.

들어가볼까요!

이 포스트에서 설명하는 단계를 따라해 주세요.

  1. Codemagic과 함께 App Store Connect API을 사용하는 방법
  2. 필요한 것
  3. App Store Connect API 키를 생성하는 방법
  4. App Store Connect API 키를 사용하는 방법
  5. Fastlane 파일을 복사하세요
  6. Codemagic을 설정하세요

1. App Store Connect API을 사용하는 Codemagic

2021년 2월부터 모든 사용자가 App Store Connect에 로그인하기 위해 두 단계 인증 또는 두 단계 인증이 필요합니다. Apple ID에 대한 추가 보안层는 계정에 대한 액세스를 제한하여 계정에 대한 액세스를 보장합니다.
From 애플 지원

match에 대한 시작을 위해 existing certificates를 취소해야합니다. 그러나 걱정하지 마십시오. 새로운 것을 직접 받을 것입니다.

요구 사항

App Store Connect API을 사용하려면 Codemagic은 세 가지 Issuer ID.

  1. Key ID.
  2. Key file 또는 Key content.
  3. three

앱 스토어 연결 API 키를 생성합니다.

앱 스토어 연결에 관리자 권한이 있어야 키를 생성할 수 있습니다. 관리자 권한이 없다면, 이 문서를 관련 사람에게 알려주고 다음 지침을 따르세요.

1 — 앱 스토어 연결에 로그인합니다. 앱 스토어 연결.

2 — 사용자 및 액세스 앱 스토어 연결 사용자 액세스.

3 — __CAPGO_KEEP_0__ 키 탭을 선택합니다.

앱 스토어 연결 API 키

4 — API 키 생성 또는 (+) 버튼을 클릭합니다.

앱 스토어 연결 API 키 생성

5 — 키 이름을 입력하고 액세스 레벨을 선택하세요. 우리는 선택할 때 API 키를 생성하는 것을 추천합니다.

__CAPGO_KEEP_0__ 키를 생성하는 것을 추천합니다. App Manager Apple Developer Program의 역할 권한에 대한 접근 권한, Apple Developer Program 역할 권한에 대한 더 많은 정보를 읽으십시오. 여기

App Store Connect API 키를 생성하여 이름을 지정합니다.

6 — Generate을 클릭하십시오.

API 키의 접근 권한은 특정 앱으로 제한할 수 없습니다.

새 키의 이름, 키 ID, 다운로드 링크 및 기타 정보가 페이지에 나타납니다.

App Store Connect 키 다운로드

다음 세 가지 필요한 정보를 모두 가져오십시오: 1> 이슈 ID.
2> 키 ID.
3> "API 키 다운로드"를 클릭하여 API 개인 키를 다운로드하십시오. 다운로드 링크는 개인 키가 아직 다운로드되지 않은 경우에만 나타납니다. Apple은 개인 키의 복사본을 보관하지 않습니다. 따라서 개인 키를 한번만 다운로드할 수 있습니다.

🔴 개인 키를 안전한 곳에 저장하십시오. 키를 공유하지 마십시오, 키를 code 저장소에 저장하지 마십시오, 또는 code 클라이언트 측에 키를 포함하지 마십시오.

App Store Connect API 키를 Codemagic에 추가하십시오.

  1. Codemagic 팀 설정을 열어 주세요. 팀 통합 설정 팀 열기 code 인증서를 선택하세요. code 인증서를 선택하세요. 인증서를 업로드하세요. 인증서 업로드

  2. 버튼을 클릭하세요. 키 추가 버튼을 클릭하세요.

  3. 키 이름을 입력하세요. App Store Connect API key name이 키 이름은 애플리케이션 설정에서 나중에 키를 참조할 때 사용됩니다.

  4. __CAPGO_KEEP_0__ 키를 입력하세요. Issuer ID 및 값을 입력하세요. Key ID 값을 입력하세요.

  5. __CAPGO_KEEP_0__ 키를 업로드하기 위해 이전에 다운로드 한 App Store Connect 키의 .p8 파일을 선택하거나 드래그하세요. __CAPGO_KEEP_0__ 키를 업로드하기 위해 이전에 다운로드 한 App Store Connect 키의 .p8 파일을 선택하거나 드래그하세요. API 키를 업로드하기 위해 이전에 다운로드 한 App Store Connect 키의 .p8 파일을 선택하거나 드래그하세요.

  6. __CAPGO_KEEP_0__ 키를 업로드하기 위해 이전에 다운로드 한 App Store Connect 키의 .p8 파일을 선택하거나 드래그하세요. __CAPGO_KEEP_0__ 키를 업로드하기 위해 이전에 다운로드 한 App Store Connect 키의 .p8 파일을 선택하거나 드래그하세요..

API 키를 업로드하기 위해 이전에 다운로드 한 App Store Connect 키의 .p8 파일을 선택하거나 드래그하세요.

__CAPGO_KEEP_0__ 키를 업로드하기 위해 이전에 다운로드 한 App Store Connect 키의 .p8 파일을 선택하거나 드래그하세요.

__CAPGO_KEEP_0__ 키를 업로드하기 위해 이전에 다운로드 한 App Store Connect 키의 .p8 파일을 선택하거나 드래그하세요.

__CAPGO_KEEP_0__ 키를 업로드하기 위해 이전에 다운로드 한 App Store Connect 키의 .p8 파일을 선택하거나 드래그하세요. App Store Connect __CAPGO_KEEP_0__ 키를 사용하여 Codemagic을 관리할 수 있습니다. 정말 좋습니다! 2. 인증서와 프로비저닝 프로파일을 생성하세요. 인증서 Open XCode를 열고 goto로 이동합니다. 설정 > 계정 > 애플 ID > 팀을 선택하세요.

Code 서명 식별자

클릭 인증서 관리 > + 인증서를 선택하세요. 애플 배포.

애플 배포

그런 다음 새로운 인증서를 만들 수 있습니다.

그런 다음 키 체인으로 이동하여 인증서를 파일로 다운로드해야 합니다. .p12 이를 위해 키 체인으로 이동하여 로그인 키 체인으로 전환하고 "My Certificates" 탭으로 이동해야 합니다.

로그인 키 체인으로 이동하여 "My Certificates" 탭으로 이동해야 합니다. 로그인 키 체인으로 이동하여 "My Certificates" 탭으로 이동해야 합니다. 그런 다음 다운로드하고자 하는 인증서를 선택할 수 있습니다. (인증서의 날짜를 확인하세요) 그런 다음 인증서 오른쪽 클릭 후 "Export"을 선택해야 합니다..

인증서 오른쪽 클릭 후 "Export"을 선택해야 합니다.

파일 형식 선택

인증서 오른쪽 클릭 후 "Export"을 선택해야 합니다. 인증서 오른쪽 클릭 후 "Export"을 선택해야 합니다..

인증서 오른쪽 클릭 후 "Export"을 선택해야 합니다. 인증서 오른쪽 클릭 후 "Export"을 선택해야 합니다..

그것은 인증서를 파일로 다운로드 할 것입니다. .p12 파일.

배포 프로파일

열기 애플 개발자 그리고 올바른 팀을 선택하십시오.

그런 다음 새로운 프로파일을 만들려면 "새로운 프로파일 만들기" 버튼을 클릭하십시오. +

그런 다음 "App Store Connect"를 선택하십시오.

App Store Connect 그런 다음 올바른 앱을 선택하십시오. wildcard를 사용하지 않으면 signing이 실패할 것입니다..

__CAPGO_KEEP_0__

__CAPGO_KEEP_0__

올바른 앱을 선택하세요.

앞서 생성한 인증서 중 올바른 인증서를 선택하세요. (만료일이 오늘 날짜와 같은 월일을 갖는 것을 확인하세요) 그리고 클릭하세요. Continue.

올바른 인증서를 선택하세요.

마지막으로 프로필 이름을 입력하고 클릭하세요. Generate.

이름은 Codemagic에서 프로필을 식별하는 데 사용됩니다.

프로필 생성

프로필을 파일 형태로 다운로드할 수 있습니다. .mobileprovision 프로필 다운로드

__CAPGO_KEEP_0__ 인증서를 추가하세요.

Adding the Code signing certificate

Codemagic는 code 서명 인증서를 PKCS#12 아카이브로 업로드 할 수 있게 해줍니다. 이 아카이브에는 인증서와 개인 키가 포함되어 있어 인증서를 사용하기 위해 필요합니다. 인증서를 업로드 할 때, Codemagic는 인증서가 암호화된 경우 인증서 암호를 제공하도록 요청하고, 고유한 Reference name,을 제공하도록 요청합니다. 이 고유한 codemagic.yaml Reference name

  • 을 사용하여
  • configuration
  • 에서 특정 파일을 가져올 수 있습니다.
  1. 인증서 업로드 새 인증서 생성 > Code signing identities.
  2. Codemagic 팀 설정을 열고, codemagic.yaml 설정을 열고, __CAPGO_KEEP_0__ 서명 식별자 열기 tab.
  3. __CAPGO_KEEP_0__을 클릭하거나 __CAPGO_KEEP_0__을 선택하거나 __CAPGO_KEEP_0__을 드래그하여 지정된 프레임으로 끌어 올리십시오.
  4. __CAPGO_KEEP_1__을 입력하십시오. __CAPGO_KEEP_2__ __CAPGO_KEEP_3__ __CAPGO_KEEP_4__을 선택하십시오..
  5. __CAPGO_KEEP_5__ __CAPGO_KEEP_6__

__CAPGO_KEEP_7__

__CAPGO_KEEP_8__를 추가하십시오. 프로비전 프로파일을 추가하는 중입니다. 프로비전 프로파일을 애플 개발자 포털에서 가져올 수 있습니다.

The profile’s type, team, bundle id, and expiration date are displayed for each profile added to Code signing identities. Furthermore, Codemagic will let you know whether a matching code signing certificate is available in Code signing identities (a green checkmark in the 인증서 3. Codemagic 설정

Codemagic 비밀 설정

프로젝트의 비밀 값은 어디서 오는 것일까요? 그건 더 이상 비밀일 필요가 없습니다 – 그것은 프로젝트의 비밀에서 오는 것입니다.

4. Codemagic 워크플로우 파일 설정 ENV 프로젝트의 루트 디렉토리에 이름을

로 지은 파일을 생성하고 다음을 추가하세요.

이 워크플로우는 수동으로 또는 각 codemagic.yml 태그마다 트리거되어야 합니다.

workflows:
  ionic-capacitor-ios-workflow:
    name: Capacitor iOS Workflow
    max_build_duration: 120
    instance_type: mac_mini_m1
    integrations:
      app_store_connect: CodeMagic
    environment:
      ios_signing:
        distribution_type: app_store
        bundle_identifier: YOUR_BUNDLE_IDENTIFIER
      vars:
        XCODE_WORKSPACE: ios/App/App.xcworkspace
        XCODE_SCHEME: App
        APP_STORE_APP_ID: YOUR_APP_STORE_APP_ID
      node: v20.14.0
      xcode: 15.4
      cocoapods: default
    triggering:
      events:
        - tag
      tag_patterns:
        - pattern: '*'
          include: true
    scripts:
      - name: Install dependencies
        script: |
          npm install
      - name: Cocoapods installation
        script: |
          cd ios/App && pod install
      - name: Update dependencies and copy web assets to native project
        script: |
          npm run build
          npx cap sync ios
      - name: Set up code signing settings on Xcode project
        script: |
          xcode-project use-profiles
      - name: Increment build number
        script: |
          cd $CM_BUILD_DIR/ios/App
          LATEST_BUILD_NUMBER=$(app-store-connect get-latest-app-store-build-number "$APP_ID")
          agvtool new-version -all $(($LATEST_BUILD_NUMBER + 1))
      - name: Build ipa for distribution
        script: |
          xcode-project build-ipa \
            --workspace "$XCODE_WORKSPACE" \
            --scheme "$XCODE_SCHEME"
    artifacts:
      - build/ios/ipa/*.ipa
      - /tmp/xcodebuild_logs/*.log
      - $HOME/Library/Developer/Xcode/DerivedData/**/Build/**/*.app
      - $HOME/Library/Developer/Xcode/DerivedData/**/Build/**/*.dSYM
    publishing:
      email:
        recipients:
          - YOUR_EMAIL
        notify:
          success: true # To not receive a notification when a build succeeds
          failure: false # To not receive a notification when a build fails
      app_store_connect:
        auth: integration
        # Configuration related to TestFlight (optional)
        # Note: This action is performed during post-processing.
        submit_to_testflight: true
        # Configuration related to App Store (optional)
        # Note: This action is performed during post-processing.
        submit_to_app_store: false

This workflow should be triggered manually or after each GitHub 3. Codemagic 설정만약 태그를 자동화하려면, 자동화된 빌드 및 릴리즈와 GitHub 작업 첫 번째.

그런 다음 워크플로우는 NodeJS 의존성을 가져와, 그들을 설치하고 JavaScript 앱을 빌드합니다.

각각의 새로운 태그를 보낼 때마다 테스트 플라이트에서 릴리즈가 빌드됩니다.

앱은 Ionic 을 사용하지 않아도 됩니다. 단, Capacitor 베이스만 필수적이며, 오래된 Cordova 모듈을 사용할 수 있지만 Capacitor JS 플러그인은 선호됩니다.

5. 워크플로우 트리거

워크플로우를 트리거하세요.

새로운 커밋을 branch 에 푸시하세요. main 또는 development 워크플로우를 트리거하기 위해.

커밋 시작

__CAPGO_KEEP_0__ 분 후에 빌드는 App Store Connect 대시보드에서 사용할 수 있어야 합니다.

Testflight 대시보드

수동 시작

워크플로우를 수동으로 시작할 수 있습니다.

먼저 빌드할 앱을 선택한 다음 새로운 빌드 시작.

앱 선택

그 다음 빌드할 branch를 선택하세요.

branch 선택

그리고 새로운 빌드 시작.

그 다음 빌드 목록으로 가세요.

빌드 목록

빌드를 클릭하여 결과를 확인하세요.

빌드 결과

로컬 머신에서 배포할 수 있습니다

네, 가능합니다. 그리고 그것은 매우 쉬워요.

Xcode를 사용하여 앱을 빌드하고 서명할 수 있습니다. 항상 그랬듯이.

감사합니다

다음 기사에 기반한 이 블로그입니다:

Keep going from Automatic Capacitor IOS build with Codemagic

만약 __CAPGO_KEEP_0__을 사용하고 있다면 Codemagic와 함께 Capacitor IOS 빌드를 자동으로 생성하세요 CI/CD 자동화 계획을 위해 __CAPGO_KEEP_0__ CI/CD와 연결하세요 Capgo CI/CD에서 제품 워크플로우를 관리하세요 Capgo Native Builds에서 제품 워크플로우를 관리하세요 Capgo Integrations에서 제품 워크플로우를 관리하세요 Capgo CI/CD Integration에서 구현 세부 정보를 관리하세요 Capgo Actions Integration에서 구현 세부 정보를 관리하세요 for the product workflow in Capgo Integrations, __CAPGO_KEEP_0__ CI/CD와 함께 제품 워크플로우를 관리하세요 __CAPGO_KEEP_0__ Native Builds와 함께 제품 워크플로우를 관리하세요 GitHub Integrations와 함께 제품 워크플로우를 관리하세요 GitHub 액션 통합 구현 세부 사항에 대해.

Capacitor 앱에 대한 실시간 업데이트

웹-layer 버그가 활성화된 경우, 앱 스토어 승인까지 며칠 기다리지 않고 Capgo를 통해 패치를 배포하세요. 사용자는 배경에서 업데이트를 받으며, 네이티브 변경은 일반적인 검토 경로에 남아 있습니다.

시작하기

블로그에서 최신 소식

Capgo는 전문적인 모바일 앱을 만들기 위해 필요한 최고의洞察력을 제공합니다.