zioinfo-mail/app/.claude/skills/rn-screen-dev/references/build-issues.md
DESKTOP-TKLFCPR\ython 11c670f2a0 refactor: 101.79.17.164 → zioinfo.co.kr 전체 도메인 변환 + Manager UI 배포
- 37개 파일 IP → zioinfo.co.kr 치환 (소스/매뉴얼/설정/하네스)
- Manager DrConsole/NetworkConsole/CsapConsole 빌드 + /var/www/manager/ 배포
- 테스트: Manager HTTP 200, ITSM 신규 API 7개 전체 200

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 10:09:17 +09:00

84 lines
2.3 KiB
Markdown

# 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