Skip to content

Android Release

Barbelic Android 앱의 서명·번들·Google Play 등록 runbook. 빌드 환경은 android-setup.md를 먼저 따른다.

서명 (Play App Signing)

Play App Signing을 쓴다: Google이 앱 서명 키를 보관하고, 우리는 업로드 키로만 번들에 서명한다. 업로드 키를 잃어도 Play Console에서 재설정할 수 있다.

  • 업로드 키스토어는 레포 밖에 둔다. 이 머신: D:\LiftGuild-2026\secrets\barbelic-android-upload.jks (alias barbelic-upload, RSA 4096, 2054년 만료). 비밀번호는 같은 폴더의 barbelic-android-keystore.properties에 있다. 백업은 오너가 별도 보관한다.
  • android/keystore.properties(git 제외)에 그 properties 파일 내용을 복사하면 app/build.gradlesigningConfigs.release가 읽는다. 파일이 없으면 서명 없는 번들이 나온다(Play 업로드 불가).
  • 키스토어·keystore.properties·*.jksandroid/.gitignore로 막혀 있다. 커밋 금지.

번들 만들기

bash
npm ci
npm run build
npm run android:sync
npm run android:bundle        # android/app/build/outputs/bundle/release/app-release.aab

서명 확인:

bash
jarsigner -verify android/app/build/outputs/bundle/release/app-release.aab

업로드마다 android/app/build.gradleversionCode를 1 올리고 versionName을 맞춘다. targetSdk 36(Play 2026-08-31 이후 필수)·minSdk 24android/variables.gradle에 있다.

Play Console (오너 작업)

이 절은 계정·결제·동의가 필요해 오너가 직접 한다.

  1. 조직 개발자 계정(오너 결정 D2): play.google.com/console → 조직 계정 → D-U-N-S 번호·사업자 정보 확인 → 등록비 $25. 조직 계정은 개인 계정의 "닫힌 테스트 12명×14일" 요건이 면제된다.
  2. 앱 만들기: 이름 Barbelic, 기본 언어 한국어, 앱, 무료.
  3. Play App Signing: 앱 무결성 → "Google 생성 키 사용" 선택 후 첫 번들 업로드 (업로드 키 = 위 키스토어).
  4. 내부 테스트 트랙app-release.aab 업로드 → 테스터 이메일(길드원) 등록 → 링크로 설치해 실기기 체크리스트 수행.
  5. 스토어 등록정보: android/play/ 자산 사용.
    • 앱 아이콘 512×512: icon-512.png
    • 피처 그래픽 1024×500: feature-graphic-1024x500.png
    • 스크린샷(휴대전화, 최소 2장, 9:16): screenshot-01-login.png + 로그인 후 홈·기록· 일지 화면을 실기기에서 추가 캡처
    • 짧은 설명(80자 이내): 바벨 아래 모든 순간, 바벨릭 — 운동 기록·계획·PR 관리
    • 전체 설명 초안은 아래 스토어 설명
  6. 앱 콘텐츠
    • 개인정보처리방침 URL: https://app.barbelic.com/legal/privacy-v1.html(출시판 v1, 2026-09-15 #1640)
    • 데이터 안전: 아래 데이터 안전 답변
    • 콘텐츠 등급 설문: 피트니스 유틸리티, 폭력·도박·성적 콘텐츠 없음, 사용자 생성 콘텐츠 있음(피드·팔로우) → 전체이용가 예상
    • 타겟층: 18세 이상(소셜 기능 + 건강 데이터)
    • 광고 없음, 뉴스 앱 아님, 정부 앱 아님
    • 계정 삭제(Play 정책: 계정을 만드는 앱은 삭제 요청 경로 + 웹 URL 필수): 해소(2026-08-25, 이슈 #663). 앱 내 경로 = 내 정보 → 계정 삭제(2단 확인 뒤 즉시 하드 삭제, 데이터 잔존 0 — CASE-017·pgTAP 잔존 스캔이 회귀 방어). 웹 URL 기재란에는 https://www.barbelic.com/account/delete.html을 적는다 — 삭제 절차·삭제 데이터 명세·앱 없이 웹에서 삭제 가능함·문의 채널을 안내하는 페이지다.
  7. 프로덕션 출시: 내부 테스트 통과 → 프로덕션 트랙 → 검토 제출(보통 수 일).

데이터 안전 답변

앱은 원격 웹앱을 여는 셸이라 수집 항목은 웹과 같다(개인정보처리방침 v3 기준).

항목수집공유목적비고
개인 정보 — 이름, 이메일, 사용자 ID아니요계정 관리소셜 로그인(Kakao·Google·Apple)
건강 및 피트니스 — 피트니스 정보아니요앱 기능운동 기록·체중·PR
사진아니요세션 이미지 저장은 첫 출시 제외(D5)
앱 활동 — 사용자 생성 콘텐츠아니요앱 기능피드·팔로우
기기 ID아니요
  • 전송 중 암호화: 예(HTTPS·Supabase)
  • 데이터 삭제 요청 가능: 예 — 앱 내 계정 삭제(내 정보 → 계정 삭제, 즉시 하드 삭제) + 웹 안내 페이지 https://www.barbelic.com/account/delete.html(앱 재설치 없이 웹앱에서 같은 경로로 삭제 가능, 로그인 불가 시 이메일 문의 채널)
  • 처리 위치: Supabase(해외) — 개인정보처리방침에 명시된 내용과 일치시킨다.

스토어 설명

바벨 아래 모든 순간, 바벨릭.

• 운동 기록 — 세트·무게·반복을 빠르게 입력하고 자유 기록을 남깁니다.
• 운동 계획 — 오늘 할 운동을 미리 짜고, 친구의 계획을 내 달력에 반영합니다.
• PR과 통계 — 종목별 최고 기록과 유효 무게(체중 포함) 기준 탑 세트를 확인합니다.
• 일지 — 달력에서 하루 요약과 세션 상세를 봅니다.
• 피드 — 친구를 팔로우하고 기록을 나눕니다.

Kakao, Google, Apple 계정으로 바로 시작할 수 있습니다.

실기기 체크리스트

android-setup.md 실기기 확인 전 항목에 더해:

  • Kakao·Google·Apple 실제 계정으로 신규 가입과 기존 로그인
  • 로그인 뒤 앱 완전 종료 → 재실행 시 세션 복원(Keystore)
  • 프로필에서 다른 provider 연결 후 재로그인해도 같은 사용자
  • 로그아웃 뒤 재실행 시 로그인 화면(Keystore 세션 삭제)
  • 운동 진행 중 화면 꺼짐 없음, 운동 종료 후 자동 잠금 복귀
  • 갤럭시(삼성 인터넷 WebView 아님 — Android System WebView 확인)와 픽셀 각 1대

이번 출시에서 제외한 것

  • 세션 이미지 저장(sessionDownloadImage): 안내 토스트만. 2차 업데이트에서 WebView 캡처 + MediaStore 저장으로 추가한다.
  • R8/ProGuard 축소: minifyEnabled false. 번들 3.2MB라 필요 없다.