# 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
