AndroidAABGitHubGitReactNative

GitHub에 AAB 올렸다가 용량 경고 받은 후 — 빌드 파일 로컬 버전관리로 전환하기

May 13, 20261 min read

왜 이 글을 쓰게 됐냐면

앱을 Play Store에 올리려고 AAB 파일을 빌드했다. 그리고 "버전 관리는 git으로!"라는 생각에 store/v1.0/app-release.aab를 커밋해서 GitHub에 올렸다.

그랬더니 푸시하자마자 이런 경고가 떴다.

remote: warning: File store/v2.0/app-release.aab is 63.80 MB;
remote: this is larger than GitHub's recommended maximum file size of 50.00 MB
remote: warning: GH001: Large files detected.
remote: You may want to try Git Large File Storage - https://git-lfs.github.com.

64MB짜리 파일 두 개를 올렸더니 GitHub에서 바로 노란불이 켜졌다.

사실 AAB/APK는 빌드 결과물이다. 소스코드가 아니라 컴파일된 바이너리다. 이런 파일은 git에 올리는 게 맞지 않다. .gitignore에 넣어야 할 대표적인 케이스다.


빌드 파일을 git에 올리면 안 되는 이유

이유설명
용량AAB는 보통 50~100MB. 버전이 쌓이면 repo 크기가 폭증
불필요한 diff바이너리 파일은 git diff가 의미 없음
재현 가능소스코드가 있으면 언제든 다시 빌드 가능
GitHub 제한100MB 초과 시 push 자체가 거부됨

해결 방법: 로컬 전용 폴더에서 버전 관리

GitHub에 올리지 않고, 로컬 폴더를 따로 만들어서 버전별로 정리하는 방식을 선택했다.

폴더 구조

~/Documents/workspace/apk_build_files/
└── tilt/
    ├── v1.0/
    │   └── app-release.aab   ← 초기 릴리즈
    └── v2.0/
        └── app-release.aab   ← 튜토리얼 추가 버전

프로젝트별로 폴더를 나누고, 그 안에 버전 폴더를 만들었다. 단순하지만 충분하다.


실제 작업 순서

Step 1 — 로컬 보관 폴더 생성 및 파일 이동

# 폴더 생성
mkdir -p ~/Documents/workspace/apk_build_files/tilt/v1.0
mkdir -p ~/Documents/workspace/apk_build_files/tilt/v2.0

# git 저장소에 있던 AAB 파일을 로컬 폴더로 이동
mv store/v1.0/app-release.aab ~/Documents/workspace/apk_build_files/tilt/v1.0/
mv store/v2.0/app-release.aab ~/Documents/workspace/apk_build_files/tilt/v2.0/

Step 2 — git에서 파일 제거

이미 커밋된 파일은 git rm으로 추적을 끊어야 한다. 로컬에서 파일을 지운 게 아니라 git 추적 목록에서만 빼는 것이다.

git rm -r store/v1.0/ store/v2.0/

Step 3 — .gitignore에 추가

앞으로 실수로 다시 올라가지 않게 .gitignore에 등록한다.

echo "store/v1.0/" >> .gitignore
echo "store/v2.0/" >> .gitignore

# 또는 패턴으로 한 번에
echo "store/v*/" >> .gitignore

Step 4 — 커밋 & 푸시

git add .gitignore
git commit -m "chore: AAB 빌드 파일 git에서 제거, 로컬 관리로 전환"
git push origin main

앞으로 새 버전 빌드할 때

# 빌드
./gradlew bundleRelease

# 결과물 복사
mkdir -p ~/Documents/workspace/apk_build_files/tilt/v3.0
cp android/app/build/outputs/bundle/release/app-release.aab \
   ~/Documents/workspace/apk_build_files/tilt/v3.0/

Play Store 업로드할 때는 apk_build_files/tilt/v3.0/app-release.aab를 쓰면 된다.


.gitignore에 미리 넣으면 좋은 것들 (Android/Expo 기준)

# 빌드 결과물
android/app/build/
*.apk
*.aab
*.keystore   # 서명 키도 절대 올리면 안 됨

# 로컬 버전 관리 폴더
store/v*/

특히 .keystore 파일은 GitHub에 올라가면 보안 사고로 이어질 수 있다. 빌드 결과물과 함께 반드시 gitignore에 포함시키자.


정리

항목방법
빌드 파일 보관로컬 전용 폴더 (apk_build_files/)
버전 구분폴더명으로 (v1.0/, v2.0/)
git 추적 제거git rm -r
재발 방지.gitignore에 패턴 추가

소스코드는 git으로, 빌드 결과물은 로컬로. 이게 기본 원칙이다.

PM

backtodev

40대 PM, 다시 개발자로 돌아갑니다. 실패하고 배우며 성장하는 기록.

GitHub에 AAB 올렸다가 용량 경고 받은 후 — 빌드 파일 로컬 버전관리로 전환하기 | backtodev