자동 빌드
CI/CD

Capacitor IOS 자동 빌드

기사 저자

마틴 도나디우

작가

발레리아

리뷰어

조던

__CAPGO_KEEP_0__ IOS 자동 빌드

기사 저자

Automatic Capacitor IOS build with Codemagic

iOS에서 Codemagic을 사용한 지속적인 배포

필요한 조건

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

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

가격에 대한 중요한 점

가격 Codemagic Action

https://codemagic.io/pricing/

서비스는 ‘월 500개의 macOS M1 분 / 달, 선택한 기기를 따라서 무료’ 이 튜토리얼에서 사용할 것은
iOS 개발자 프로그램 회원입니다. macOS M1 기기, 스크린샷에 보이는 가격과 제한 (이 튜토리얼 작성 시 가격, 미래에 변경될 수 있음)

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

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

시작해 보겠습니다!

이 포스트에서 따르는 단계

  1. App Store Connect API을 Codemagic과 사용하는 방법
  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에 로그인하기 위해 2단계 인증 또는 2단계 인증이 필요합니다. 이 추가 보안 계층은 Apple ID에 대한 보안을 보장하여 계정에 대한 접근을 제한합니다.
From Apple Support

match에 대한 시작을 위해 기존 인증서를 취소해야 하지만 걱정하지 마십시오. 새로운 인증서를 직접 받을 수 있습니다.

요구 사항

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

  1. 키 ID.
  2. 키 파일 또는 키 내용.
  3. three

애플 스토어 연결 API 키 생성

애플 스토어 연결 키를 생성하려면 Admin 권한이 있어야 합니다. 권한이 없다면 이 문서를 공유하고 아래 지침을 따라야 합니다.

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

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

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

애플 스토어 연결 API 키

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

애플 스토어 연결 API 키 생성

5 — 키 이름을 입력하고 액세스 수준을 선택합니다. 우리는 선택을 }API 추천합니다.

애플 스토어 연결 __CAPGO_KEEP_0__ 키 생성 App Manager 권한, Apple Developer Program 역할 권한에 대해 더 알아보세요. 여기

App Store Connect API 키를 생성하여 이름을 지정하세요.

6 — Generate 클릭.

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

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

App Store Connect 키 다운로드

다음 세 가지 정보를 모두 여기서 확인하세요: <1> Issue ID.
<2> Key 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. Enter the Issuer IDKey ID values.

  5. Click on Choose a .p8 file or drag the file to upload the App Store Connect API key downloaded earlier.

  6. Click Save.

Now we can manage Codemagic with the App Store Connect API key, great!

2. Create certificates and provisioning profiles

Certificates

Open XCode and go to 설정 > 계정 > Apple ID > 그리고 팀을 선택하세요.

Code 서명 식별자

클릭 인증서 관리 > + 및 선택 애플 배포.

애플 배포

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

그런 다음 인증서를 다운로드하기 위해 키 체인에 가야 합니다. (파일로) .p12 이것을 하려면 키 체인에 가서 로그인 키 체인으로 switch하고 그 다음 탭

로그인 키 체인 인증서 인증서.

그런 다음 다운로드하고 싶은 인증서를 선택할 수 있습니다. (인증서의 날짜를 확인하세요)

인증서를 다운로드하고 싶은 인증서를 선택할 수 있습니다. (인증서의 날짜를 확인하세요)

And then right-click on the certificate and select Export.

Choose the file format Personal Information Exchange (.p12).

That will download the certificate as a file. .p12 Provisioning profiles

Open

Apple Developer and select the right team. Then create a new profile, by clicking on

Create a new profile +

iOS에서 자동으로 Capacitor 빌드를 위한 Codemagic

And __CAPGO_KEEP_0__를 선택하세요. App Store Connect.

App Store Connect을 선택하세요.

그 다음에 올바른 앱을 선택해야 합니다. wildcard를 사용하면 signing이 실패할 수 있으니 주의하세요.

올바른 앱을 선택하세요.

앞서 생성한 올바른 인증서를 선택하세요. (만료일을 확인하세요. 만료일은 오늘 날짜와 월이 동일해야 합니다.) 그리고 클릭하세요. Continue.

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

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

프로파일 이름은 Codemagic에서 프로파일을 식별하기 위해 사용됩니다.

프로파일을 생성하세요.

다운로드 프로파일을 파일 형식으로 받을 수 있습니다. .mobileprovision 파일.

프로파일 다운로드

Code 서명 인증서 추가

Codemagic은 code 서명 인증서를 PKCS#12 아카이브로 업로드할 수 있으며, 인증서와 개인 키가 포함되어 있어 인증서를 사용하기 위해 필요합니다. 업로드 시, Codemagic은 인증서가 암호화된 경우 인증서 암호를 제공하도록 요청하며, 고유한 참조 이름, codemagic.yaml 구성을 통해 특정 파일을 가져올 수 있습니다.

  • 인증서 업로드
  • 새 인증서 생성
  • 개발자 포털에서 가져오기
  1. Codemagic 팀 설정을 열고, iOS 빌드 자동화 - Codemagic > Code 서명 식별자.
  2. 열기 iOS 인증서 탭.
  3. 인증서 파일을 업로드하려면 Choose a .p12 or .pem file 또는 프레임에 드래그하여 파일을 업로드하세요.
  4. 인증서 비밀번호를 입력하고 인증서 비밀번호 선택하세요. 참조 이름.
  5. 클릭 인증서 추가

프로비저닝 프로파일 추가

Codemagic은 애플리케이션을 위한 프로비저닝 프로파일을 업로드하거나 애플리케이션 개발자 포털에서 프로파일을 가져올 수 있도록 허용합니다.

프로파일의 유형, 팀, 번들 ID, 만료일은 Code 서명 식별자에 추가된 각 프로파일에 표시됩니다. 또한, Codemagic은 code 서명 인증서가 Code 서명 식별자에 존재하는지 여부를 알려줍니다 (인증서 필드에 녹색 체크마크가 표시되면). 인증서 3. Codemagic 설정

Codemagic 비밀 설정

프로젝트의 비밀에서 값이 어디서 오는지 궁금했나요? 그것은 더 이상 비밀일 필요는 없습니다 – 그것은 프로젝트의 비밀에서 오는 것입니다. 🤦

Ever wonder where the values of the ENV Configure Codemagic secrets

4. Codemagic workflow 파일을 구성하세요.

Create a file named 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는 수동으로 또는 각 GitHub 태그자동화된 태그를 원한다면, Automatic build and release with GitHub actions 먼저 참조하세요.

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

새로운 태그를 전송할 때마다 테스트 플라이트에서 릴리즈가 빌드됩니다.

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

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

Trigger the workflow

Push the new commits to the branch main 또는 development 자동 빌드를 트리거하는 workflow를 시작하세요.

or

자동 빌드를 트리거하는 workflow를 시작하세요.

or

Push the new commits to the branch

자동 빌드를 트리거하는 workflow를 시작하세요.

or or.

or

그런 다음 선택하고 싶은 branch를 선택하세요.

Branch 선택

그리고 클릭하면 새로운 빌드를 시작하세요.

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

빌드 목록

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

빌드 결과

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

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

Xcode를 사용하여 앱을 빌드하고 서명할 수 있습니다. 항상 그대로입니다.

감사합니다

이 블로그는 다음 기사에 기반합니다.

자동 Capacitor IOS 빌드와 Codemagic

자동 __CAPGO_KEEP_0__ IOS 빌드와 Codemagic 자동 Capacitor IOS 빌드와 Codemagic 자동 __CAPGO_KEEP_0__ IOS 빌드와 Codemagic 자동 Capgo IOS 빌드와 Codemagic 자동 Capgo IOS 빌드와 Codemagic 자동 Capgo IOS 빌드와 Codemagic 자동 Capgo IOS 빌드와 Codemagic Capgo 통합 Capgo 통합을 위한 제품 워크플로 CI/CD 통합 CI/CD 통합을 위한 구현 세부 정보 GitHub 액션 통합 GitHub 액션 통합을 위한 구현 세부 정보

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

When a web-layer bug is live, ship the fix through Capgo instead of waiting days for app store approval. Users get the update in the background while native changes stay in the normal review path.

마틴의 인간 지원

시작하기

최신 블로그

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