메인 콘텐츠로 바로가기

Capacitor 앱을 위한 CI/CD 설정

iOS 및 Android 앱 릴리스를 위한 CI/CD PIPELINE을 사용하여 효율성을 높이고 오류를 줄이는 방법을 알아보세요.

마틴 도나디유

마틴 도나디유

콘텐츠 마케터

Capacitor 앱을 위한 CI/CD 설정

iOS 및 Android 앱 릴리스를 더 빠르고 오류가 없는 것으로 원하시나요? __CAPGO_KEEP_0__ Capacitor 마틴 도나디유 Capgo.

CI/CD에 대한 주요 점:

  • CI/CD가 Capacitor 앱에 중요합니다:
  • 빌드 속도를 78% 향상시키고 스토어 거부를 60% 줄입니다.: 필수 도구, Xcode, Android StudioCocoaPods
  • , 등.pipeline 설정: npx cap sync의존성 캐싱 및 플랫폼별 빌드.
  • 실시간 업데이트: Capgo: 출시 후 업데이트를 위한 단계적 롤아웃 및 롤백 보장.

빠른 설정 단계:

  1. 환경 준비: iOS 및 Android용으로 필요한 도구를 설치.
  2. 프로젝트 구성: 업데이트하고 환경 변수를 안전하게 관리. capacitor.config.ts 빌드 PIPELINE
  3. : 양쪽 플랫폼에 대한 의존성 설치, 빌드 및 테스트를 자동화.성능 최적화
  4. Optimize performance: 캐싱, 병렬 빌드 및 조건부 워크플로우를 사용하세요.
  5. Add live updates: Capgo을 안전하고 OTA 업데이트와 단계별 출시를 위해 통합하세요.

CI/CD와 Capacitor 앱은 빠른, smoother 릴리스를 달성하며 오류 및 수동 개입을 최소화합니다. 워크플로우를 최적화하기 위해 준비되셨나요? 시작해 보세요!

CI/CD pipeline에 모바일 기능을 통합하세요.

CI/CD 환경을 준비하는 방법

CI/CD의 기본 개념을 이해한 후, 환경을 설정하는 것이 다음 단계입니다. 이는 신뢰할 수 있는 자동화의 근간입니다.

도구 및 소프트웨어 설정

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

iOS 개발을 위해:

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

Android 개발을 위해:

  • Android Studio
  • Android SDK 33 이상
  • Java Development Kit (JDK)

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

xcode-select -p

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

Capacitor Framework Documentation Website

Your Capacitor 프로젝트는 CI/CD 워크플로우에 맞게 설정되어야 합니다. capacitor.config.ts 파일은 이 설정의 핵심입니다:

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

이 파일은 프로젝트가 CI/CD 요구 사항에 맞게 설정되도록 보장합니다.

환경 설정을 위한 설정

환경 변수를 관리하는 것은 CI/CD pipeline과 환경 설정을 연결하는 데 중요한 부분입니다.

정의해야 할 주요 변수:

  • BUILD_ENV: 배포 단계를 지정합니다 (예: production)
  • IOS_SIGNING_IDENTITY: code 서명 인증서
  • ANDROID_KEYSTORE_PATH: Android 키 스토어의 경로

Android 빌드에 대해 CI 프로세스 중에 동적으로 생성하는 local.properties 파일이 필요합니다.

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

iOS 빌드와 작업할 때는 CI 플랫폼이 macOS agent를 지원하는지 확인해야 합니다.

To check if your environment is ready:

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

__CAPGO_KEEP_0__ 앱의 앱 스토어 승인 확률을 높이기 위해 키와 자격 증명 관리가 중요합니다. 이는 이전 통계에서 언급된 바와 같이 앱 스토어 승인 거부의 가능성을 낮추는 데 도움이 됩니다. [1].

CI/CD PIPELINE을 설정하는 방법

__CAPGO_KEEP_0__ 환경이 준비되면, 다음 단계는 __CAPGO_KEEP_0__의 CI/CD PIPELINE을 설정하는 것입니다. Capacitor appCI/CD 환경에서 의존성 관리는 엄격한 버전 관리가 필요합니다. 시작하는 단계는 깨끗한 설치 프로세스입니다:

빌드 속도를 높이기 위해 의존성 캐싱을 사용하세요. 예를 들어,

Azure DevOps 사용자는 이 설정으로 빌드 시간이 40-60% 향상된다고 보고했습니다.

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

iOS 및 Android 빌드 설정 iOS 및 Android 빌드 설정은 __CAPGO_KEEP_0__ 앱의 빌드 프로세스를 완료하는 데 중요합니다. CI/CD PIPELINE을 설정하는 방법

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

CI/CD PIPELINE을 설정하는 방법은 __CAPGO_KEEP_0__ 앱의 빌드 프로세스를 완료하는 데 중요합니다.

이것은 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

Android 빌드 구성:

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앱 스토어 연결
안드로이드.aabGoogle Play 콘솔

정확하게 구성된 경우 파이프라인 실행 시간을 크게 줄일 수 있는 병렬 빌드 사용

빌드가 검증되고 패키징이 완료되면 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

__CAPGO_KEEP_0__ __CAPGO_KEEP_1__ Capgo CLI __CAPGO_KEEP_0__

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

__CAPGO_KEEP_0__ __CAPGO_KEEP_0__ __CAPGO_KEEP_0__

__CAPGO_KEEP_0__

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

__CAPGO_KEEP_0__ __CAPGO_KEEP_0____CAPGO_KEEP_0__

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

Capgo

__CAPGO_KEEP_0__ Features Overview설명
끝-to-끝 암호화__CAPGO_KEEP_0__
채널 기반 배포__CAPGO_KEEP_0__
단계별 배포__CAPGO_KEEP_0__

OTA 업데이트 지침

__CAPGO_KEEP_0__

배포 후에 다음 주요 지표를 추적하여 테스트 프로세스를 향상하세요:

단계별 배포 전략

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

__CAPGO_KEEP_0__

__CAPGO_KEEP_0__:

  • 수용률: 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"
  }
}

이러한 관행은 다음과 같은 메트릭을 통해 PIPELINE 성능 추적 및 개선에 대한坚固한 프레임워크를 제공합니다.

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

다중 환경 설정

다중 환경을 관리하는 것은 환경별 구성 사용으로 단순화될 수 있습니다. 예를 들어, 다음 환경 설정을 사용하세요.

환경__CAPGO_KEEP_0__ 파일 설정
개발.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의 채널 기반 배포와 이 설정을 pair하는 것은 환경에 따라 정확하고 정교한 업데이트를 허용하여 smoother 롤아웃과 다양한 환경에서 애플리케이션 동작에 대한 더 나은 제어를 보장합니다.

요약

CI/CD의 개발 역할

Capacitor 앱을 위한 CI/CD pipeline을 사용하면 워크플로의 효율성이 크게 향상됩니다. 업계 데이터에 따르면 팀은 iOS 및 Android 빌드를 동시에 수행함으로써 50-70% 빠른 릴리스 사이클을 달성할 수 있습니다. [3]자동화된 작업, 의존성 설치 및 플랫폼 동기화와 같은 작업은 배포 오류를 줄여줍니다. 40-60% [1][2].

예를 들어, Azure DevOps pipeline을 사용하는 팀은 순차적인 빌드 단계와 Xcode 패키징과 같은 자동화된 프로세스를 사용합니다. 또한 개발 및 프로덕션 환경에 대한 매개 변수화 된 환경을 사용합니다. 이 접근 방식은 Gradle 및 Xcode CLI 작업의 수동 작업이 필요하지 않도록 하여, 매번 신뢰할 수 있는 아티팩트 생성을 보장합니다.

이러한 개선 사항은 Capgo와 pair할 때 업데이트 관리를 단순화하는 데 기초가 됩니다.

Capgo for Update Management

Capgo는 CI/CD pipeline과 완벽하게 호환되며, 앱 스토어 정책 준수와 동시에 즉시 업데이트를 제공합니다. 업데이트는 pipeline 내에 구축된 자동화된 테스트 게이트를 통과한 후에만 배포됩니다.

자동화된 빌드와 phased rollouts를 combination하는 것은 다음과 같은 놀라운 결과를 달성합니다: 7일 이내 80%의 사용자 커버리지 1시간 이내 rollback 기능

병렬 배포 트랙을 실행하는 것이 일반적인 전략입니다. 자동화된 빌드는 내부 테스트를 위해 사용되며, phased rollouts는 사용자 세그먼트를 대상으로합니다. 이로써 업데이트는 빠르면서도 안전하며, rigorous한 자동화된 테스트 게이트에 의해 뒷받침됩니다. [1].

FAQs

Capacitor 앱을 만들려면 어떻게 해야 하나요?

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

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

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

    npx cap add ios
    npx cap add android
  3. 웹 code 동기화: 네이티브 플랫폼과 일치시킬 수 있도록 code 웹을 동기화하세요.

    npx cap sync

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

Capacitor 앱 CI/CD 설정

CI/CD 자동화 계획을 사용하는 경우, __CAPGO_KEEP_0__ CI/CD와 연결하세요. Capacitor CI/CD CI/CD 자동화 계획을 사용하는 경우, __CAPGO_KEEP_0__ CI/CD와 연결하세요. CI/CD 자동화 계획을 사용하는 경우, Capgo CI/CD와 연결하세요. 제품 워크플로우에서 Capgo CI/CD에 대해 Capgo 네이티브 빌드 제품 워크플로우에서 Capgo 네이티브 빌드에 대해 Capgo 통합 제품 워크플로우에서 Capgo 통합에 대해 CI/CD 통합 CI/CD 통합에 대한 구현 세부 사항, 그리고 GitHub 액션 통합 for the implementation detail in GitHub Actions Integration.

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

Capgo을 통해 웹-layer 버그가 생긴 경우, 앱 스토어 승인까지 며칠 기다리지 않고 바로 픽스를 배포할 수 있습니다. 사용자는 배경에서 업데이트를 받으면서 네이티브 변경 사항은 일반적인 리뷰 경로를 유지합니다.

시작하기

최신 블로그 글

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