# GUARDiA Messenger 빌드 이슈 이력 ## 이슈 1: android/ 폴더 → Bare Workflow 오인 (해결됨) **증상**: `EAS_BUILD_UNKNOWN_GRADLE_ERROR` **원인**: 로컬에서 `expo prebuild` 실행 시 `android/` 폴더 생성 → EAS 업로드 시 포함 → EAS가 Bare Workflow로 인식 → 로컬 android/ 사용 → EAS 환경과 불일치 → 실패 **해결**: ``` # .easignore에 추가 android/ ios/ ``` EAS는 `android/` 없으면 자동으로 `expo prebuild` + Gradle 빌드 수행. --- ## 이슈 2: PIL PNG + AAPT2 충돌 (해결됨) **증상**: `expo-splash-screen:packageReleaseResources` 단계 실패 **원인**: Python PIL이 생성한 PNG 파일 + `enablePngCrunchInReleaseBuilds=true` → AAPT2(Android Asset Packaging Tool v2) PNG cruncher가 처리 불가 **해결**: `plugins/withGradleProps.js` 생성: ```js const { withGradleProperties } = require('@expo/config-plugins') module.exports = function(config) { return withGradleProperties(config, (cfg) => { const props = cfg.modResults const set = (key, value) => { const idx = props.findIndex(p => p.key === key) idx !== -1 ? props[idx].value = value : props.push({ type:'property', key, value }) } set('android.enablePngCrunchInReleaseBuilds', 'false') set('reactNativeArchitectures', 'arm64-v8a') set('org.gradle.jvmargs', '-Xmx4096m -XX:MaxMetaspaceSize=1024m') return cfg }) } ``` `app.json` plugins에 `"./plugins/withGradleProps"` 추가. --- ## 이슈 3: expo-notifications 플러그인 (해결됨) **증상**: Firebase 관련 Gradle 빌드 실패 **원인**: `expo-notifications` 플러그인이 `google-services.json` 필요 **해결**: `app.json` plugins에서 `expo-notifications` 제거. 푸시 알림 구현 시 Firebase 프로젝트 설정 후 다시 추가. --- ## 이슈 4: expo-router/babel deprecated (해결됨) **증상**: babel 관련 경고/오류 **원인**: Expo SDK 51에서 `expo-router/babel` deprecated **해결**: `babel.config.js`: ```js module.exports = function(api) { api.cache(true) return { presets: ['babel-preset-expo'] } } ``` --- ## 현재 성공한 빌드 설정 - **빌드 ID**: 51096ada-9735-4ea8-9e81-5f5991731ea8 - **플랫폼**: Android - **프로필**: preview (APK) - **EAS 계정**: zioinfo - **프로젝트 ID**: ca2f72d6-7dda-4491-9590-7ace34b10a88