Capacitor 9은 Cloudflare에서 제공하는 Live Update를 통해 사용할 수 있습니다. next Capacitor 9의 공식 업데이트 가이드 official Capacitor 9 update guide and __CAPGO_KEEP_0__ 이미 도구 chain floor 및 API 제거가 가치 있는 early 처리해야합니다.
이 기사 준비 체크리스트: Capacitor 8 (또는 branch)에서 수행할 수 있는 작업이므로 최종 bunx cap migrate 패스 대신 고통스럽지 않게 하십시오. __CAPGO_KEEP_0__ 9로切换할 준비가되면 위의 라인에 따라 Ionic의 지침을 따르십시오.
도구 chain 및 플랫폼 floor (앱)
CI, 로컬 머신 및 스토어 pipeline을 위한 __CAPGO_KEEP_0__ 9 요구 사항을 계획하십시오.
| Area | Capacitor 9 요구 사항 |
|---|---|
| Node.js | 24+ (최신 LTS 권장; npm 11은 Node 24와 함께 배포됩니다.) |
| Xcode | 27+ |
| iOS 배포 대상 | 16.0+ |
| 안드로이드 스튜디오 | 2026.1.1+ |
| Android Gradle 플러그인 (AGP) | 9.2.1 |
| Gradle wrapper | 9.5.1 |
If you are still on Capacitor 8.4 or earlier for iOS, you also need the iOS에서 UIScene lifecycle Capacitor 8.5 업데이트에서 작업하세요. Cap 9에서 Xcode 27은 이를 기대합니다. 이미 8.5 버전을 사용 중이라면 이 추가 단계는 생략할 수 있습니다.
iOS에서 Swift 6 (Xcode 27)가 @UIApplicationMain; @main 업그레이드 후 AppDelegate.swift iOS에서 Swift 6 (Xcode 27)가
in
Capacitor 9 에서 Cordova 호환성 layer는 Cordova 플러그인을 설치한 경우에만 cap sync Cordova 플러그인을 설치한 경우에만 Cordova 플러그인이 설치되어 있지 않은 경우 Android는 CapacitorCordova Cordova 플러그인이 설치되어 있지 않은 경우 iOS는 Package.swift Cordova 플러그인이 설치되어 있지 않은 경우
이것은 업그레이드 후 앱 수준의 업그레이드 후 앱 수준의 custom native code Cordova Symbol을 실제 Cordova 플러그인이 없는 프로젝트에서 사용하는 경우
Android: gradle.properties 그리고 AGP 9 기본값
AGP 업그레이드 도우미가 종종 명시적인 gradle.properties 플래그를 작성하여 AGP 8 동작을 유지하도록 빌드를 유지합니다. Capacitor 9 앱은 제거 그것들을 대신 제거하는 것이 좋습니다. 대부분은 AGP 10 앞서 deprecated되었으며, 일부는 Cap 9 빌드에 문제를 일으킵니다 (예를 들어) android.builtInKotlin=false Kotlin 지원을 비활성화하여 AGP 9에서 제공하는 것, 그리고 android.sdk.defaultTargetSdkToCompileSdkIfUnset=false AGP가 추론하는 것을 중단합니다. targetSdkVersion).
이동할 때, 다음을 기대하십시오:
- 최소 버전을
variables.gradle(컴파일/타겟 SDK 37,minSdkVersion26, AndroidX 버전을 업데이트하십시오 — 공식 문서를 참조하십시오). - 명시적인
targetSdkVersion9.0으로 업그레이드build.gradle앱에서compileSdkVersion. - Declare
variables.gradle위치app/build.gradleDeclare - Gradle 9.6은 루트 프로젝트에서 암시적 조회를 deprecated하므로
core-ktxtoandroidx.core:core1.19.0+, 독립된 Kotlin Gradle 플러그인 사용을 중단하고jcenter().
diff hunks를 읽을 수 있습니다. 9.0으로 업그레이드 안드로이드 섹션에서 동일한 정리 작업을 branch에 적용한 후 Capacitor 버전을 업데이트하기 전에.
CLI: cap run --url
Capacitor 9은 live-reload host/port/https 플래그를 단일 인수로 통합합니다. --url 대신:
bunx cap run android -l --host 192.168.1.181 --port 5173
개발 서버가 출력하는 URL을 전달하는 대신:
bunx cap run android --url http://192.168.1.181:5173/
업그레이드 후 새로운 CLI에 대한 근성 있는 기억을 업데이트하고 README.snippet을 업데이트하십시오.
공식 플러그인: push와 splash의 gotchas
생산 앱에서 자주 나타나는 두 가지 사용자 인터페이스 변경 사항:
푸시 알림 (iOS): deprecated alert 표시 옵션은 제거되었습니다. 대신 banner 와/또는 list 표시 옵션을 사용하십시오.
스플래시 화면 (Android): 기본 launchFadeOutDuration 변경 사항은 200 ms에서 0 ms로이러한 변경 사항이 있으므로, 첫 번째 화면 로딩 지연을 숨기기 위해 fade 효과를 사용하는 경우, launchFadeOutDuration: 200 explicitly 설정을 해제하여 capacitor.config 시작 UI를 조정할 때까지
9.0 업데이트 가이드의 플러그인 섹션을 스캔하여 AndroidX 및 Google Play Services 버전 업데이트와 함께 공식 플러그인을 사용하는 경우 플러그인 유지 관리자: Cap 8에서 Cap 8를 깨지지 않으면서 Cap 8에서
만들어진 플러그인을 __CAPGO_KEEP_0__ 8에서 사용하는 경우
If you ship Capacitor plugins consumed on Capacitor 8 Cap 8에서 Cap 9-ready code을 위한 준비를 하세요, code에 초점을 맞춰 API의 API 제거, Cap-9 전용 패키징 변경에 초점을 맞추지 마세요.
Cap 8이 지원되는 동안 안전하게 수행할 수 있는 작업:
- Replace
@NativePluginwith@CapacitorPluginlegacy 권한/활동 결과 API를 __CAPGO_KEEP_0__ ( Cap 9.0 가이드 참조)로 대체하고@PermissionCallback/@ActivityCallbackRemove ,旧 table). - Remove
PluginCall.hasOption,Plugin.getConfigValue, oldCapConfig생성자와 접근자,PluginCall.save()/isSaved(), 그리고 Java 제거 목록에 나열된 “code에서 발생하는 변경 사항.” - iOS에서 사용하는 호환성 클래스와 deprecated helper를 중단하고
CAPBridgemigration table에서 typed 접근자 및 bridge 속성을 사용하십시오.CAPBridgeProtocol__CAPGO_KEEP_0__ 9에 대한 주요 버전을 내릴 때까지 Cap 8의 peer 의존성에서 컴파일이 가능하도록 유지하는 __CAPGO_KEEP_0__ 편집만 남겨두십시오.ApplicationDelegateProxy, typedPluginCall__CAPGO_KEEP_0__ 9을 준비하는 방법 - Run
bunx @capacitor/plugin-migration-v8-to-v9@latestCapacitor 9을 위한 API 9을 위한 준비
Capacitor 9을 위한 __CAPGO_KEEP_0__ 9을 위한 준비 방법 Cordova Capacitor 9을 위한 __CAPGO_KEEP_0__ 9을 위한 준비 방법 Package.swift Capacitor 9을 위한 Capacitor 9을 위한 준비 방법 Cap 8 프로젝트는 플러그인에 SPM 기반일 때 의존성을 기대합니다; 8을 아직 사용 중인 소비자에게는 8을 조기 삭제하면 깨집니다. Treat 선택적 Cordova / 불조건적 제거 Cordova 제품 그것은 Capacitor 9 전용 __CAPGO_KEEP_0__ 릴리스 라인 (또는 Cap 9+로 명시된 semver 메이저로 명시적으로 문서화됨), Cap 8을 지원 중단한 후 — 플러그인 가이드에서 설명한 대로, Cap 8 라인에 대한 예비 작업이 아닙니다.
동일한 규칙이 버그를 수정할 때도 적용됩니다. capacitor-swift-pm to 9.0.0-alpha.x in Package.swift그것은
Capgo 라이브 업데이트 및 네이티브 Cap 9 스토어 빌드
Capgo Live Update와 네이티브 Cap 9 스토어 빌드 Capgo가 제공합니다. 웹 번들 에어 업데이트; 네이티브 셸은 여전히 앱 스토어와 구글 플레이에서 오는 것입니다. Capacitor 9로 앱을 이동할 때:
- Ship 최소한 한 개의 스토어 빌드 Capacitor 9 네이티브 프로젝트 (iOS 및 Android)와 컴파일된 바이너리입니다. 이 바이너리는 네이티브 기본 Capgo 채널을 설정합니다.
- 사용자가 그 빌드를 사용할 수 있는 후에만 Cap 9 WebView 및 플러그인 동작에 테스트된 OTA 번들을 의존해야 합니다.
- 생산 채널을
metadata전략에 두고, 각 채널에 __CAPGO_KEEP_0__ 9 번들을 업로드하세요.--auto-min-update-version그 의도된 네이티브 기본선 업로드에 대해 생략--fail-on-incompatible변경되지 않아야 합니다.--fail-on-incompatible그리고--auto-min-update-version일상 OTA 업로드 후에. 자연어 + OTA 채널 워크플로우. - 채널 및 semver 규칙을 동기화하여 Cap 9 API를 사용하는 기기에서 아직 이전의 자연어 shell을 실행 중인 기기에서 Bundle을 푸시하지 않도록 합니다.
만약에 Capgo 빌드 역할: Capgo 솔루션 마케팅 페이지. before Capacitor 9 스토어 릴리스로 pipeline이 사용자 설치와 일치하도록 합니다. macOS macOS 런너는 Node 24+ 및 ; Linux Node 24+ 및 호스트 Android 도구를 사용하여 (Xcode는 macOS 전용입니다). 업그레이드 절차
설치된 도구를 CI 호스트 및 개발자 머신에 Node, Xcode, Android Studio, JDK로 업그레이드하세요.
- Cap 8 앱의 AGP 의존성, Gradle wrapper, 또는 다른 Android 프로젝트 파일을 Cap 9 값으로 업그레이드하지 마십시오. 이 프로젝트 변경 사항은 마이그레이션 단계에 속합니다. 하지 마세요 앱 __CAPGO_KEEP_0__ 및 플러그인 (특히 URL 처리 및 Android 브리지 사용)에서 deprecated native API를 수정하십시오.
bunx cap migrate업그레이드 절차 - 설치된 도구를 CI 호스트 및 개발자 머신에 Node, Xcode, Android Studio, JDK로 업그레이드하세요. app code와 플러그인 (특히 사용자 정의)
AppDelegateURL 관리 및 Android橋梁 사용) - 안드로이드 Gradle을 깨끗하게 유지하세요. 파일과 스크립트 (
gradle.properties, ProGuard 기본값 (--url개발 스크립트에서). - 코르도바 플러그인 사용을 감사하세요. 앱 수준에서 사용하지 마세요; Cap 9 전용 릴리스까지 Cordova 제품의 SPM 플러그인을 변경하지 마세요.
- Cap 9이 GA (또는 Cap 9을 수락한 경우)가 되면 (또는 Cap 9을 수락한 경우),
next(또는bun add -d @capacitor/cli@next릴리즈 후),@latest업데이트를 수행하세요.bunx cap migrate9.0으로 업데이트하세요. compare_step_build_text. - Cap 9 네이티브 빌드를 스토어에 게시하고, 매칭 채널에서 Capgo OTA 업데이트를 재개하거나 확장하세요.
Capacitor 9은 “최신 안드로이드 및 애플 도구 체인과 일치시키기 위해 deprecated를 정리하는 것입니다.” Cap 8에서 그 작업을 수행하면 업그레이드 차이점이 작고 플러그인도 8.x를 아직 지원하는 팀과 호환됩니다.