zioinfo-mail/workspace/guardia-messenger/.claude/skills/eas-build-deploy/SKILL.md
DESKTOP-TKLFCPR\ython 777e027553 refactor(structure): move app -> workspace/guardia-messenger
Permission denied on git mv, used robocopy instead.

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

89 lines
2.2 KiB
Markdown

---
name: eas-build-deploy
description: >
GUARDiA Messenger EAS Build 빌드 실행, 로그 분석, 배포 자동화 스킬.
APK/AAB/IPA 빌드, 빌드 실패 진단, .easignore 관리, Gradle 설정 최적화 담당.
트리거: EAS 빌드, APK 빌드, Android/iOS 빌드, 빌드 실패, Gradle 오류,
스토어 빌드, eas build 명령어 관련 모든 요청 시 반드시 사용.
---
# EAS Build 운영 가이드
## 빌드 전 체크리스트
```bash
# 1. android/, ios/ 폴더 없는지 확인
ls C:\GUARDiA\app\android 2>/dev/null && echo "경고: 삭제 필요" || echo "OK"
# 2. .easignore 확인
cat C:\GUARDiA\app\.easignore
# 반드시 포함: android/, ios/
# 3. withGradleProps.js 확인
cat C:\GUARDiA\app\plugins\withGradleProps.js | grep enablePngCrunch
# 반드시: false
# 4. EAS 로그인 확인
npx eas-cli whoami
```
## 빌드 명령어
```bash
cd C:\GUARDiA\app
# Android 테스트 APK (가장 빠름, ~10분)
npx eas-cli build --platform android --profile preview
# Android 스토어 AAB
npx eas-cli build --platform android --profile production
# iOS IPA (Apple Developer $99/년 필요)
npx eas-cli build --platform ios --profile production
# 빌드 상태 확인
npx eas-cli build:view {BUILD_ID} --json
```
## 빌드 실패 진단 절차
```bash
# 1. 빌드 ID로 로그 URL 추출
npx eas-cli build:view {BUILD_ID} --json | python3 -c "
import json,sys
d=json.load(sys.stdin)
print('status:', d.get('status'))
print('error:', d.get('error'))
for url in d.get('logFiles', []):
print('log:', url[:80]+'...')
"
# 2. 로그 다운로드 (압축 해제)
curl -s "{LOG_URL}" | gunzip | grep -E "ERROR|FAIL|Exception" | tail -20
```
## eas.json 설정
```json
{
"build": {
"preview": {
"distribution": "internal",
"android": { "buildType": "apk", "image": "latest" }
},
"production": {
"android": { "buildType": "app-bundle", "image": "latest" }
}
}
}
```
## 빌드 성공 APK 설치
1. Expo 빌드 URL을 **안드로이드 폰 브라우저**에서 열기
2. Download 버튼 탭
3. 설정 → 보안 → 알 수 없는 앱 허용 (최초 1회)
4. APK 설치
자세한 이슈 이력: `references/eas-troubleshoot.md`