Files
DTGAPK/DEPLOYMENT.md

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 계정 설정

  1. Apple Developer Program 가입 (연간 $99)
  2. Xcode에서 Apple ID 추가
    • Xcode > Preferences > Accounts
    • '+' 버튼 클릭하여 Apple ID 추가

2. 인증서 및 프로비저닝 프로필 생성

  1. Apple Developer Console 접속
  2. Certificates, Identifiers & Profiles 메뉴
  3. App ID 생성
    • Identifier: com.logistream.mobile
    • Capabilities: Location 활성화
  4. Distribution Certificate 생성
  5. Provisioning Profile 생성 (App Store 또는 Ad Hoc)

3. Xcode 프로젝트 설정

# Pods 설치
cd ios
pod install
cd ..

Xcode에서 ios/LogiStream.xcworkspace 열기:

  1. Signing & Capabilities

    • Team 선택
    • Bundle Identifier 확인: com.logistream.mobile
    • Automatically manage signing 체크
  2. Background Modes 추가

    • Location updates 체크
    • Background fetch 체크
  3. Build Settings

    • Build Configuration: Release
    • Code Signing Identity: iOS Distribution

4. Archive 생성

  1. Xcode 메뉴: Product > Scheme > Edit Scheme
  2. Run > Build Configuration을 Release로 변경
  3. Product > Archive 선택
  4. Archive 완료 대기

5. IPA 내보내기

Archive Organizer에서:

  1. App Store Connect (앱스토어 배포)

    • Upload 선택
    • App Store Connect에 업로드
  2. Ad Hoc (테스트 배포)

    • Export 선택
    • Ad Hoc 선택
    • IPA 파일 저장
  3. Development (개발 테스트)

    • Export 선택
    • Development 선택
    • IPA 파일 저장

6. TestFlight 배포 (선택사항)

  1. App Store Connect에서 앱 생성
  2. TestFlight 탭으로 이동
  3. 내부 테스터 또는 외부 테스터 추가
  4. 빌드 업로드 후 테스터에게 초대 전송

앱 스토어 배포

Google Play Store

  1. Google Play Console 접속

  2. 앱 만들기

    • 앱 이름: LogiStream 차량추적
    • 기본 언어: 한국어
    • 앱 유형: 앱
    • 무료/유료: 무료
  3. 스토어 등록정보

    • 앱 이름
    • 간단한 설명 (80자)
    • 자세한 설명 (4000자)
    • 스크린샷 (최소 2개)
    • 아이콘 (512x512px)
  4. 앱 콘텐츠

    • 개인정보처리방침 URL
    • 앱 카테고리: 비즈니스
    • 연락처 정보
  5. 프로덕션 트랙

    • AAB 파일 업로드
    • 출시 노트 작성
    • 검토 제출

Apple App Store

  1. App Store Connect 접속

  2. 나의 앱 > '+' > 새로운 앱

    • 플랫폼: iOS
    • 이름: LogiStream 차량추적
    • 기본 언어: 한국어
    • 번들 ID: com.logistream.mobile
    • SKU: logistream-mobile
  3. 앱 정보

    • 카테고리: 비즈니스
    • 개인정보 처리방침 URL
    • 연령 등급
  4. 가격 및 사용 가능 여부

    • 가격: 무료
    • 사용 가능 국가: 대한민국
  5. 버전 정보

    • 스크린샷 (필수)
    • 설명
    • 키워드
    • 지원 URL
    • 마케팅 URL (선택)
  6. 빌드

    • TestFlight에서 빌드 선택
    • 제출

업데이트 배포

버전 업데이트

  1. package.json 버전 업데이트
  2. Android: android/app/build.gradle
    defaultConfig {
        versionCode 2  // 증가
        versionName "1.1.0"  // 업데이트
    }
    
  3. 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'

분석 도구

  1. Google Analytics for Firebase
  2. App Store Analytics
  3. 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가 일치하는지 확인

참고 자료