iOS 앱을 빌드하는 전통적인 방법은 하나의 의미를 가지고 있습니다: Xcode가 필요하고 Xcode는 macOS를 의미합니다. 이러한 제약은 Windows 또는 Linux에서 팀이 모두 있는 경우나 Mac 빌드 머신을 유지 관리할 필요가 없는 경우가 있으면서도 불편합니다.
combination of Capacitor (iOS 프로젝트를 생성하기 위해) Capgo 빌드 (클라우드에서 컴파일하고 서명하기 위해) iOS 빌드를 Windows 워크스테이션에서 TestFlight 제출을 할 수 있게 해줍니다.
이 가이드는 팀에서 잘 작동하는 실용적인 워크플로우를 보여줍니다:
- 윈도우에서 일반 웹 프로젝트처럼 개발하세요.
- Keep
ios/Windows에서 Capgo와 Capacitor를 사용하여 iOS 앱을 빌드하는 방법 - 실행
cap syncCapacitor와 Capgo를 사용하여 iOS 앱을 빌드하는 방법 - Trigger an iOS cloud build with Capgo Build.
__CAPGO_KEEP_0__ 빌드를 사용하여 iOS 클라우드 빌드를 트리거하세요.
Capacitor 앱에는 두 가지 별도의 "빌드"가 있습니다.
- 웹 빌드 웹 빌드
- (JS/HTML/CSS): Windows에서 로컬로 수행합니다. (Xcode archive, signing, upload): Capgo 맥 하드웨어 클라우드에서 빌드합니다.
(Xcode 아카이브, 서명, 업로드): Capgo 빌드는 Mac 하드웨어에서 클라우드에서 수행합니다. ios/.
Prerequisites
- A Capacitor 앱 (어떤 프레임워크든 상관 없습니다.)
- 애플 개발자 계정.
- 앱 스토어 연결 액세스 (테스트 플라이트/앱 스토어 제출을위한) 앱.
- Capgo 계정과 API 토큰.
CAPGO_TOKEN).
1) 윈도우즈에서 Capacitor 앱을 만들거나 준비하세요.
웹 앱이 이미 있으면 Capacitor 단계로 건너세요.
Vite 예시:
bun create vite@latest my-app
cd my-app
bun install
빌드는 정적 자산을 생성해야합니다 (Vite의 경우 기본적으로): dist/ 2) __CAPGO_KEEP_0__ 및 iOS 플랫폼을 추가하세요.
bun run build
Capacitor 설치:
Capacitor 설치
bun add @capacitor/core @capacitor/ios
bun add -d @capacitor/cli
iOS 플랫폼 폴더를 초기화하고 생성하세요.
bunx cap init
bunx cap add ios
이 단계에서 Windows에서 Capgo와 Capacitor를 사용하여 iOS 앱을 빌드할 수 있습니다. ios/ directory. Git에 커밋하세요. Capgo Build는 내장된 것을 컴파일합니다. ios/버전이 관리되고 재현 가능한 것입니다.
3) iOS 빌드 전에 웹 자산을 항상 Sync합니다.
Windows에서 웹 앱을 변경할 때마다 이 순서를 따르세요:
bun run build
bunx cap sync ios
cap sync iOS 앱 빌드에 사용되는 native 프로젝트에 웹 앱 자산을 복사하는 것이며 (Capgo 빌드는 실제로 컴파일됩니다).
4) Capgo과 CLI을 설치하고 인증하세요.
Capgo Build는 Capgo CLI을 통해 트리거됩니다. bun을 사용하여 bunx:
bunx @capgo/cli@latest login
또는 shell/CI에서 환경 변수를 통해 토큰을 설정하세요
export CAPGO_TOKEN="your_api_key_here"
5) Cloud 빌드에 대한 iOS Signing을 구성하세요.
iOS 빌드를 위해서는 서명 자료가 필요합니다.
- 애플 배포 인증서 ("Apple Distribution certificate"는 iOS 앱 배포를 위해 필요합니다.
.p12( - 및 비밀번호)
.mobileprovision) - 애플 스토어 연결 API 키 ("
AuthKey_XXXXXX.p8( )
If you still need to generate these files, follow the Capgo documentation:
- Key ID, Issuer ID, Team ID) 이 파일들을 생성해야 한다면, __CAPGO_KEEP_0__ 문서를 참조하십시오:
- 인증 정보 관리
(저장해야 하는 것과 방법)
파일을 로컬로 가져온 후 Capgo 빌드:
bunx @capgo/cli@latest build credentials save \
--platform ios \
--certificate ./cert.p12 \
--p12-password "password" \
--provisioning-profile ./profile.mobileprovision \
--apple-key ./AuthKey.p8 \
--apple-key-id "KEY123" \
--apple-issuer-id "issuer-uuid" \
--apple-team-id "team-id"
가장 쉬운 방법은: Mac이든, 동료가든, 일회용 임대가든, 한번 생성/내보내서 이후에는 Windows에서 재사용하는 것입니다. build credentials save command.
6) Windows에서 iOS 빌드를 트리거하세요.
앱 폴더에서:
bun run build
bunx cap sync ios
bunx @capgo/cli@latest build com.example.app --platform ios --build-mode release
터미널에서 실시간 로그를 볼 수 있습니다. App Store Connect 키가 설정되어 있다면 Capgo 빌드는 자동으로 테스트 플라이트에 결과 빌드를 제출할 수 있습니다.
7) 빠른 반복: 웹 전용 변경 사항에 대한 Live 업데이트
Capgo 빌드는 네이티브 변경 사항에 대한 것입니다:
- Capacitor 플러그인을 추가/제거하는 경우
- 네이티브 권한을 변경하는 경우
- 아이콘/스플래시를 변경하는 경우
- Capacitor를 업데이트하는 경우
- Swift/Objective-C 변경 사항
일상적인 UI 조정 및 JavaScript 수정을 위해, 일반적으로 Live Updates를 원합니다. 라이브 업데이트 (OTA), 따라서 매번 네이티브 바이너리를 다시 빌드하지 않습니다.
좋은 팀 워크플로우는 다음과 같습니다.
- Live Update를 자주 변경되는 웹 변경 사항에 사용하세요.
- Capgo 빌드를 자주 사용하지 마세요. 네이티브 변경 사항이 필요할 때만 빌드하세요.
윈도우즈의 일반적인 오류 (및 해결 방법)
- Forgetting
cap syncUI 변경 사항이 iOS 빌드에 나타나지 않는다면, 웹 앱을 빌드했지만 __CAPGO_KEEP_0__ Build를 실행하지 않았을 가능성이 있습니다.ios/. - 변경 사항을 커밋하지 않음
ios/Capgo Build는 네이티브 프로젝트를 컴파일합니다. Git에 폴더가 없거나 (또는 빌드 컨텍스트에 없다면) 빌드는 앱을 재현할 수 없습니다. - 네이티브 빌드 없이 플러그인 변경플러그인을 추가하는 것은 네이티브 변경 사항입니다. Capgo Build를 실행하고 (및 스토어 제출) 플러그인 변경 사항을 반영하세요.
요약
윈도우에서 Xcode를 실행할 수 없습니다, 그러나 그러나 윈도우에서 iOS 앱을 배포할 수 있습니다:
- 웹 앱을 Capacitor (Capacitor)로 wrapping하세요.
ios/웹 앱을 __CAPGO_KEEP_0__ ( - 로 wrapping)합니다.
cap sync. - Capgo 빌드를 사용하여 CLI에서 iOS 바이너리를 컴파일, 서명, 제출하세요.
윈도우에서 iOS 앱을 빌드하는 Capacitor 과 Capgo 과 함께 계속 진행하세요.
__CAPGO_KEEP_1__에서. Build an iOS App from Windows with Capacitor and Capgo Build CI/CD 자동화 계획을 세우고 연결하세요 Capgo CI/CD Capgo CI/CD workflow를 위한 Capgo 네이티브 빌드 Capgo 네이티브 빌드 workflow를 위한 Capgo 통합 Capacitor Capgo 빌드에서 Windows에서 iOS 앱을 빌드하는 제품 워크플로우에서 Capgo 통합. __CAPGO_KEEP_0__ CI/CD workflow를 위한 CI/CD 통합 GitHub 액션 통합 for the implementation detail in GitHub Actions Integration.