메인 콘텐츠로 바로가기

Capacitor 앱을 위한 CI/CD 설정

iOS 및 Android 앱 릴리스를 위한 CI/CD PIPELINE을 사용하여 효율성을 높이고 오류를 줄입니다.

Martin Donadieu

Martin Donadieu

컨텐츠 마케터

Capacitor 앱을 위한 CI/CD 설정

iOS 및 Android 앱 릴리스를 더 빠르고 오류가 없는 것으로 원하시나요? CI/CD PIPELINE은 Capacitor 앱을 위한 빌드, 테스트, 배포를 자동화하여 70%까지 릴리스 시간을 단축하고 60%까지 오류를 줄입니다. 이 안내서에서는 환경 설정부터 __CAPGO_KEEP_0__를 사용하여 실시간 업데이트 자동화를 다룹니다. Capgo.

CI/CD는 왜 중요합니까?

  • __CAPGO_KEEP_0__ Capacitor 앱: 78%의 빌드 속도 향상과 60%의 스토어 거부 감소.
  • 필수 도구: Xcode, Android Studio, CocoaPods, 및 더 많은 것.
  • pipeline 설정: 자동화할 수 있는 작업들 npx cap sync, 의존성 캐싱, 및 플랫폼에 따른 빌드.
  • 실시간 업데이트와 Capgo: 릴리스 후 업데이트를 활성화하고 phased rollouts 및 rollback safeguard를 제공.

빠른 설정 단계:

  1. 환경을 준비하세요: iOS 및 Android용 필요한 도구를 설치하세요.
  2. 프로젝트를 구성하세요: 안전하게 환경 변수를 업데이트하고 관리하세요. capacitor.config.ts 빌드 PIPELINE
  3. : 양쪽 플랫폼에 대한 의존성 설치, 빌드 및 테스트를 자동화하세요.성능 최적화
  4. : 캐싱, 병렬 빌드 및 조건부 워크플로우를 사용하세요.실시간 업데이트 추가
  5. : phased 롤아웃과 함께 안전하고 OTA 업데이트를 위한 __CAPGO_KEEP_0__를 통합하세요.: Integrate Capgo for secure, OTA updates with phased rollouts.

CI/CD를 통해 Capacitor 앱은 더 빠르고 smoother한 릴리즈를 달성하며 오류 및 수동 개입을 최소화합니다. 워크플로우를 최적화할 준비가 되셨나요? 시작해 보세요!

기존 CI/CD PIPELINE과 모바일 기능을 통합하세요.

CI/CD 환경을 준비하는 중입니다.

CI/CD의 기본 사항을 이해했다면, 다음 단계는 환경 설정입니다. 이것은 신뢰할 수 있는 자동화의 근간입니다.

도구 및 소프트웨어 설정

다음 키 도구가 설치되어 있는지 확인하세요:

iOS 개발을 위해:

  • Xcode 14 이상
  • Xcode Command Line Tools
  • CocoaPods 의존성 관리

안드로이드 개발을 위한 경우:

  • Android Studio
  • Android SDK 33 이상
  • 자바 개발 키트 (JDK)

Xcode Command Line Tools가 설치되어 있는지 확인하려면 다음 명령어를 사용하세요:

xcode-select -p

만들기 Capacitor __CAPGO_KEEP_0__ 프레임워크 문서 사이트

CI/CD 워크플로우를 위해 Capacitor 프로젝트가 올바르게 구성되어야 합니다. 이 설정의 핵심은 다음과 같습니다:

Capacitor capacitor.config.ts 이 파일은 프로젝트가 CI/CD 요구 사항과 일치하도록 보장합니다.

const config: CapacitorConfig = {
  appId: 'com.example.app',
  webDir: 'build',
  ios: { 
    scheme: 'MyApp'
  }
}

CI/CD 워크플로우를 위해 __CAPGO_KEEP_0__ 프로젝트가 올바르게 구성되어야 합니다.

환경 설정 변수 설정

CI/CD PIPELINE과 연동하기 위해 환경 설정을 연결하는 데 보안 인증서를 관리하는 것이 중요합니다.

정의해야 할 주요 변수:

  • BUILD_ENV: 배포 단계를 지정합니다 (예: production)
  • IOS_SIGNING_IDENTITY: code 서명 인증서
  • ANDROID_KEYSTORE_PATH: 안드로이드 Keystore의 경로

안드로이드 빌드에 대해 CI 프로세스 중에 동적으로 생성하는 local.properties 파일:

echo "sdk.dir=$ANDROID_SDK_ROOT" > android/local.properties

iOS 빌드와 작업할 때 CI 플랫폼이 macOS agent를 지원하는지 확인하세요.

환경이 준비되었는지 확인하려면:

node --version | grep "v16" && xcodebuild -version | grep "Xcode 14" || exit 1

키 및 인증서를 적절하게 관리하면 앱 스토어의 거절 확률을 크게 낮출 수 있습니다. 이에 대한 자세한 통계는 이전에 언급되어 있습니다. [1].

CI/CD PIPELINE을 생성하세요

CI/CD PIPELINE을 설정하는 다음 단계는 환경이 준비된 후에야 가능합니다. Capacitor 앱이 pipeline은 웹 자산과 네이티브 플랫폼 빌드를 효율적으로 관리해야 합니다.

의존성 설치 및 업데이트

CI/CD 환경에서 의존성 관리는 엄격한 버전 관리가 필요합니다. 깨끗한 설치 프로세스부터 시작하세요:

npm install --ignore-scripts
npm install @capacitor/cli

빌드 속도를 높이려면 의존성 캐싱을 사용하세요. 예를 들어, Azure DevOps 사용자들은 이 설정을 사용하여 빌드 시간이 40-60% 향상되었습니다.

- task: Cache@2
  inputs:
    key: 'npm | "$(Agent.OS)" | package-lock.json'
    path: |
      node_modules
      android/.gradle
      ios/Pods

iOS 및 Android 빌드 설정

플랫폼 모두에 대한 빌드 설정 방법은 다음과 같습니다.

iOS 빌드 설정:

steps:
  - task: InstallAppleCertificate@2
    inputs:
      certSecureFile: 'certificate.p12'
      certPwd: $(P12_PASSWORD)
  - script: |
      xcodebuild -workspace ios/App/App.xcworkspace -scheme App -configuration Release -archivePath ios/App/App.xcarchive archive

안드로이드 빌드 구성:

cd android
./gradlew bundleRelease

테스트 및 배포 단계

다중 전략을 사용하여 병렬로 플랫폼 테스트를 실행합니다.

test:
  steps:
    - run: npm run test:unit
    - run: npm run test:e2e
    - name: Run Platform Tests
      matrix:
        platform: [ios, android]
      run: npm run test:${{ matrix.platform }}

배포를 위해 플랫폼별 아티팩트 처리를 설정합니다.

플랫폼아티팩트 유형배포 채널
iOS.ipa앱 스토어 연결
Android.aab구글 플레이 콘솔

병렬 빌드 사용하면 올바르게 구성된 경우 pipeline 실행 시간을 크게 줄일 수 있습니다.

빌드가 검증되고 패키징이 완료되면 Capgo (다음 섹션에서 설명)에 대해 라이브 업데이트에 넘어가세요.

sbb-itb-f9944d2

추가 Capgo 라이브 업데이트

Capgo 라이브 업데이트 대시보드 인터페이스

Integrating Capgo into your workflow enhances your CI/CD process by enabling post-release updates. Here’s how to set it up:

Capgo Pipeline Configuration

먼저 pipeline 환경에서 Capgo와 __CAPGO_KEEP_1__을 설치하세요: Capgo CLI Capgo __CAPGO_KEEP_1__

steps:
  - name: Install Capgo CLI
    run: npm install -g @capgo/cli
  - name: Configure Authentication
    env:
      CAPGO_KEY: ${{ secrets.CAPGO_API_KEY }}

CI/CD 생명주기 확장 업데이트 관리 업데이트

업데이트

- name: Upload Update
  run: |
    capgo upload --api-key $CAPGO_KEY --bundle ./build/app-release.apk
    capgo deploy v${VERSION} --channel production

업데이트 업데이트업데이트

{
  "verification": {
    "checksum": "strict",
    "certificatePinning": true,
    "updateTimeout": 500
  }
}

Capgo Features Overview

업데이트업데이트
업데이트업데이트
채널 기반 배포특정 환경에 맞춰 업데이트를 조정합니다.
분할 배포업데이트가 점진적으로 배포되도록 보장합니다.

OTA 업데이트 지침

배포 후에 다음 키 메트릭을 추적하여 테스트 프로세스를 개선하세요:

분할 배포 전략

업데이트가 어떻게 배포되는지 제어하기 위해 단계적인 롤아웃을 사용하세요:

- name: Staged Rollout
  run: |
    capgo deploy v1.2.3 --group "beta-users" --rollout 10%
    capgo deploy v1.2.3 --rollout 50%

업데이트 모니터링

다음 메트릭을 주시하세요:

  • 수용률: 24시간 내에 40-60%를 목표로 하세요.
  • 사용자 경험에 영향을 미치는 오류가 없는 세션: 99.5% 이상 유지
  • 인증 시간: 500ms 이하로

허용 가능한 수준을 초과하는 오류가 발생하면 롤백을 자동화하십시오:

- name: Rollback Check
  run: |
    if [ $(capgo stats --version v1.2.3 --metric crashes) -gt 2 ]; then
      capgo rollback --channel production
    fi

PIPELINE 성능 향상

PIPELINE 성능 향상을 위해 세 가지 주요 영역에 초점을 맞추면 PIPELINE 성능 향상에 눈에 띄는 향상을 기대할 수 있습니다.

빌드 속도 최적화

웹 전용 변경 사항의 경우 npx cap sync 를 사용하여 시간을 절약할 수 있으며, 전체 네이티브 빌드 Skip을 통해 40%의 재빌드 시간을 줄일 수 있습니다. 조건부 빌드를 구현하는 방법은 다음과 같습니다.

- name: Build Strategy
  run: |
    [ "$WEB_ONLY" = true ] && npx cap sync || (./gradlew assembleRelease && xcodebuild ...)

이 접근 방식은 필요한 컴포넌트만 재빌드하도록 보장하여 프로세스를 단순화합니다.

버전 제어 자동화

버전 관리를 자동화하면 워크플로우를 단순화할 수 있습니다. 버전 및 빌드 번호를 동적으로 설정하기 위한 스크립트를 사용하십시오.

- name: Set Version
  run: |
    VERSION=$(node -p "require('./package.json').version")
    BUILD_NUMBER=$GITHUB_RUN_NUMBER
    echo "APP_VERSION=${VERSION}" >> $GITHUB_ENV
    echo "BUILD_ID=${BUILD_NUMBER}" >> $GITHUB_ENV

또한 이 구성으로 자동화된 의미론적 버전 관리를 설정할 수 있습니다.

{
  "scripts": {
    "version": "standard-version",
    "build:prod": "npm version patch && ionic build --prod"
  }
}

이러한 관행은 다음 메트릭을 통해 pipe라인 성능을 추적하고 개선하는 데 도움이 되는坚固한 프레임워크를 제공합니다.

  • 단계별 빌드 시간
  • 캐시 효율성 (hit/miss 비율)
  • Peak 리소스 사용량

다중 환경 설정

다중 환경을 관리하는 것은 환경별 구성 파일을 사용하여 단순화할 수 있습니다. 예를 들어:

환경설정 파일
개발.env.dev
스테이징.env.staging
운영보안 보관소

이 스크립트를 사용하여 환경을 동적으로 구성할 수 있습니다.:

- name: Configure Environment
  env:
    API_KEY: ${{ secrets.ENV_SPECIFIC_API_KEY }}
    BUNDLE_ID: ${{ parameters.bundleId }}
  run: |
    echo "ENVIRONMENT=${{ parameters.environment }}" >> $GITHUB_ENV
    echo "API_ENDPOINT=${{ parameters.apiUrl }}" >> $GITHUB_ENV

Capgo의 채널 기반 배포와 환경별 구성의 조합은 더 정확하고 환경에 맞는 업데이트를 허용하여 smoother 롤아웃과 다양한 환경에서 애플리케이션 동작에 대한 더 나은 제어를 보장합니다.

요약

CI/CD의 개발 역할

Capacitor 앱을 위한 CI/CD pipe라인을 사용하면 작업 흐름의 효율성이 크게 향상됩니다. 업계 데이터에 따르면 팀은 동시 iOS 및 Android 빌드 을 통해 50-70% 빠른 릴리즈 사이클을 달성할 수 있습니다. [3]배포 오류를 줄이기 위해 의존성 설치 및 플랫폼 동기화와 같은 작업을 자동화합니다. 40-60% [1][2].

예를 들어, Azure DevOps pipe라인을 사용하는 팀은 시퀀셜 빌드 단계와 Xcode 패키징과 같은 프로세스를 자동화하고, 개발 및 운영에 대한 매개변수 환경을 사용합니다. 이 접근 방식은 Gradle 및 Xcode CLI 작업을 수동으로 처리할 필요가 없으며, 매번 신뢰할 수 있는 아티팩트를 생성합니다.

이러한 개선 사항은 Capgo와 함께 업데이트 관리를 위한 스트리밍된 관리를 위한 토대가 됩니다.

Capgo for Update Management

Capgo는 CI/CD pipeline과 완벽하게 통합되어 앱 스토어 정책 준수를 보장하는 즉각적인 업데이트를 제공합니다. 업데이트는 자동화된 테스트 게이트를 포함한 pipeline에서만 배포됩니다.

자동화된 빌드와 phased rollouts를结合하면 팀이 다음과 같은 놀라운 결과를 달성할 수 있습니다: 7일 이내 80%의 사용자 커버리지 1시간 이내 rollback

parallel deployment tracks를 실행하는 것이 일반적인 전략입니다. 자동화된 빌드는 내부 테스트에 사용되며, phased rollouts는 사용자 세그먼트를 대상으로합니다. 이로써 업데이트는 빠르고 안전하며, 엄격한 자동화된 테스트 게이트에 의해 뒷받침됩니다. [1].

FAQs

Capacitor 앱을 만들려면?

Capacitor 앱을 만들려면 몇 가지 단순한 단계만 따르면 됩니다.

  1. 환경 설정: Node.js와 npm를 시스템에 설치한 다음, Ionic CLI을 사용하여 Capacitor 지원을 포함한 새로운 프로젝트를 시작하세요.

    ionic start myApp tabs --capacitor
  2. __CAPGO_KEEP_0__ 지원 추가: iOS 또는 Android와 같은 플랫폼을 추가하세요.

    npx cap add ios
    npx cap add android
  3. 웹 code를 동기화하세요.: 웹 code가 네이티브 플랫폼과 일치하도록 하려면 다음 명령어를 실행하세요.

    npx cap sync

CI/CD PIPELINE에서 smooth한 작동을 보장하기 위해 앱이 모든 플랫폼에서 일관성을 유지하는 데 중요합니다. 환경 설정에 대한 자세한 내용은 Tools 섹션을 참조하세요.

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

웹层 버그가 활성화되면, 앱 스토어 승인 대기 없이 Capgo를 통해 픽스를 배포합니다. 사용자는 배경에서 업데이트 받으며, 네이티브 변경 사항은 일반적인 검토 경로에 남아 있습니다.

시작하기

최신 블로그 게시물

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