__CAPGO_KEEP_0__ 홈
CI/CD

Automatic Capacitor IOS build with GitHub actions with certificate

__CAPGO_KEEP_1__ 액션을 사용한 GitHub IOS 빌드 자동화하기

기사 저자

Donadieu 마틴

기사 작가

Valeria

기사 검토자

Jordan

편집자

Automatic Capacitor IOS build with GitHub actions with certificate

CI/CD를 위한 Capacitor 앱 설정은 복잡하고 시간이 많이 걸립니다. 알아야 할 사항은 다음과 같습니다.

우리는 __CAPGO_KEEP_0__ 빌드와 __CAPGO_KEEP_1__ __CAPGO_KEEP_2__를 사용하는 것을 추천합니다. Capgo 빌드와 Capgo CLI를 사용하여 네이티브 Capgo 빌드를 생성합니다. 이 Fastlane 가이드는 기존 Capacitor Actions pipeline을 유지 관리하는 팀에게 유지됩니다. 그러나 새로운 iOS 빌드는 __CAPGO_KEEP_1__ __CAPGO_KEEP_2__를 사용하여 Fastlane, Xcode runner, 인증서, 업로드 스크립트 유지 관리를 생략할 수 있습니다. This Fastlane guide is kept for teams maintaining existing GitHub Actions pipelines, but new iOS builds should use the Capgo CLI so you do not have to maintain Fastlane, Xcode runners, certificates, and upload scripts yourself.

Capgo Build for CI/CD by Capgo

__CAPGO_KEEP_0__ 빌드 Capgo 빌드는 CI/CD pipeline에서 이미 존재하는 signed 네이티브 iOS 빌드를 실행합니다: __CAPGO_KEEP_0__ 빌드는 pipeline과 함께 작동합니다.

  • : __CAPGO_KEEP_0__ 빌드를 __CAPGO_KEEP_1__ Actions, GitLab CI, Jenkins, 또는 로컬 스크립트에서 웹 빌드 후에 트리거하세요.: Trigger Capgo Build from GitHub Actions, GitLab CI, Jenkins, or local scripts after your web build and npx cap sync.
  • CI에서 인증하기: CI secret에 App Store Connect 키, 인증서, 배포 프로파일, 비밀번호 및 팀 ID를 저장하세요.
  • : __CAPGO_KEEP_0__ 빌드는 유지 관리되는 Apple 빌드 환경을 제공하므로 macOS 런너, Xcode 이미지 또는 Fastlane 경로를 관리할 필요가 없습니다.: Capgo Build provides maintained Apple build environments, so you do not have to manage macOS runners, Xcode images, or Fastlane lanes.
  • : QA에 서명된 아티팩트를 다운로드하거나 __CAPGO_KEEP_0__ __CAPGO_KEEP_1__를 통해 릴리스 빌드를 제출할 수 있습니다.: Download signed artifacts for QA or submit release builds through the Capgo CLI.

: __CAPGO_KEEP_0__ 플랜은 월 $12에 시작됩니다.

  • : Capgo 플랜은 월 $12에 시작됩니다. OTA 업데이트 및 약 15개의 네이티브 빌드가 포함됩니다.
  • : 추가 빌드 분량은 분당 크레딧으로 청구됩니다.
  • __CAPGO_KEEP_0__ 빌드를 CI/CD에 설정하세요

Set up Capgo Build in CI/CD

__CAPGO_KEEP_0__ plans start at $12/month

이것을 해야 합니다:

iOS를 위한 지속적인 배포를 Fastlane과 GitHub 액션 및 인증서와 함께

필요한 조건

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

가격 __CAPGO_KEEP_0__ 액션

https://GitHub.com/features/actions

https://github.com/features/actions

__CAPGO_KEEP_0__무료 __CAPGO_KEEP_0__
limit까지, 선택한 기계에 따라 다릅니다. 우리는 macOS 기계를 사용할 것입니다. 스크린샷에서 가격과 제한을 확인할 수 있습니다 (가격은 이 튜토리얼이 생성된 시점의 가격으로, 미래에 변경될 수 있습니다)

요구 사항과 가격에 대한 경고를 받은 후, 계속하세요.

주의: 이 포스트에서, 앱이 App Store Connect에 생성된 것으로 가정합니다. 중요한 정보는 Fastlane에 의해 복사됩니다!

이 튜토리얼에서 배울 내용

포스트에서 따르는 단계

  1. App Store Connect API를 Fastlane과 함께 사용하는 방법
    • 요구 사항:
      • App Store Connect API Key를 생성하는 방법
      • 애플 스토어 연결 API 키 사용
  2. Fastlane 파일 복사
  3. GitHub 액션 구성

1. 애플 스토어 연결 API을 사용하는 Fastlane

2021년 2월부터 모든 사용자가 애플 스토어 연결에 로그인하기 위해 2단계 인증 또는 2단계 인증이 필요합니다. 이 추가 보안 기능은 Apple ID에 대한 보안을 강화하여 사용자 계정에 대한 액세스를 제한합니다.
From 애플 지원

요구 사항

Fastlane이 애플 스토어 연결 API을 사용하여 앱을 업로드할 수 있도록 하려면 다음 세 가지를 제공해야 합니다. 세 가지 발급자 ID

  1. Issuer ID
  2. API ID
  3. API file or API content

App Store Connect API Key 발급

App Store Connect __CAPGO_KEEP_0__ Key를 생성하려면 App Store Connect에서 Admin 권한이 필요합니다. 권한이 없다면 관련 사람에게 이 글을 공유하세요.

  1. 로그인 App Store Connect.

  2. 선택 사용자 및 액세스.

App Store Connect 사용자 액세스

3 — 통합 탭을 선택하세요.

App Store Connect API 통합

  1. 생성 API Key 버튼 또는 (+) 버튼을 클릭하세요.

애플 스토어 연결 API 키 생성

  1. __CAPGO_KEEP_0__ 키 이름을 입력하세요. 키 이름은 키 자체의 일부가 아니며, 사용자만의 참조용입니다.

애플 스토어 연결 API 키 생성 이름

6 — 액세스에서 키에 대한 역할을 선택하세요. 키에 대한 역할은 팀 내 사용자에 대한 역할과 동일합니다. 자세한 내용은 역할 권한을 참조하세요. App manager.

  1. 생성하기를 클릭하세요.

API 키의 액세스는 특정 앱으로 제한할 수 없습니다.

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

애플 스토어 연결 키 다운로드

여기서 모든 세 가지 필요한 정보를 가져올 수 있습니다.
<1> 문제 ID. (APPLE_ISSUER_ID <2> 키 ID. (
<3> "다운로드 __CAPGO_KEEP_0__ 키"를 클릭하여 __CAPGO_KEEP_1__ 개인 키를 다운로드하세요. 개인 키가 다운로드되지 않은 경우 다운로드 링크만 표시됩니다. 애플은 개인 키의 복사본을 유지하지 않습니다. 따라서 개인 키를 한 번만 다운로드할 수 있습니다.APPLE_KEY_ID 개인 키를 안전한 장소에 저장하세요. 키를 공유하지 않도록 하며, 저장소에 키를 저장하거나 클라이언트 측 __CAPGO_KEEP_1__에 키를 포함하지 않도록 하세요.
<3> Click “Download API Key” to download your API private key. The download link appears only if the private key has not yet been downloaded. Apple does not keep a copy of the private key. So, you can download it only once.

🔴 Store your private key in a safe place. You should never share your keys, store keys in a code repository, or include keys in client-side code.

Using an App Store Connect API Key

The API Key file (p8 file that you download), the key ID, and the issuer ID are required in order to create the JWT token for authorization. There are multiple ways that this information can be passed into Fastlane. I chose to use the Fastlane’s new action app_store_connect_api_key다운로드한 p8 파일을 Base64로 변환하여 비밀로 저장하세요 ( secret)을 저장하세요.

Please convert the p8 file that you download to Base64 and store it as a secret (APPLE_KEY_CONTENT).

base64 -i APPLE_KEY_CONTENT.p8 | pbcopy

이제 앱 스토어 연결을 Fastlane으로 관리할 수 있습니다. API 키를 사용해 정말 좋습니다!

2. 인증서

XCode를 열고 설정 > 계정 > 애플 ID > 팀을 선택하세요.

Code 서명 식별자

클릭 인증서 관리.

인증서가 아직 없다면 인증서를 생성할 수 있습니다.

클릭 +Apple Distribution

Apple Distribution

그 다음 키 체인에 가서 인증서를 파일로 다운로드해야 합니다. .p12 이 작업을 수행하려면 키 체인에 가서 로그인 키 체인으로 switch하고 탭

을 선택해야 합니다. keychain 을 선택해야 합니다. 나의 자격 증명.

나의 자격 증명

그런 다음 원하는 인증서를 다운로드할 수 있는 인증서를 선택하세요. (인증서의 날짜를 기준으로 검색하세요.)

그런 다음 인증서의 개인 키를 오른쪽 클릭하고 선택하세요. Export.

파일 형식을 선택하세요. 개인 정보 교환 (.p12).

인증서를 Base64로 변환하기 위해 터미널에서 파일을 열어 사용하는 명령어입니다. .p12 비밀 키가 될 것입니다. 또한 인증서의 비밀번호를 제공할 때, 인증서의 비밀번호를 입력하세요. 이 비밀번호는

비밀 키가 될 것입니다. 또한 인증서의 비밀번호를 제공할 때, 인증서의 비밀번호를 입력하세요. 이 비밀번호는

base64 -i BUILD_CERTIFICATE.p12 | pbcopy

비밀 키가 될 것입니다. 또한 인증서의 비밀번호를 제공할 때, 인증서의 비밀번호를 입력하세요. 이 비밀번호는 BUILD_CERTIFICATE_BASE64 비밀 키가 될 것입니다. 또한 인증서의 비밀번호를 제공할 때, 인증서의 비밀번호를 입력하세요. 이 비밀번호는 P12_PASSWORD 비밀입니다.

3. 프로비전 프로파일

열기 애플 개발자 그리고 올바른 팀을 선택하세요.

그런 다음 새로운 프로파일을 만들려면 +

새로운 프로파일 만들기

그리고 선택하세요 앱 스토어 연결.

앱 스토어 연결 선택

그런 다음 올바른 앱을 선택해야 합니다. wildcard를 사용하면 signing이 실패할 것입니다.

올바른 앱 선택

선택한 인증서의 유효기간이 오늘 날짜와 일치하는지 확인한 후 생성한 인증서를 선택하세요. __CAPGO_KEEP_0__.

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

마지막으로 프로파일의 이름을 입력하고 __CAPGO_KEEP_0__.

프로파일의 이름은 Fastlane에서 프로파일을 식별하는 데 사용됩니다. APPLE_PROFILE_NAME.

__CAPGO_KEEP_0__

프로파일을 다운로드할 수 있습니다. .mobileprovision __CAPGO_KEEP_0__

프로파일을 Base64로 변환하고 비밀로 저장하세요.

__CAPGO_KEEP_0__BUILD_PROVISION_PROFILE_BASE64).

base64 -i BUILD_PROVISION_PROFILE.mobileprovision | pbcopy

4. Fastlane 파일 복사

Fastlane은 Ruby 라이브러리로 모바일 개발 작업을 자동화하는 데 사용됩니다. Fastlane을 사용하면 Android Studio에서 수행하는 일반적인 작업을 수행하는 일련의 '액션'을 포함하는 '레인'을 구성할 수 있습니다. Fastlane을 사용할 수 있는 많은 기능이 있지만 이 튜토리얼의 목적을 위해, 우리는 핵심 액션만 사용할 것입니다.

Capacitor/Ionic 프로젝트의 루트에 Fastlane 폴더를 생성하고 Fastfile을 추가하세요.

  • 폴더: <project-root>/fastlane/
  • 파일: <project-root>/fastlane/Fastfile

이것은 package.json, capacitor.config.*, 그리고 ios/ 폴더와 동일한 레벨입니다. __CAPGO_KEEP_0__ 폴더를 내부에 생성하지 마세요. ios/App/.

platform :ios do
  desc 'Export ipa and submit to TestFlight'
  lane :beta do
    keychain_info = { keychain_name: "ios-build-#{Time.now.to_i}.keychain", keychain_password: SecureRandom.uuid }
    
    begin
      setup_signing(keychain_info)
      bump_build_number
      build_app_with_signing(keychain_info)
      submit_to_testflight
    ensure
      cleanup_keychain(keychain_info)
    end
  end

  private_lane :setup_signing do |options|
    create_keychain(
      name: options[:keychain_name],
      password: options[:keychain_password],
      unlock: true,
      timeout: 0,
      lock_when_sleeps: false, 
      add_to_search_list: true
    )
    import_cert(options)
    install_profile
    update_project_settings
  end

  lane :bump_build_number do
		file = File.read('../package.json')
		data_hash = JSON.parse(file)
		api_key = app_store_connect_api_key(
      key_id: ENV['APPLE_KEY_ID'],
      issuer_id: ENV['APPLE_ISSUER_ID'],
      key_content: ENV['APPLE_KEY_CONTENT'],
      is_key_content_base64: true,
      duration: 1200,
      in_house: false
    )
		build_num = app_store_build_number(
      api_key: api_key,
			app_identifier: ENV['BUNDLE_IDENTIFIER'],
			live: false
    )
		build_num = build_num + 1
		UI.message("Bumped build number to #{build_num}")
		increment_build_number(
			build_number: build_num,
			xcodeproj: "./ios/App/App.xcodeproj",
			skip_info_plist: true
		)
	end

  private_lane :import_cert do |options|
    cert_path = "#{Dir.tmpdir}/build_certificate.p12"
    File.write(cert_path, Base64.decode64(ENV['BUILD_CERTIFICATE_BASE64']))
    import_certificate(
      certificate_path: cert_path,
      certificate_password: ENV['P12_PASSWORD'] || "",
      keychain_name: options[:keychain_name],
      keychain_password: options[:keychain_password],
      log_output: true
    )
    File.delete(cert_path)
  end  
  
  private_lane :cleanup_keychain do |options|
    delete_keychain(
      name: options[:keychain_name]
    )
  end  

  private_lane :install_profile do
    profile_path = "#{Dir.tmpdir}/build_pp.mobileprovision"
    File.write(profile_path, Base64.decode64(ENV['BUILD_PROVISION_PROFILE_BASE64']))
    UI.user_error!("Failed to create provisioning profile at #{profile_path}") unless File.exist?(profile_path)
    ENV['PROVISIONING_PROFILE_PATH'] = profile_path
    install_provisioning_profile(path: profile_path)
    File.delete(profile_path)
  end

  private_lane :update_project_settings do
    update_code_signing_settings(
      use_automatic_signing: false,
      path: "./ios/App/App.xcodeproj",
      code_sign_identity: "iPhone Distribution",
      profile_name: ENV['APPLE_PROFILE_NAME'],
      bundle_identifier: ENV['BUNDLE_IDENTIFIER'],
      team_id: ENV['APP_STORE_CONNECT_TEAM_ID']
    )
    update_project_team(
      path: "./ios/App/App.xcodeproj",
      teamid: ENV['APP_STORE_CONNECT_TEAM_ID']
    )
  end

  private_lane :build_app_with_signing do |options|
    unlock_keychain(
      path: options[:keychain_name],
      password: options[:keychain_password],
      set_default: false
    )
    build_app(
      workspace: "./ios/App/App.xcworkspace",
      scheme: "App",
      configuration: "Release",
      export_method: "app-store",
      output_name: "App.ipa",
      export_options: {
        provisioningProfiles: {
          ENV['BUNDLE_IDENTIFIER'] => ENV['APPLE_PROFILE_NAME']
        }
      },
      xcargs: "-verbose",
      buildlog_path: "./build_logs",
      export_xcargs: "-allowProvisioningUpdates",
    )
  end   

  private_lane :submit_to_testflight do
    api_key = app_store_connect_api_key(
      key_id: ENV['APPLE_KEY_ID'],
      issuer_id: ENV['APPLE_ISSUER_ID'],
      key_content: ENV['APPLE_KEY_CONTENT'],
      is_key_content_base64: true,
      duration: 1200,
      in_house: false
    )
    pilot(
      api_key: api_key,
      skip_waiting_for_build_processing: true,
      skip_submission: true,
      distribute_external: false,
      notify_external_testers: false,
      ipa: "./App.ipa"
    )
  end
end

5. 비밀 설정

GitHub Actions은 다음 단계에서 구성한 저장소 비밀을 사용합니다. 로컬 파일이 필요하지 않습니다. Fastlane을 로컬에서 실행하거나 테스트하려면 로컬 파일이 필요합니다. .env 로컬 테스트를 위해

__CAPGO_KEEP_0__ 폴더와 함께 <project-root>/fastlane/.env __CAPGO_KEEP_0__ Fastfile. 이 파일은 커밋하지 마세요. Add fastlane/.env.gitignore 첫 번째 (또는 이미 무시되어 있는지 확인하세요). 여기 예시가 있습니다.

APP_STORE_CONNECT_TEAM_ID=UVTJ336J2D
BUNDLE_IDENTIFIER=ee.forgr.testfastlane
# See previous section for these secrets
BUILD_CERTIFICATE_BASE64=
BUILD_PROVISION_PROFILE_BASE64=
APPLE_KEY_ID=
APPLE_ISSUER_ID=
APPLE_KEY_CONTENT=
P12_PASSWORD=
APPLE_PROFILE_NAME=

APP_STORE_CONNECT_TEAM_ID를 가져오기

Developer Center로 이동하세요. 스크롤 다운하여 부분을 찾으세요. Membership details 이 값은 Team ID secret APP_STORE_CONNECT_TEAM_ID 에 설정해야 하는 값입니다.

app-store-connect-team-id

BUNDLE_IDENTIFIER를 가져오기

  1. Xcode 열기
  2. 프로젝트 탐색기에서 이 아이콘을 두 번 클릭하세요. App 프로젝트 탐색기에서 이 아이콘을 두 번 클릭하세요.
  3. 그런 다음 탭을 클릭하세요. Signing and Capabilities
  4. secret에 설정해야 하는 값의 복사본입니다. Bundle identifierbundle-identifier-xcode BUNDLE_IDENTIFIER 6. 빌드 처리
Actions에서 __CAPGO_KEEP_0__에서 빌드 처리가 시작됩니다.

Actions에서 __CAPGO_KEEP_0__에서 빌드 처리가 시작됩니다.

Actions에서 GitHub에서 빌드 처리가 시작됩니다. Actions에서 __CAPGO_KEEP_0__에서 빌드 처리가 시작됩니다. Actions에서 __CAPGO_KEEP_0__에서 빌드 처리가 시작됩니다. 사용한 CI/CD 워크플로우 실행 시간에 따라 요금이 청구됩니다. 내 경험에 따르면 앱 스토어 연결에서 빌드를 처리하는 데 10-15분 정도 걸립니다.

개인 프로젝트의 경우, 빌드에 대한 예상 비용은 1분당 $0.08 x 15분 = $1.2, 또는 더 비용이 들 수 있습니다. 1분당 $0.08 x 15분 = $1.2또는 프로젝트의 구성 및 의존성에 따라 달라질 수 있습니다.

개인 프로젝트의 비용에 대한 걱정이라면, skip_waiting_for_build_processing 을 설정할 수 있습니다. true이렇게 하면 App Store Connect가 빌드를 처리하는 것을 기다리지 않고 빌드 시간을 절약할 수 있습니다.

그러나, 이 최적화는 사용자에게 빌드를 배포하기 전에 앱의 App Store Connect에서 수동으로 호환성 정보를 업데이트해야 하는 단점이 있습니다.

This optimization is mainly useful for private projects where build minutes cost money. For public/free projects, the build minutes are free so there’s no need to enable this setting. See GitHub’s 페이지를 참조하세요. 7.

7. Setup GitHub Actions

Configure GitHub secrets

이 비밀들을 __CAPGO_KEEP_0__ .env 에서 파일에서 복사하고 GitHub

로 이동하세요. 설정 &gt; 비밀 및 변수 &gt; 액션 &gt; 새로운 저장소 비밀

github-secrets

2. BUILD_CERTIFICATE_BASE64 - Base64로 인코딩된 인증서.

3. BUILD_PROVISION_PROFILE_BASE64 - Base64 encoded provisioning profile.

4. BUNDLE_IDENTIFIER - 앱의 번들 식별자.

5. APPLE_KEY_ID — App Store Connect API Key 🔺Key ID.

6. APPLE_ISSUER_ID — App Store Connect API Key 🔺Issuer ID.

7. APPLE_KEY_CONTENT — App Store Connect API Key 🔺 앱의 인증서 내용. .p8, 확인하십시오.

8. GitHub 워크플로 파일을 구성하십시오.

GitHub 워크플로 디렉토리를 생성하십시오.

cd .github/workflows

내부 폴더에서 파일을 생성하고 다음을 추가하십시오. workflow 파일 이름을 build-upload-ios.ymladd the following.

name: Build source code on ios

on:
  push:
    tags:
      - '*'

jobs:
  build_ios:
    runs-on: macOS-latest
    steps:
      - uses: actions/checkout@v6
      - name: Set Node.js
        uses: actions/setup-node@v6
        with:
          node-version: 24
          cache: npm
      - name: Install dependencies
        id: install_code
        run: npm ci
      - name: Build
        id: build_code
        run: npm run build
      - uses: actions/cache@v5
        with:
          path: ios/App/Pods
          key: ${{ runner.os }}-pods-${{ hashFiles('**/Podfile.lock') }}
          restore-keys: |
            ${{ runner.os }}-pods-
      - name: Sync
        id: sync_code
        run: npx cap sync
      - uses: ruby/setup-ruby@v1
        with:
          ruby-version: '3.0'
          bundler-cache: true
      - uses: maierj/fastlane-action@v3.1.0
        env:
          APP_STORE_CONNECT_TEAM_ID: ${{ secrets.APP_STORE_CONNECT_TEAM_ID }}
          BUNDLE_IDENTIFIER: ${{ secrets.BUNDLE_IDENTIFIER }}
          BUILD_CERTIFICATE_BASE64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }}
          BUILD_PROVISION_PROFILE_BASE64: ${{ secrets.BUILD_PROVISION_PROFILE_BASE64 }}
          APPLE_KEY_ID: ${{ secrets.APPLE_KEY_ID }}
          APPLE_ISSUER_ID: ${{ secrets.APPLE_ISSUER_ID }}
          APPLE_KEY_CONTENT: ${{ secrets.APPLE_KEY_CONTENT }}
          P12_PASSWORD: ${{ secrets.P12_PASSWORD }}
          APPLE_PROFILE_NAME: ${{ secrets.APPLE_PROFILE_NAME }}
        with:
          lane: ios beta
      - name: Upload release bundle
        uses: actions/upload-artifact@v6
        with:
          name: ios-release
          path: ./App.ipa
          retention-days: 10

이 워크플로우는 각 GitHub 후에 트리거되어야 합니다. 태그태그를 자동화하려면, 참조하십시오. 자동 빌드 및 릴리즈와 GitHub 액션 먼저.

그런 다음 이 워크플로우는 NodeJS 의존성을拉고, 그들을 설치하고 자바스크립트 앱을 빌드합니다.

각각의 새로운 커밋을 보낼 때마다, 테스트 플라이트에서 릴리즈가 빌드됩니다.

앱은 Ionic을 사용하지 않아도 되며, Capacitor 베이스만 필수입니다. 오래된 Cordova 모듈을 사용할 수 있지만, Capacitor 자바스크립트 플러그인은 선호됩니다.

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

커밋을 생성하세요.

커밋을 생성하세요. 커밋을 생성하세요.자동 빌드가 시작되면, 저장소에서 활성 워크플로를 볼 수 있습니다.

워크플로 트리거

새로운 커밋을 branch에 푸시하세요 main 또는 development Capacitor live-update alternatives 비교 페이지에서 볼 수 있는 긴 마케팅 또는 법적 문구입니다. Capgo 제품/브랜드 및 개발자 용어를 정확하게 유지하세요.

Appflow 비교/이동 마케팅 복사본에서 볼 수 있는 긴 마케팅 또는 법적 문구입니다. Capgo 제품/브랜드 및 개발자 용어를 정확하게 유지하세요.

Capawesome 비교 페이지에서 볼 수 있는 긴 마케팅 또는 법적 문구입니다. Capgo 제품/브랜드 및 개발자 용어를 정확하게 유지하세요.

컨설팅 서비스 페이지에서 볼 수 있는 섹션 서브 타이틀 또는 태그 라인입니다. Capgo 제품/브랜드 및 개발자 용어를 정확하게 유지하세요.

Appflow 비교/이동 마케팅 복사본에서 볼 수 있는 짧은 UI 레이블 또는 네비게이션 아이템입니다.

자동 빌드가 시작되면, 트리거 워크플로를 실행하세요.

커밋으로 시작했습니다.

CI/CD 설정 매뉴얼

대안 CI/CD 플랫폼

실시간 업데이트 및 배포

감사합니다

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

자동 Capacitor IOS 빌드와 GitHub 액션으로 인증서를 사용하여 계속 진행하세요

자동 __CAPGO_KEEP_0__ IOS 빌드와 __CAPGO_KEEP_1__ 액션으로 인증서를 사용하여 계속 진행하세요 자동 Capacitor IOS 빌드와 GitHub 액션으로 인증서를 사용하여 계속 진행하세요 __CAPGO_KEEP_0__ CI/CD와 연결하세요 Capgo CI/CD Capgo Native Builds Capgo Native Builds Capgo Integrations Capgo Integrations for the product workflow in Capgo Integrations, CI/CD 통합 CI/CD 통합 구현 세부 사항과 GitHub 액션 통합 CI/CD 통합 구현 세부 사항과 GitHub 액션 통합.

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

Capgo에서 웹-layer 버그가 활성화되면 앱 스토어 승인까지 며칠 기다리지 않고修정 패치를 배포하세요. 사용자는 배경에서 업데이트를 받으면서 네이티브 변경 사항은 일반적인 검토 경로를 따릅니다.

마틴의 인간 지원

시작하기

최신 뉴스

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