7.2 KiB
7.2 KiB
배포 가이드
Android APK 빌드 및 배포
1. 릴리즈 키스토어 생성
# 키스토어 생성 (최초 1회만)
keytool -genkeypair -v -storetype PKCS12 -keystore logistream-release.keystore -alias logistream -keyalg RSA -keysize 2048 -validity 10000
# 정보 입력
# - 비밀번호: 안전한 비밀번호 입력
# - 이름, 조직, 도시 등 정보 입력
2. 키스토어 설정
키스토어 파일을 android/app/ 디렉토리에 복사한 후, android/gradle.properties 파일 생성:
LOGISTREAM_UPLOAD_STORE_FILE=logistream-release.keystore
LOGISTREAM_UPLOAD_KEY_ALIAS=logistream
LOGISTREAM_UPLOAD_STORE_PASSWORD=your_keystore_password
LOGISTREAM_UPLOAD_KEY_PASSWORD=your_key_password
android/app/build.gradle 파일 수정:
android {
...
signingConfigs {
release {
if (project.hasProperty('LOGISTREAM_UPLOAD_STORE_FILE')) {
storeFile file(LOGISTREAM_UPLOAD_STORE_FILE)
storePassword LOGISTREAM_UPLOAD_STORE_PASSWORD
keyAlias LOGISTREAM_UPLOAD_KEY_ALIAS
keyPassword LOGISTREAM_UPLOAD_KEY_PASSWORD
}
}
}
buildTypes {
release {
signingConfig signingConfigs.release
minifyEnabled true
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
}
}
}
3. APK 빌드
# 프로젝트 루트에서
cd android
# Windows
gradlew assembleRelease
# macOS/Linux
./gradlew assembleRelease
# APK 위치: android/app/build/outputs/apk/release/app-release.apk
4. AAB 빌드 (Google Play 배포용)
cd android
# Windows
gradlew bundleRelease
# macOS/Linux
./gradlew bundleRelease
# AAB 위치: android/app/build/outputs/bundle/release/app-release.aab
5. APK 설치 테스트
# USB로 연결된 디바이스에 설치
adb install android/app/build/outputs/apk/release/app-release.apk
# 또는 APK 파일을 디바이스로 전송하여 직접 설치
iOS IPA 빌드 및 배포
1. Apple Developer 계정 설정
- Apple Developer Program 가입 (연간 $99)
- Xcode에서 Apple ID 추가
- Xcode > Preferences > Accounts
- '+' 버튼 클릭하여 Apple ID 추가
2. 인증서 및 프로비저닝 프로필 생성
- Apple Developer Console 접속
- Certificates, Identifiers & Profiles 메뉴
- App ID 생성
- Identifier:
com.logistream.mobile - Capabilities: Location 활성화
- Identifier:
- Distribution Certificate 생성
- Provisioning Profile 생성 (App Store 또는 Ad Hoc)
3. Xcode 프로젝트 설정
# Pods 설치
cd ios
pod install
cd ..
Xcode에서 ios/LogiStream.xcworkspace 열기:
-
Signing & Capabilities 탭
- Team 선택
- Bundle Identifier 확인:
com.logistream.mobile - Automatically manage signing 체크
-
Background Modes 추가
- Location updates 체크
- Background fetch 체크
-
Build Settings
- Build Configuration: Release
- Code Signing Identity: iOS Distribution
4. Archive 생성
- Xcode 메뉴: Product > Scheme > Edit Scheme
- Run > Build Configuration을 Release로 변경
- Product > Archive 선택
- Archive 완료 대기
5. IPA 내보내기
Archive Organizer에서:
-
App Store Connect (앱스토어 배포)
- Upload 선택
- App Store Connect에 업로드
-
Ad Hoc (테스트 배포)
- Export 선택
- Ad Hoc 선택
- IPA 파일 저장
-
Development (개발 테스트)
- Export 선택
- Development 선택
- IPA 파일 저장
6. TestFlight 배포 (선택사항)
- App Store Connect에서 앱 생성
- TestFlight 탭으로 이동
- 내부 테스터 또는 외부 테스터 추가
- 빌드 업로드 후 테스터에게 초대 전송
앱 스토어 배포
Google Play Store
-
앱 만들기
- 앱 이름: LogiStream 차량추적
- 기본 언어: 한국어
- 앱 유형: 앱
- 무료/유료: 무료
-
스토어 등록정보
- 앱 이름
- 간단한 설명 (80자)
- 자세한 설명 (4000자)
- 스크린샷 (최소 2개)
- 아이콘 (512x512px)
-
앱 콘텐츠
- 개인정보처리방침 URL
- 앱 카테고리: 비즈니스
- 연락처 정보
-
프로덕션 트랙
- AAB 파일 업로드
- 출시 노트 작성
- 검토 제출
Apple App Store
-
나의 앱 > '+' > 새로운 앱
- 플랫폼: iOS
- 이름: LogiStream 차량추적
- 기본 언어: 한국어
- 번들 ID: com.logistream.mobile
- SKU: logistream-mobile
-
앱 정보
- 카테고리: 비즈니스
- 개인정보 처리방침 URL
- 연령 등급
-
가격 및 사용 가능 여부
- 가격: 무료
- 사용 가능 국가: 대한민국
-
버전 정보
- 스크린샷 (필수)
- 설명
- 키워드
- 지원 URL
- 마케팅 URL (선택)
-
빌드
- TestFlight에서 빌드 선택
- 제출
업데이트 배포
버전 업데이트
package.json버전 업데이트- Android:
android/app/build.gradledefaultConfig { versionCode 2 // 증가 versionName "1.1.0" // 업데이트 } - iOS: Xcode에서 Version 및 Build 번호 증가
변경사항 문서화
CHANGELOG.md 파일 생성:
# 변경 이력
## [1.1.0] - 2024-01-15
### 추가
- 위치 추적 정확도 개선
- 배터리 최적화
### 수정
- 백그라운드 위치 추적 버그 수정
- 로그인 오류 수정
## [1.0.0] - 2024-01-01
### 추가
- 초기 릴리즈
- 웹뷰 통합
- 위치 추적 기능
모니터링 및 분석
Crash Reporting
Android - Firebase Crashlytics
# Firebase 설정
npm install @react-native-firebase/app @react-native-firebase/crashlytics
iOS - Firebase Crashlytics
Podfile에 추가:
pod 'Firebase/Crashlytics'
분석 도구
- Google Analytics for Firebase
- App Store Analytics
- Google Play Console Analytics
보안 체크리스트
- API 키가 코드에 하드코딩되지 않았는지 확인
- HTTPS 사용 확인
- 민감한 데이터 암호화
- ProGuard/R8 난독화 활성화 (Android)
- 키스토어 파일 안전하게 보관
- 개인정보처리방침 작성 및 게시
- 위치 정보 사용 동의 명확히 표시
문제 해결
Android 빌드 오류
# Gradle 캐시 삭제
cd android
./gradlew clean
# 빌드 재시도
./gradlew assembleRelease
iOS 빌드 오류
# Pods 재설치
cd ios
pod deintegrate
pod install
# Xcode 캐시 삭제
rm -rf ~/Library/Developer/Xcode/DerivedData
서명 오류
- 인증서가 만료되지 않았는지 확인
- Provisioning Profile이 올바른지 확인
- Bundle ID가 일치하는지 확인