Skip to main content

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

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

마틴 도나디유

마틴 도나디유

컨텐츠 마케터

Capacitor 플러그인 AGP 9 빌드 오류 수정

AGP 9 업그레이드 후 Capacitor 플러그인이 Android Gradle Plugin 9 (AGP 9)으로 업그레이드 후 실패하는 경우, Gradle 구성 오류로 인해 발생하는 작은 문제를 해결해야 합니다.

이 포스트는 다음 검색 의도에 맞는 일반적인 내용을 제공합니다.

  • Capacitor 플러그인 빌드 오류 AGP 9
  • AGP 9 플러그인 빌드 실패
  • proguard-android.txt 찾을 수 없음
  • AGP 9 getDefaultProguardFile 오류
  • Capacitor AGP 업그레이드 후 안드로이드 빌드 실패

The short version:

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

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

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

What is Android in this context?

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

  1. Gradle Gradle 빌드 시스템으로 사용됩니다.
  2. Android Gradle Plugin (AGP) 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 기능을 노출하는 플러그인

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

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

What is 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 오류가 빌드 단계, 또는 빌드 단계 중에 발생하며, 종종 ProGuard 베이스 라인 리소스가 누락되거나 기본 파일 참조가 유효하지 않음을 나타냅니다. assemble, lint빠른 배경: ProGuard, R8, 및 베이스 라인 파일 build R8

Android 빌드에서 최신 __CAPGO_KEEP_0__ shrinker/optimizer입니다.

-> 현재 환경에서 권장되는 기본값인 최적화된 현대 베이스 라인

  • proguard-android.txt Typical symptoms include Gradle errors during
  • proguard-android-optimize.txt -> 빌드 단계, 또는

AGP 9 호환성을 위해 proguard-android-optimize.txt switching to

The one-line fix

Gradle 파일을 업데이트하고 앱 모듈을 업데이트하십시오:

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

최소한 다음을 확인하십시오:

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

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

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

만약 플러그인은 완전한 검증 스크립트를 가지고 있다면, 다음 명령어를 실행하세요:

bun run verify

모든 플러그인 저장소에 Batch 업데이트

만약 하나의 워크스페이스에서 많은 플러그인 저장소를 관리한다면, 자동화하세요:

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-safe입니다.

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

이것은 오늘도 빌드가 통과한다고 해도 중요합니다

You might not see failures immediately if:

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

그러나 결국, 정리된 빌드, 새로운 환경, 또는 업그레이드된 실행자로 문제가 드러난다. 현재의 마이그레이션을 통해 숨겨진 불안정성을 제거한다.

빌드가 여전히 실패하는 경우 문제 해결

다음 점을 확인하십시오:

  1. 모든 모듈이 패치되었다. 플러그인 모듈, 앱 모듈, 샘플, 템플릿 자산을 확인하십시오.

  2. 공유 스크립트 내에 두 번째 참조가 없다. 전체 레포지토리 (포함하여 커스텀 Gradle 스크립트)를 검색하십시오.

  3. 캐시가 정리되었다. ./gradlew clean 와 재빌드하십시오.

  4. AGP / Gradle / JDK 버전이 일치한다. Android 문서에서 지원하는 AGP 버전에 대한 combination을 사용하십시오.

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

  6. patch만 적용하지 않습니다. node_modules. 트래킹된 플러그인 소스만 고치고, 임시 의존성 디렉토리를 고치지 마세요.

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

AGP 9에서 __CAPGO_KEEP_0__ 플러그인 빌드 오류를 어떻게 고치나요? proguard-android.txt 대체:

대신:

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?

파일이 여전히 레거시 Gradle 구성으로 참조되고 있기 때문입니다. android/build.gradle legacy Gradle config in plugin files that still reference proguard-android.txt. AGP 9 프로젝트는 proguard-android-optimize.txt.

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

__CAPGO_KEEP_0__ 플러그인에 대해 유효성을 검사한 후, git grep 대표적인 플러그인에 대해 bun run verify:android 을 실행합니다.

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

아니요. deprecated ProGuard baseline 참조를 사용하는 Android 모듈(앱 또는 라이브러리)도 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 플러그인을 사용하는 경우 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 통합 CI/CD 통합 구현 세부 사항 GitHub Actions 통합 GitHub Actions 통합 구현 세부 사항

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

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

시작하기

블로그에서 최신 소식

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