메인 콘텐츠로 바로가기

Capacitor 플러그인 AGP 9 빌드 오류 해결

안드로이드 AGP 9 Capacitor 플러그인 빌드 오류를 빠르게 해결하세요. 프로가드-안드로이드.txt가 실패하는 이유를 알아보세요. 프로가드-안드로이드-최적화.txt를 사용하는 방법을 알아보세요. 그리고 Capgo은 안드로이드 그라드 플러그인 9 문제를 플러그인 전체에서 해결했습니다.

마틴 도나디유

마틴 도나디유

__CAPGO_KEEP_0__

Capacitor

__CAPGO_KEEP_0__ Capacitor __CAPGO_KEEP_0__

__CAPGO_KEEP_0__

  • Capacitor
  • __CAPGO_KEEP_0__
  • proguard-android.txt __CAPGO_KEEP_0__
  • __CAPGO_KEEP_0__ getDefaultProguardFile __CAPGO_KEEP_0__
  • Capacitor

The short version:

  • proguard-android.txt __CAPGO_KEEP_0__는 AGP 9 플러그인 빌드에서 더 이상 안전한 기본 기준이 아닙니다.
  • Switch to proguard-android-optimize.txt.
  • Rebuild and verify.

Capacitor를 유지하는 경우, 특히 많은 플러그인이나 큰 Capacitor 워크스페이스를 관리하는 경우 더 긴 버전도 중요합니다. 이 글에서는 다음과 같은 내용을 다룹니다.

  • 빌드 체인에서 Android와 AGP가 무엇인지
  • Capacitor는 무엇이며 플러그인 빌드가 어떻게 작동하는지
  • __CAPGO_KEEP_0__는 무엇이며 릴리스 신뢰성에 왜 중요하다는지 Capgo __CAPGO_KEEP_0__로 한 리포지토리나 여러 리포지토리에서 안전한 마이그레이션 전략
  • __CAPGO_KEEP_0__
  • __CAPGO_KEEP_0__

What is Android in this context?

Android Android는 운영 체제이자 빌드 생태계입니다. Android에서 Capacitor 앱 또는 플러그인을 배포할 때, 프로젝트는 다음 단계를 거칩니다:

  1. Gradle Gradle 빌드 시스템으로 사용됩니다.
  2. Android Gradle Plugin (AGP) Android에 특화된 Gradle 통합입니다.
  3. Android SDK toolchain은 패키징, 축소, linting, 및 출력을 생성하는 .aar, .apk또는 .aab 출력을 생성합니다.

AGP 버전이 변경될 때, 기본값 및 내부 파일도 변경될 수 있습니다. AGP 8에서 작동하던 플러그인 구성이 AGP 9에서 실패할 수 있습니다. 이는 제거된 또는 deprecated baseline에 대한 참조를 포함할 수 있기 때문입니다.

What is Capacitor?

Capacitor code은 iOS/Android 앱을 빌드할 수 있는 크로스 플랫폼 런타임입니다. 웹 code (TypeScript, JavaScript, HTML, CSS)과 native API를 호출할 수 있습니다.

Capacitor 앱은 일반적으로 다음을 포함합니다.

  • 웹层 (UI 및 비즈니스 로직)
  • 네이티브 셸 (ios/, android/)
  • JavaScript에 native 기능을 노출하는 플러그인

각 플러그인은 자신의 네이티브 빌드 구성이 있습니다. Android에서 이意味는 각 플러그인은 AGP가 올바르게 파싱하고 컴파일해야하는 android/build.gradle 파일이 포함됩니다.

플러그인 Gradle 설정이 outdated하면 앱 빌드 전체가 실패할 수 있습니다. 웹 code이 올바른 경우에도.

Capgo이란?

Capgo Capacitor은 Capacitor 전달 및 운영에 대한 도구를 제공합니다.

  • 실시간 업데이트 웹 번들 변경에 대한 실시간 업데이트
  • 플러그인 생태계 및 네이티브 기능 패키지
  • CI/CD 친화적인 업데이트 워크플로우를 위한 Capacitor 팀

실시간 업데이트와도 관계없이 네이티브 빌드의 안정성은 협상할 수 없습니다. 여전히 다음을 위해 깨끗한 안드로이드 빌드가 필요합니다:

  • 앱 스토어 / 플레이 스토어 출시
  • 네이티브 플러그인 업그레이드
  • 플랫폼 SDK 마이그레이션
  • 팀 온보딩 및 CI 신뢰도

AGP 9 호환성 수정은 중요합니다: 플러그인 레이어의 신뢰성을 유지하여 배달 PIPELINE이 예측 가능하도록 합니다.

AGP 9이 이전 플러그인 설정을 깨트리는 이유

많은 플러그인 템플릿은 역사적으로 사용했습니다:

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

In AGP 9 환경에서 이 레거시 베이스 라인 참조는 실패할 수 있습니다. 이전 파일이 더 이상 예상하는 위치에 보장되지 않기 때문입니다.

일반적인 증상은 Gradle 오류가 빌드 단계, 또는 assemble, lint단계에서 발생하며, 종종 ProGuard 베이스 라인 리소스가 누락되거나 기본 파일 참조가 유효하지 않음을指示합니다. build 빠른 배경: ProGuard, R8, 및 베이스 라인 파일

R8

-> 레거시, 최소 베이스 라인

  • proguard-android.txt -> 현재 환경에서 권장되는 기본 설정인 현대 최적화된 베이스 라인
  • proguard-android-optimize.txt -> modern optimized baseline (recommended default in current setups)

For AGP 9 호환성을 위해 proguard-android-optimize.txt 는 실용적인 해결책입니다.

한 줄로 해결하는 방법

플러그인 및 앱 모듈 Gradle 파일을 업데이트하십시오:

proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'

적어도 다음을 확인하십시오:

  • android/build.gradle 각 플러그인
  • example-app/android/app/build.gradle 플러그인 저장소
  • 새로운 플러그인 Gradle 구성이 생성되는 각 제네레이터/템플릿 파일

한 플러그인에 대한 마이그레이션 가이드

1. 이전 참조를 찾으십시오.

rg -n "proguard-android\\.txt" android example-app

2. 이를 대체하십시오.

perl -pi -e "s/proguard-android\\.txt/proguard-android-optimize.txt/g" \
  android/build.gradle example-app/android/app/build.gradle

3. Bun와 확인하십시오.

bun run verify:android

If your plugin has full verification scripts, run:

bun run verify

모든 플러그인 저장소에 일괄 업데이트하기

일부 워크스페이스에서 여러 플러그인 저장소를 관리하는 경우, 자동화하세요:

rg -l "proguard-android\\.txt" capacitor-* \
  --glob '!**/node_modules/**' \
  --glob '!**/.gradle/**' \
  --glob '!**/build/**' \
| xargs perl -pi -e "s/proguard-android\\.txt/proguard-android-optimize.txt/g"

그런 다음 트래킹 중인 플러그인 소스 중 아직 이전 파일을 사용하지 않는지 확인하세요:

for d in capacitor-*; do
  [ -d "$d/.git" ] || continue
  git -C "$d" grep -n "proguard-android\\.txt" -- || true
done

일치하는 항목이 없으면 트래킹 중인 플러그인 파일에서 이전 기준 참조가 삭제된 것입니다.

Capgo 배포 상태

Capgo 공식 Capacitor 플러그인 저장소 및 템플릿에 이 마이그레이션을 완료했습니다.

  • 플러그인 안드로이드 모듈은 이제 proguard-android-optimize.txt
  • 플러그인 예제 안드로이드 앱도 업데이트되었습니다.
  • 플러그인 스캐폴딩 템플릿이 업데이트되어 기본적으로 AGP 9이 안전합니다.

이것은 CI에 도달하기 전에 AGP 9 업그레이드 실패의 일반적인 클래스를 방지합니다.

이것은 오늘도 빌드가 통과하더라도 중요합니다.

즉시 실패를 보지 못할 수 있습니다:

  • CI 캐시가 여전히 문제를 가린다.
  • 프로젝트에 혼합된 AGP 버전이 있습니다.
  • 로컬 개발에서 일부 모듈만 다시 빌드됩니다.

그러나 결국, 정리된 빌드, 새로운 환경, 또는 업그레이드된 실행자에서 문제가 드러납니다. 현재 이주를 수행하면 숨겨진 불안정성을 제거합니다.

대체 후에도 빌드가 실패하는 경우 문제 해결

다음 점을 확인하세요:

  1. 모든 모듈이 패치되었습니다. 플러그인 모듈, 앱 모듈, 샘플, 템플릿 자산을 확인하세요.

  2. 공유 스크립트에 두 번째 참조가 없습니다. 전체 저장소 (포함하여 커스텀 Gradle 스크립트)를 검색하세요.

  3. 캐시는 깨끗합니다. Run ./gradlew clean 와 다시 빌드하세요.

  4. AGP / Gradle / JDK 버전이 일치합니다. Android 문서에서 지원하는 AGP 버전에 대한 combination을 사용하세요.

  5. CI는 동일한 버전을 사용합니다. CI에서 JDK 및 Gradle wrapper 버전을 고정하여 환경이동을 피합니다.

  6. 당신은 오로지 패치를 적용하지 않습니다. node_modules 트래킹된 플러그인 소스, 아닌 transient 의존성 디렉토리를 수정합니다.

SEO FAQ: AGP 9 Capacitor 플러그인 빌드 오류

AGP 9에서 __CAPGO_KEEP_0__ 플러그인 빌드 오류를 수정하는 방법은 무엇입니까? proguard-android.txt Replace:

With:

getDefaultProguardFile('proguard-android.txt')

그런 다음 clean rebuild를 실행합니다.

getDefaultProguardFile('proguard-android-optimize.txt')

Android Gradle Plugin 9로 업그레이드 후 __CAPGO_KEEP_0__ 플러그인 빌드가 실패하는 이유는 무엇입니까?

Why does my Capacitor plugin build fail after upgrading to Android Gradle Plugin 9?

대부분의 실패는 플러그인 파일에 남아있는 legacy Gradle config에서 오는 것입니다. android/build.gradle 대부분의 실패는 플러그인 파일에 남아있는 legacy Gradle config에서 오는 것입니다. proguard-android.txt. AGP 9 프로젝트는 proguard-android-optimize.txt.

AGP 9으로 많은 Capacitor 플러그인을 빠르게 마이그레이션하는 가장 빠른 경로는 무엇인가?

__CAPGO_KEEP_0__ 플러그인에 대해 작업할 때 워크스페이스 전체에서 검색 및 대체 명령을 사용하고, 대표적인 플러그인에 대해 git grep 을 실행하여 bun run verify:android 을 확인하세요.

이 문제는 Capacitor 플러그인만의 문제인가?

아니요. Android 모듈(앱 또는 라이브러리)에서 사용 중인 deprecated ProGuard baseline 참조가 AGP 9 빌드 오류를 일으킬 수 있습니다. 특히 플러그인 생태계에서 많은 저장소가 오래된 템플릿을 공유하기 때문에 특히 눈에 띄는 문제입니다.

이 마이그레이션에 관련된 키워드는 무엇인가?

내부 문서나 지원 페이지에 이 문제를 문서화할 때, 다음과 같은 용어를 포함하세요:

  • AGP 9 빌드 오류
  • Android Gradle Plugin 9 ProGuard 파일 누락
  • Capacitor 플러그인 Android 빌드 실패
  • proguard-android.txt __CAPGO_KEEP_0__
  • proguard-android-optimize.txt __CAPGO_KEEP_0__

최종 결론

AGP 9 문제는 간단하지만 멀티 플러그인 워크스페이스에서 쉽게 놓치기 쉬운 문제입니다. __CAPGO_KEEP_0__를 모든 관련된 곳에 대체하면 안드로이드 빌드가 예측 가능해집니다. proguard-android.txt __CAPGO_KEEP_0__ 플러그인을 사용하는 경우, 공식 저장소에서 이미 이 마이그레이션을 적용했기 때문에 업그레이드 시 더 많은 충격을 받지 않습니다. proguard-android-optimize.txt __CAPGO_KEEP_0__ 플러그인 AGP 9 빌드 오류 수정

Capgo 플러그인을 사용하는 경우 CI/CD 자동화 계획을 위해 연결합니다.

Capacitor 플러그인 AGP 9 빌드 오류 수정을 사용하여 CI/CD 자동화 계획을 연결합니다.

__CAPGO_KEEP_0__ 플러그인 AGP 9 빌드 오류 수정을 사용하여 CI/CD 자동화 계획을 연결합니다. Capacitor 플러그인 AGP 9 빌드 오류 수정을 사용하여 CI/CD 자동화 계획을 연결합니다. __CAPGO_KEEP_0__ 플러그인 AGP 9 빌드 오류 수정을 사용하여 CI/CD 자동화 계획을 연결합니다. Capgo CI/CD Capgo CI/CD Capgo Native Builds Capgo Native Builds Capgo Integrations Capgo Integrations CI/CD Integration CI/CD Integration GitHub Actions Integration GitHub Actions Integration

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

웹层 버그가 활성화된 경우 Capgo를 통해修정을 배포하는 대신 앱 스토어 승인까지 며칠 기다리지 말라. 사용자는 배경에서 업데이트를 받으면서 네이티브 변경 사항은 일반적인 검토 경로에 남아있다.

시작하기

블로그에서 최신 소식

Capgo는 전문적인 모바일 앱을 만들기 위해 필요한 최고의洞察력을 제공한다.