본문으로 바로가기

Capacitor 앱을 위한 CI/CD 설정

iOS와 Android 앱 릴리스를 위한 CI/CD PIPELINE을 설정하는 방법을 배워보세요. 효율성을 높이고 오류를 줄이세요.

CI/CD 설정을 위한 Capacitor 앱 구성

iOS와 Android 앱 릴리스를 더 빠르고 오류가 없는 방법을 원하세요? CI/CD PIPELINE Capacitor CI/CD PIPELINE을 설정하면 빌드, 테스트, 배포를 자동화하여 릴리스 시간을 70%까지 단축하고 오류를 60%까지 줄일 수 있습니다. 이 가이드에서는 환경 설정부터 라이브 업데이트 자동화까지 모든 것을 다룹니다. Capgo.

중요한 점:

  • CI/CD PIPELINE이 앱 릴리스에 왜 중요한가요? Capacitor 앱: 78%의 빌드 속도 향상과 60%의 스토어 거부 감소.
  • 필수 도구: Xcode, 안드로이드 스튜디오, CocoaPods, 및 더 많은 것들.
  • pipeline 설정: 자동화 작업들인 npx cap sync, 의존성 캐싱, 및 플랫폼 특정 빌드.
  • Live 업데이트와 Capgo: 릴리스 후 업데이트를 활성화하고 phased 롤아웃 및 롤백 보장과 함께.

빠른 설정 단계:

  1. 환경 준비: iOS 및 Android용 필요한 도구 설치.
  2. 프로젝트 설정: 업데이트 capacitor.config.ts 및 환경 변수를 안전하게 관리.
  3. 빌드 PIPELINE: 양쪽 플랫폼에 대한 의존성 설치, 빌드 및 테스트를 자동화.
  4. 성능 최적화: 캐싱, 병렬 빌드 및 조건부 워크플로우 사용.
  5. 라이브 업데이트 추가: Capgo를 사용하여 phased rollouts를 지원하는 안전하고 OTA 업데이트를 통합.

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

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

CI/CD 환경을 준비하세요

CI/CD의 기본적인 개념을 이해한 후, 환경 설정을 시작하세요. 이는 신뢰할 수 있는 자동화의 근간입니다.

도구 및 소프트웨어 설정

다음과 같은 주요 도구가 설치되어 있는지 확인하세요:

iOS 개발을 위한 경우:

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

안드로이드 개발에 대해:

  • 안드로이드 스튜디오
  • Android SDK 33 이상
  • Java 개발 키트 (JDK)

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

xcode-select -p

생성하는 Capacitor Project

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

Capacitor 프로젝트는 CI/CD 워크플로우를 위해 정확히 구성되어야 합니다. capacitor.config.ts __CAPGO_KEEP_0__

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

__CAPGO_KEEP_0__

Capacitor 앱을 위한 CI/CD 설정

CI/CD pipeline과 환경 설정을 연결하는 데 사용하는 환경 변수를 관리하는 것은 보안 인증서를 안전하게 관리하는 데 중요합니다.

정의해야 할 주요 변수:

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

Android 빌드의 경우 CI 프로세스 중에 동적으로 생성하는 파일: local.properties iOS 빌드와 작업할 때 CI 플랫폼이 macOS agent를 지원하는지 확인합니다.

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

CI/CD pipeline을 생성하는 방법

환경이 준비되어 있는지 확인하려면

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

CI/CD pipeline을 생성하는 방법 [1].

CI/CD pipeline을 생성하는 방법

환경이 준비되면 다음 단계는 __CAPGO_KEEP_0__ 앱의 CI/CD PIPELINE을 설정하는 것입니다. Capacitor 앱CI/CD 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 빌드 설정:

Android 빌드 설정:

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

iOS 빌드 구성:

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 구글 플레이 콘솔

parallel 빌드 사용하면 pipeline 실행 시간을 크게 줄일 수 있습니다.

Once your builds are validated and packaged, you’re ready to move on to live updates with Capgo (discussed in the 다음 섹션).

sbb-itb-f9944d2

Adding Capgo 실시간 업데이트 위해

Capgo Live Update 대시보드 인터페이스

CI/CD 프로세스를 향상시키기 위해 Capgo을 통합하는 것은 릴리스 후 업데이트 기능을 제공합니다. 설정 방법은 다음과 같습니다.

Capgo PIPELINE 설정

Capacitor CLI globally using npm. Capgo CLI pipeline 환경에서

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 기능 개요

Feature 기능
설명 끝-to-끝 암호화
채널 기반 배포 특정 환경에 맞춰 업데이트를 조정합니다.
단계별 배포 업데이트가 점진적으로 배포되도록 보장합니다.

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%를 목표로 하세요.
  • Crash-free sessions: 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 성능 향상을 위한 3 가지 주요 영역을 집중하면 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 성능 추적 및 개선에 대한坚固한 프레임워크를 제공합니다:

  • 스테이지당 빌드 시간
  • 캐시 효율성 (히트/미스 비율)
  • 최대 자원 사용량

멀티 환경 설정

여러 환경을 관리하는 것은 환경별 구성으로 단순화할 수 있습니다. 예를 들어 다음과 같은 환경 설정을 사용할 수 있습니다:

환경 구성 파일
개발 .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

Pairing these configurations with Capgo’s channel-based deployment allows for precise, environment-specific updates. This ensures smoother rollouts and better control over application behavior in different environments.

요약

개발의 역할

Capacitor 앱을 위한 CI/CD pipeline을 사용하면 workflow의 효율성이 크게 향상됩니다. 업계 데이터에 따르면 팀은 50-70% 빠른 릴리즈 사이클 iOS와 Android 빌드를 동시에 수행함으로써 [3]. 40-60% [1][2].

For instance, teams leveraging Azure DevOps pipelines have automated processes such as sequential build steps and Xcode packaging. They also use parameterized environments for both development and production. This approach removes the need for manual Gradle and Xcode CLI operations, ensuring reliable artifact creation every time.

These improvements lay the groundwork for streamlined update management when paired with Capgo.

Capgo for 업데이트 관리

Capgo은 CI/CD pipe라인과 완벽하게 연동되어 앱 스토어 정책에 부합하는 즉각적인 업데이트 제공을 가능하게 합니다. 업데이트 는 pipe라인 내에 구축된 자동화된 테스트 게이트를 통과한 후에만 배포됩니다.

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

일반적인 전략은 병렬 배포 트랙을 실행하는 것입니다. 자동화된 빌드는 내부 테스트를 위해 사용되며, phased 롤아웃은 사용자 세그먼트를 대상으로 합니다. 이로써 업데이트는 빠르면서도 안전하며, rigrous한 자동화된 테스트 게이트에 의해 뒷받침됩니다. [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 섹션을 참조하세요.

CI/CD 설정을 위한 Capacitor 앱 설정을 계속하세요.

__CAPGO_KEEP_0__을 사용하고 있다면 CI/CD 자동화 계획을 위한 Capacitor __CAPGO_KEEP_0__ CI/CD와 연결하세요. Capgo CI/CD Capgo 네이티브 빌드에서 제품 워크플로우를 설정하세요. Capgo 네이티브 빌드 Capgo CI/CD Capgo 통합 Capgo 통합을 위한 제품 워크플로우 CI/CD 통합 CI/CD 통합을 위한 구현 세부 정보 GitHub 액션 통합 GitHub 액션 통합을 위한 구현 세부 정보

Live updates for Capacitor apps

웹-layer 버그가 실시간으로 활성화되면, 앱 스토어 승인 대기 없이 Capgo를 통해 패치를 배포하세요. 사용자는 배경에서 업데이트를 받으며, 네이티브 변경 사항은 일반적인 검토 경로를 유지합니다.

최신 블로그 게시물

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