__CAPGO_KEEP_0__

연속 통합 설정을 위한 Capacitor 및 Electron 앱

CapacitorJS 및 Electron 앱의 지속적 통합 설정을 마스터하세요. pipeline 설정, 서명, 아티팩트 관리 및 Capgo 라이브 업데이트에 대해 학습하세요.

Capacitor와 Electron 앱의 __CAPGO_KEEP_1__

__CAPGO_KEEP_0__ 앱 팀이 빌드 프로세스를 초과했을 때 일반적으로 알 수 있는 방법은 무엇입니까? alguien이 여전히 맥에 로그인하고 Xcode를 클릭하고 Android 아티팩트를 내보내고 Electron 패키지를 수동으로 서명하고 업로드된 빌드와 일치하는 branch를 기억하려고 시도하는 사람입니다. 빌드는 작동하지만, 빌드 프로세스를 기억하는 사람 중 한 명 또는 두 명이 빌드를 성공시키기 때문에만 작동합니다. 그들은 바쁘면 규모를 확장할 수 없습니다.

정확한 연속 통합 설정 연속 통합 설정은 불안정한 의식의 의식과 반복 가능한 pipe line으로 대체합니다. Martin Fowler의 CI 정의는 여전히 핵심 아이디어를 포착하고 있습니다. 팀원들은 일일 이상 코드베이스에 변경 사항을 병합하고, 자동 빌드에 의해 검증된 통합이 있기 때문에 오류가 빠르게 표면화됩니다. Fowler의 원래 연속 통합 에세이. 그 규율은 Capacitor와 Electron 앱에 더 중요합니다. 하나의 빌드는 웹 자산, 네이티브 wrapper, 서명 자격증서, live update 배포를 포함하는 동일한 실행에서 touch합니다.

목차

Capacitor와 Electron 앱은 실제 CI pipeline이 필요하다

개발자는 일반적으로 웹 빌드를 로컬에서 실행하고 Capacitor를同步하고 Xcode 또는 Android Studio를 열고 서명된 바이너리를 내보내고 공유 드라이브 또는 채팅 쓰레드에 패키지를 넣는다. 첫 번째 빌드가 한 기계에서만 작동하는 경우, 인증서가 경고 없이 만료되는 경우, 팀원들이 스테일 브랜치에서 배포하는 경우, 수동 단계가 기록되지 않았을 때 느린 속도가 아니다. 그것은 반복 가능성이 아니다.

속도만이 아니다. 반복 가능성이 아니다.

Fowler의 기본 규칙은 왜 이 프로세스가 붕괴되는지 설명한다. 신뢰할 수 있는 CI 설정은 모든 것을 버전 관리에 넣고 빌드를 자동화하고 빌드를 자체 테스트로 만든다. 빌드는 메인 라인에 푸시될 때마다 트리거되고 즉시 깨진 빌드를 고친다. 빌드는 빠르다. Fowler의 CI 지침CI pipeline을 강화하는 것과 앱을 강화하는 것은 다르다. 그것은 '테스트를 실행하는 것'에 관한 것이 아니라 릴리스 작업을 투명하게, 지루하게, 실수하기 어렵게 만드는 것이다.

실용적인 규칙: 릴리스가 somebody가 기억하는 로컬 명령에 의존한다면, 아직 pipe라인이 아니다.

Capacitor 팀은 3가지 장소에서 깨짐을 느끼게 된다. Native 프로젝트 파일은 웹 앱과 멀어지며, 서명 인증서는 민간 지식이 되고, 업데이트 경로가 복잡해지는데, 테스터에게 도달한 버전을 신뢰하지 못하기 때문이다. Electron 팀은 패키징이 로컬 OS 상태, 네이티브 의존성, 개발자의 ad-hoc 서명 설정에 의존할 때 벽에 부딪힌다.

실제 pipe라인은 공유된 진실의 원천을 제공한다. 동일한 체크를 매번 실행하고, 깨끗한 러너에서 실행하며, 변경된 내용을 알려주는 아티팩트와 로그를 남긴다. 그게 '우리가 만들었다'와 '우리가 정확히 무엇을 만들었는지 증명할 수 있다'의 차이이다.

왜 live update 워크플로가 자연스럽게 여기 맞는지

pipe라인이 reproducible하다면, live update 배포가 동일한 릴리스 규칙에 포함된다. 그 규칙은 별도의 스크립트를 실행할 때만 실행했던 것이다. 하이브리드 팀에게는 중요하다. 웹 자산, 자바스크립트 수정, 구성 변경은 앱 스토어 전체 주기 기다리지 않고 진행할 수 있다. 구조화된 CI 흐름은 한 번 빌드하고, 한 번 검증하고, 그 결과를 올바른 채널에 푸시할 수 있게 한다.

그것이 __CAPGO_KEEP_0__ CI 이점 개요가 그곳에 들어맞는 이유이다. 그 이유는 가치가 추상적이지 않다. 그것은 수동 패키징에서 제어된, 반복 가능한 배포로 이동할 수 있는 능력이다. 그 과정에서 변경된 내용에 대한 가시성을 유지할 수 있다. 그것이 Capgo's CI 이점 개요 그것이 __CAPGO_KEEP_0__'s CI 이점 개요

하이브리드 앱을 위한 올바른 CI 제공자의 선택

hybrid 앱의 경우, 제공자 선택은 순수 웹 작업과 비교하여 더 중요합니다. Linux 실행자만 필요로 하는 pipe라인은 npm install 좋은 제공자는 릴리스 경로에 맞아야 합니다. __CAPGO_KEEP_0__와 Electron 팀은 종종 native 앱 서명, artifact 전파, __CAPGO_KEEP_1__ 배포를 같은 pipeline에서 처리해야 하므로 CI 시스템은 이 단계를 분리할 수 있어야 하며 workflow를 감사하기 어려운 workflow를 만들지 않아야 합니다. 실행자 모델이 약하면 서명 자료가 자유롭게 복사됩니다. artifact 처리가 느슨하면 shipped된 제품에 대한 신뢰를 잃습니다. generic CI 지침은 일반적으로 이 부분을 생략합니다.

Capacitor Actions은 live update에 이미 존재하는 팀에게 적합합니다.

GitHub 액션은 이미 GitHub에서 일하는 팀에 적합합니다.

GitHub Actions is the lowest-friction choice if your source already lives in GitHub. Workflows sit beside the app code, which makes review and ownership straightforward, and the platform supports Linux, Windows, and macOS runners in the source-control and runner model described in CI tool comparisons GitHub Actions의 __CAPGO_KEEP_1__ 및 __CAPGO_KEEP_2__. iOS 빌드에는 macOS가 필요하고, Electron 패키징은 Linux 또는 Windows에서 더 잘 작동하는 경우가 많습니다. 또한 서명 비밀을 workflow에만 제한하는 것이 더 쉽습니다.

대안은 GitHub Actions가 모든 작업을 동일하게 처리할 때 노이즈가 많아질 수 있습니다. 이미 GitHub를 사용하는 팀은 code 리뷰, branch 보호, 및 릴리스 소유권을 위해 잘 작동합니다. 그러나 빌드, 레지스트리 및 배포 제어가 다른 곳에 존재하고 CI 시스템이 릴리스 프로세스를 더 많이 소유하고 싶다면 이 옵션은 덜 매력적입니다. 많은 모바일 팀은 workflow 파일과 code 리뷰가 같은 장소에서 발생하기 때문에 편리함이 이길 수 있습니다.

GitLab CI는 리포지토리와 배달이 함께 존재할 때 강력합니다.

GitLab CI는 리포지토리, pipeline 및 환경 추적이 하나의 장소에서 이루어지는 팀에게 적합합니다. 또한 공유 또는 자체 관리의 러너를 지원하며, 플랫폼 모델에서 배포 단계를 포함하고 있으므로, 같은 팀이 빌드, 스테이징 및 릴리스 오케스트레이션을 소유할 때 실용적입니다. GitLab CI 플랫폼 모델. 이 설정은 서명, 패키징 및 릴리스 승인과 같은 결정이 다른 시스템에 분산되지 않도록 분리할 때 도움이 됩니다.

조직의 균형점입니다. GitLab을 이미 사용 중인 팀은 소스 제어 및 레지스트리 저장소로 사용하고 있기 때문에 pipeline이 통합되어 감사하기 쉬운 느낌입니다. 그렇지 않다면 설정 비용이 편리성보다 더 커질 수 있습니다. 특히 macOS 실행자에 대한 iOS 서명이나 live update 배포를 동일한 릴리스 프로세스와 동기화하는 경우입니다. GitLab 패턴을 구체적으로 원하는 팀에게는 Capgo의 GitLab 빌드 및 릴리스 가이드 가 유용한 참고 자료입니다. 빌드 및 릴리스 단계가 함께 묶여있을 수 있음을 보여주기 때문입니다. 이로써 pipeline이 수동 체크리스트로 변하지 않도록 유지할 수 있습니다.

CircleCI는 호스팅된 유연성을 원하는 팀에 적합합니다.

CircleCI는 일반적으로 패키징 및 빌드 자동화에 강력한 생태계를 가진 관리된 실행과 함께 팀이 호스팅된 유연성을 원할 때 유용합니다. Cloud Executor와 Self-Hosted 옵션으로 CircleCI는 GitHub, GitLab, Bitbucket 레포지토리에서 포트 가능성을 제공하며, 이 포트 가능성은 고객이나 코드베이스를 이동하는 гиб리 팀에게 도움이 됩니다. CircleCI 실행 모델 . Capacitor 및 Electron 작업의 이점은 빌드 논리를 간결하게 유지하면서 제공자 기능을 사용하여 실행자 선택 및 작업 분리에 사용할 수 있기 때문입니다.

단점은 포트 가능성이 복잡성을 숨길 수 있다는 것입니다. macOS 서명, 아티팩트 프로모션 및 업데이트 배포를 추가하면 여전히 엄격한 비밀 관리와 명확한 작업 경계를 필요로 합니다. CircleCI는 호스팅된 실행자와 제공자 특정 워크플로 모델을 학습하는 것을 두려워하지 않는 팀에게 적합합니다.

기준 GitHub 액션 GitLab CI CircleCI
Capacitor/Electron 빌드 지원 GitHub 팀에 적합한 첫 번째 팀, macOS, Linux, Windows 실행자 GitLab에 이미 팀이 있는 경우 강력한 옵션 다중 SCM에서 호스팅된 강력한 지원
설정의 용이성 code이 이미 GitHub에 있다면 낮은 마찰 GitLab의 모든 스택이 있는 경우 플랫폼 통합이 좋지만 GitLab의 모든 스택이 있는 경우 플랫폼 통합이 좋지만
제공자에 따라 더 많은 설정을 알아야 하는 유연성 공개 GitHub 저장소에 가장 적합한 옵션 GitLab이 이미 시스템 레코드일 때 가장 좋은 가치 관리된 실행 대신 최소 설정 비용보다 자주 선택

비교 차트는 GitHub 액션, GitLab CI, CircleCI의 하이브리드 애플리케이션 빌드 기능을 보여줍니다.

code이 이미 존재하는 곳과 가장 자주 사용하는 러너 타입을 결정하면 일반적으로 올바른 선택이 됩니다. iOS 배포 압박을 받는 Capacitor 앱은 macOS에 쉽게 접근할 수 있는 이점을 누릴 수 있습니다. 예측 가능한 패키징을 가진 Electron-heavy 제품은 Docker 친화적인 작업과 아티팩트 처리를 우선시할 수 있습니다. 동일한 pipeline에서 라이브 업데이트도 배포하는 경우, 릴리즈 권한과 서명 단계를 쉽게 분리할 수 있는 제공자를 선택하세요.

비교하는 유용한 방법은 각 플랫폼에 대한 하나의 질문을 묻는 것입니다. native 작업을 실행할 수 있는지, 비밀을 제어할 수 있는지, 팀이 config를 읽을 수 있는지 여부를 묻는 것입니다.

Pipeline Configuration을 만들기

하이브리드 pipeline은 cheap check가 실패하기 전에 cheap check가 실패하기 전에 expensive runner가 필요할 때까지 기다리게 하면 가장 좋습니다. linting, unit test, web build는 macOS가 iOS를 컴파일하기 전에, Electron packaging이 signed artifact를 생성하기 전에 완료되어야 합니다. 이 순서는 broken change가 runner 시간을 소모하지 않도록하고, CI 패턴과 일치하여 빠른 check가 먼저, 더 무거운 suite가 나중에, 한 번에 빌드하고 나중에 단계를 통해 동일한 아티팩트를 승격하는 것을 반영합니다. Continuous Integration/Continuous Deployment 최적화 방법.

GitHub Actions shape이 실제로 견고합니다.

__CAPGO_KEEP_0__ Actions shape이 실제로 견고합니다.

  1. checkout
  2. 체크아웃
  3. 의존성 설치
  4. linting 및 단위 테스트
  5. native 프로젝트 동기화
  6. 플랫폼 아티팩트 패키징
  7. 아티팩트 업로드

그런 순서로 비용이 많이 드는 native 작업에서 code가 깨지지 않도록 유지하고, 캐시 동작이 더 쉽게 이해되도록 해준다. npm, Gradle, 그리고 패키지 매니저 캐시가 의존성 그래프가 이미 유효한 경우에만 중요하다.

프로젝트 세부 사항이 변경되어도 일반적으로 GitHub Actions 작업은 이 구조를 따르는 경우가 많다:

  • 한 번만 설치: Node 및 패키지 캐시를 복원하기 전에 npm ci.
  • 이른 유효성 검사: lint 및 단위 테스트를 native 빌드 전에 실행하기 전에
  • 웹 출력 빌드: Capacitor와 Electron이 모두 사용하는 자산 번들 생성
  • 플랫폼 작업으로 분기 iOS, Android, Electron 패키징은 공유 단계가 통과한 후에만 실행되도록 하세요.
  • 게시물 항목: 서별로 signed 출력물, 로그, 메타데이터를 업로드하세요.

공유 체크가 통과한 후에 native 작업을 지연시키면 실패 비용이 줄어듭니다.

모바일과 데스크톱 목표를 함께 배포하는 팀은 일반적인 pipeline과 노이즈가 많은 pipeline을 분리하는 데 일반적으로 이 분할을 사용합니다. Xcode 실패는 macOS 시간과 개발자 주의를 소비하기 때문에 비용이 많이 들지만 lint 작업 실패는 거의 비용이 없습니다. 모든 작업을 하나의 큰 작업에 포함시키면 signing, 업데이트 배포, 릴리즈 권한과 같은 실제 signing 작업을 처리하기 시작하면 나이가 들어갑니다.

GitLab과 CircleCI는 동일한 논리를 반영할 수 있습니다.

GitLab CI는 단계별 작업에 매핑되며, CircleCI도 동일한 논리를 반영하지만 구문이 다릅니다. 중요한 점은 모든 세 가지 도구에서 pipeline 형태를 유지하는 것입니다. 하나의 빌드 소스에서 다운스트림 작업으로 전달되며, 각 native 패키징 단계는 동일한 code 상태를 소비하여 다시 빌드하지 않습니다.

Docker를 사용하여 Electron 패키징을 수행하는 경우 컨테이너 이미지를 고정하여 환경이 재현 가능하도록 하세요. iOS 빌드를 수행하는 경우 macOS 작업을 분리하고 인증 단계와 컴파일 단계를 분리하여 실패 모드를 명확하게 하세요. Android 빌드를 수행하는 경우 Gradle 캐시를 안정화하고 관련 없는 패키지 설치를 같은 셸 단계에 혼합하지 마세요.

Capacitor-중심 버전의 설정에 대한 Capacitor pipeline 설정 가이드는 유용한 동반자입니다. Capgo의 pipe라인 설정 가이드 서별로 signed 출력물, 로그, 메타데이터를 업로드하세요.

A diagram illustrating a five-step continuous integration pipeline for building Capacitor and Electron applications using GitHub Actions.

Code 인증 및 아티팩트 관리

인증은 많은 좋은 PIPELINE이 실패하는 곳입니다. 빌드가 통과하고 패키지가 존재하고, 릴리즈가 죽는 이유는 인증서가 없거나 키 체인에서 인증서를释放하지 못했거나 올바른 아티팩트가 업로드되지 않았습니다. 해결책은 인증을 패키징의 부수적인 효과로 간주하는 대신, 제어된 단계로 다루는 것입니다.

iOS, Android, Electron은 각각 다른 처리가 필요합니다.

iOS 인증은 보통 인증서, 배포 프로파일, macOS 런너 상태를 의미합니다. Android는 키 스토어 관리와 Play 릴리즈 경로가 필요합니다. Electron은 code 인증서와 macOS에서 distributable 데스크톱 빌드에 대한 notarization이 필요합니다. 각 항목은 PIPELINE에서 처리되어야 하며, 개발자가 파일을 런너에 복사하는 대신에.

iOS의 경우, 팀은 fastlane match 또는 macOS 런너에 인증서를 수동으로 설치하는 것을 사용합니다. 중요한 것은 일관성이며, 특정 도우미가 아닌 것입니다. 개발자가 키 체인에 인터랙티브로 접근하는 워크플로가 있다면, 나쁜 시점에 결국 실패할 것입니다.

Android의 경우, 키 스토어를 저장소 외부에 두고 빌드 시 비밀로 주입하는 것이 좋습니다. Electron의 경우, 패키징 단계와 가까운 곳에서 인증 단계를 유지하여, 의도치 않게 오래된 아티팩트를 인증하는 것을 피할 수 있습니다.

실용적인 규칙: 릴리즈할 아티팩트를 정확하게 인증하고, 인증 후 아티팩트를 불변으로 유지하세요.

Artifact 관리는 추적 가능성을 보장해야 합니다.

Artifact 관리는 단순히 저장소만 아니다. 특정 커밋에서 어떤 바이너리가 왔는지, 어떤 채널로 전송되었는지 알 수 있어야 한다. 그 이유는 Fowler가 제공한 버전 정보를 표시하는 오래된 지침이 여전히 기업 CI 시스템에서 중요하기 때문이다. 빌드 ID, 배포 메타데이터, 릴리스 추적 가능성은 나중에 지원 질문에 대한 답변을 도와준다. Fowler의 버전 정보 표시.

롤백, 감사, 지원 재현을 위해 서명된 출력을 유지할 수 있는 기간 동안, 그러나 컨텍스트가 없는 오래된 릴리스를 남겨두지 마십시오. 정리된 이름 scheme, 커밋 SHA, 플랫폼 태그는 모두 도움이 됩니다. TestFlight, Google Play 내부 테스트, 또는 Electron 배포 버킷으로 pipeline이 업로드하는 경우 업로드 단계를 명확하게 하십시오. CI에서 무엇이 남아 있는지 검사할 수 있도록 하십시오.

Capgo의 인증 관리 지침 이것은 native signing과 update publishing에 동일한 discipline을 적용하는 이유입니다. 자격 증명은 안전하게 저장되어야 하며, 깨끗하게 회전되어야 하며, 로그에 반영되지 않아야 합니다.

pipeline에서 Capgo Live Update를 자동화하는 방법

Once the build is stable, live update publishing is often the part of the stack that saves the most time. Hybrid teams do not want to wait for a store review just to fix copy, ship a web bug fix, or flip a config flag. A CI-driven Capgo publish step handles those cases without turning the native release process into a bottleneck, and it keeps the update path tied to the same controls you already use for builds.

채널 기반 배포는 릴리스를 제어합니다.

배포는 가장 깨끗한 패턴입니다. 준비 개발 branch 준비 채널 only on tagged releases. That keeps testers on a predictable channel while making production pushes deliberate and reviewable. The pipeline should store the Capgo API key as a secret, install the CLI, bundle the latest web assets, and publish the update as part of the job.

제품 출시

  • 개발 branch push
  • 릴리스 태그 제품 출시 채널
  • 간단한 정책은 실제로 잘 작동합니다. 지속적인 통합 설정을 위해 rollout intent를 확인할 때까지 isolated 상태로 유지하세요.

CI and live updates reinforce each other because the pipeline already knows which commit it is building. Use that metadata in the Capgo publish step so the update history stays readable, especially when you need to answer which web payload went with a given native build.

업데이트 차이와 롤백 동작

https://Capgo.app에서 가져온 스크린샷

스크린샷에서 https://capgo.app

정확한 __CAPGO_KEEP_0__ Actions 패턴에 대해

GitHub의 __CAPGO_KEEP_1__ Actions 통합 가이드 Capgo의 GitHub 액션 통합 가이드 CI pipeline을 보호하는 방법

CI pipeline을 보호하는 방법

A 성공적인 pipeline도 여전히 안전하지 않을 수 있습니다. NSA와 CISA의 정부 지침은 CI/CD 보안을 최우선 문제로 다루며, 보안 스캔을 통합하고, 감사 로그를 유지하고, CI/CD 구성에 서명하고, SBOM 및 SCA를 사용하고, 비밀을 보호하여 평문으로 전송하지 않도록 하며, 재해 복구 테스트를 통해 고가용성을 구축하는 것을 권장합니다. NSA와 CISA의 CI/CD 강화 지침. 이 프레임은 실제 팀에서 잘못된 것을 설명하는 데 유용합니다. 유출된 토큰, 조작된 구성, 너무 광범위한 배포 접근 권한.

pipeline를 강화하는 것은 앱을 강화하는 것과 다릅니다.

많은 지침이 의존성 스캔에 대해 이야기하지만 CI 시스템 자체를 무시합니다. 그건 실수입니다. 만약 compromis된 러너가 비밀을 출력할 수 있고, 서명 단계를 조작할 수 있고, 업로드 전에 아티팩트를 교체할 수 있다면, 애플리케이션은 code 완벽하게 깨끗하고 여전히 안전하지 않은 제품을 배포할 수 있습니다. Secure pipeline design는 러너, 구성, 자격 증명을 프로덕션 자산으로 다루는 것을 의미합니다.

실제 제어는 다음과 같습니다:

  • pipeline 구성에 서명: 비인가된 워크플로 편집을 명확하게 하세요.
  • 비밀을 로그에서 제거: 평문으로 shell 출력을 통해 자격 증명을 전송하지 마세요.
  • 배포 권한을 제한: 제한된 branch 또는 tag만 프로덕션에 도달하도록 하세요.
  • 실행 기록 감사: 실행 기록을 재구성할 수 있도록 충분한 로그 세부 정보를 유지하세요.
  • 빌드 이미지를 및 종속성을 스캔: 특히 Electron 작업이 컨테이너화된 패키징을 사용하는 경우.

인증 및 환경 격리에는 discipline이 필요합니다.

OIDC 기반 클라우드 인증은 많은 현대 CI 설정에서 더 오랜 기간 동안 유효한 자격 증명보다 더 적합한 선택입니다. 이는 도난당한 토큰의 폭파 반경을 좁히고, 환경 계정과 제한된 프로덕션 액세스를 분리함으로써 의도치 않게 승격되는 것을 방지합니다. 이러한 패턴은 특히 모바일 릴리스 PIPELINE이 시간이 지남에 따라 의도치 않게 더 많은 권한을 accrete하는 경우에 잘 맞습니다.

CI PIPELINE을 보안하는 4가지最佳 관행에 대한 인포그래픽.

작업 PIPELINE이 여전히 쉽게 조작할 수 있다면, 그것은 여전히 위험이 될 수 있습니다. 보안 CI는 앱을 배포하는 것과 같은 디자인 작업이 필요하며, 규제 환경에서 그것은 선택이 아닙니다.

CI PIPELINE의 일반적인 실패와 해결 방법

Capacitor와 Electron 프로젝트의 대부분의 CI 실패는 몇 가지 반복되는 범인들의 증상입니다. npm 설치가 불안정하다면, 실행자 환경이 일반적으로 drift하고 있습니다. Xcode가 시간 초과하면, 작업이 일반적으로 native 빌드가 시작되기 전에 너무 많은 것을 수행하고 있습니다. Gradle이 메모리 부족을 경험하면, 패키징 단계가 일반적으로 하나의 실행자에서 너무 많은 것을 시도하고 있습니다.

증상에 따라 진단하십시오, 도구 이름에 따라 진단하지 마십시오.

불규칙한 종속성 설치 일반적으로 캐시 오염 또는 불안정한 lockfile 워크플로우를 의미합니다. 이를 해결하기 위해서는 clean install 명령어에 의존하고, 패키지 매니저 버전을 고정하고, 캐시 복원과 실제 설치 단계를 분리하는 것이 좋습니다.

Xcode 빌드 실패 일반적으로 runner 설정, 미설치된 시뮬레이터 런타임, 또는 인증 상태와 관련이 있습니다. macOS 작업을 시작할 때 환경 확인을 하며, 인증 단계를 분리하여 컴파일 타임과 인증 타임의 실패 여부를 판단할 수 있도록 하세요.

Gradle 메모리 문제 Android 및 웹 작업이 동일한 작업을 공유할 때 발생하는 것입니다. 작업 중복을 줄이고 Android 빌드 단계를 집중하고, 관련 없는 셸 명령어를 동일한 단계에 묻지 마세요.

Electron 패키징 오류 일반적으로 네이티브 모듈 불일치 또는 패키징 환경 내 시스템 의존성 누락으로부터 발생합니다. 빌드 컨테이너를 고정하고, 네이티브 의존성 설치를 확인하기 전에 패키징을 하며, 인증 후 재빌드하지 마세요.

빠른 해결책이 영웅적인 디버깅보다 낫습니다.

Capgo 공개 오류가 나타날 때, 첫 번째로 확인해야 하는 것은 pipeline가 보내는 버전과 채널 상태가 실제로 맞는지 여부입니다. 일치하지 않는 메타데이터는 자동화된 live update 흐름에서 혼란의 원인이 됩니다. 또한, 빌드 단계가 최종 자산을 생성한 후에 공개 단계를 위치시키세요. 그래야 partial output를 업로드하지 않습니다.

일관적으로 시간을 절약하는 몇 가지 습관이 있습니다:

  • Fail early: lint 및 단위 테스트를 네이티브 패키징 앞에 위치시키세요.
  • 병렬화 할 수 있을 때: iOS, Android, Electron 작업은 공유 웹 빌드 후에 기다릴 필요가 없습니다.
  • 아티팩트를 보이기 위해: 만약 출력을 검사할 수 없다면, 릴리즈를 신뢰할 수 없습니다.
  • 각 작업을 줄이기 위해: 한 작업은 잘 한다는 것을 보여줍니다.

만약 여러분의 하이브리드 앱 PIPELINE이 여전히 수동으로 서명, ad-hoc 업로드, 그리고 몇몇 사람들이 문서화되지 않은 단계를 알고 있는 사람들에 의해 유지되고 있다면, 그것은 빌드 대신 프로세스를 고치세요. Capgo는 Capacitor와 Electron 팀에게 서명된 라이브 업데이트를 자동화하고 릴리즈를 채널을 통해 라우팅하고, 같은 워크플로우 내부에 추적성을 유지하는 방법을 제공합니다. Visit Capgo __CAPGO_KEEP_0__

Capacitor 앱에 대한 즉시 업데이트

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

__CAPGO_KEEP_0__에서 인간 지원

시작하기

최신 블로그

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