Files
DTGAPK/IOS_BUILD_GUIDE.md

362 lines
8.1 KiB
Markdown

# iOS 앱 빌드 및 배포 가이드
## iOS와 Android의 차이점
### Android (APK)
✅ APK 파일만 있으면 설치 가능
✅ 이메일, 카카오톡 등으로 전달 가능
✅ "알 수 없는 출처" 허용 후 바로 설치
### iOS (IPA)
❌ IPA 파일만으로는 설치 불가능
❌ Apple의 서명(Signing)이 필요
❌ 파일 전달만으로는 설치 안 됨
## iOS 앱 배포 방법 (4가지)
### 방법 1: App Store (공식 배포) ⭐ 권장
**장점:**
- 누구나 다운로드 가능
- 자동 업데이트
- 신뢰도 높음
**단점:**
- Apple Developer 계정 필요 (연간 $99)
- 심사 기간 1-3일
- 심사 거부 가능성
**절차:**
1. Apple Developer Program 가입 ($99/년)
2. Xcode에서 앱 빌드
3. App Store Connect에 업로드
4. 심사 제출
5. 승인 후 배포
### 방법 2: TestFlight (베타 테스트) ⭐ 개발/테스트용 권장
**장점:**
- 최대 10,000명 테스터
- App Store 심사보다 빠름
- 무료 (Developer 계정만 필요)
- 링크만 공유하면 설치 가능
**단점:**
- Apple Developer 계정 필요 ($99/년)
- 90일 후 만료
- 베타 버전으로 표시
**절차:**
1. Apple Developer 계정 필요
2. Xcode에서 Archive 생성
3. App Store Connect에 업로드
4. TestFlight에서 테스터 초대
5. 테스터가 TestFlight 앱으로 설치
**사용 방법:**
```
테스터에게 초대 링크 전송
→ 테스터가 TestFlight 앱 설치
→ 링크 클릭하여 앱 설치
```
### 방법 3: Ad Hoc 배포 (제한적)
**장점:**
- 특정 기기에만 배포 가능
- 내부 테스트용
**단점:**
- Apple Developer 계정 필요 ($99/년)
- 최대 100대 기기만 등록 가능
- 기기 UDID 수집 필요
- 매년 기기 목록 갱신
**절차:**
1. 테스터의 iPhone UDID 수집
2. Developer Portal에 기기 등록
3. Ad Hoc Provisioning Profile 생성
4. Xcode에서 Ad Hoc 빌드
5. IPA 파일을 Diawi 등으로 배포
### 방법 4: Enterprise 배포 (기업용)
**장점:**
- 무제한 배포
- 사내 직원에게 배포
**단점:**
- Apple Developer Enterprise 계정 필요 ($299/년)
- 기업 인증 필요 (법인만 가능)
- 외부 배포 금지
---
## 실제 배포 시나리오별 추천
### 시나리오 1: 소수 인원 테스트 (10명 이하)
**추천:** TestFlight
- 가장 간단하고 빠름
- 링크만 공유하면 설치 가능
### 시나리오 2: 많은 인원 테스트 (10명 이상)
**추천:** TestFlight
- 최대 10,000명까지 가능
### 시나리오 3: 정식 서비스
**추천:** App Store
- 공식 배포
- 누구나 다운로드 가능
### 시나리오 4: 사내 직원용
**추천:** Enterprise (법인) 또는 TestFlight
- 법인이면 Enterprise
- 개인/소규모면 TestFlight
---
## iOS 앱 빌드 방법
### 사전 준비
#### 1. macOS 필요 ⚠️
- **Windows에서는 iOS 앱을 빌드할 수 없습니다**
- Mac 컴퓨터 또는 Hackintosh 필요
- 또는 클라우드 Mac 서비스 이용
#### 2. Xcode 설치
```bash
# Mac App Store에서 Xcode 다운로드 (무료)
# 또는
xcode-select --install
```
#### 3. Apple Developer 계정
- 개발만: 무료 계정 가능 (본인 기기만)
- 배포: 유료 계정 필요 ($99/년)
### iOS 프로젝트 생성
현재 프로젝트에 iOS 파일이 없으므로 생성해야 합니다:
```bash
# Mac에서 실행
cd /path/to/workspace_dtgapk
# iOS 프로젝트 생성 (React Native 사용 시)
npx react-native init LogiStreamIOS
cd LogiStreamIOS/ios
pod install
# 또는 네이티브 iOS 프로젝트 생성
# Xcode > Create New Project > App
```
### Swift/SwiftUI로 네이티브 iOS 앱 만들기
#### 1. Xcode 프로젝트 생성
```
Xcode > File > New > Project
> iOS > App
> Product Name: GIS기반공차중계
> Organization Identifier: kr.kpslp.logistream
> Interface: SwiftUI
> Language: Swift
```
#### 2. ContentView.swift (웹뷰)
```swift
import SwiftUI
import WebKit
struct ContentView: View {
var body: some View {
WebView(url: URL(string: "https://logistream.kpslp.kr")!)
.edgesIgnoringSafeArea(.all)
}
}
struct WebView: UIViewRepresentable {
let url: URL
func makeUIView(context: Context) -> WKWebView {
let webView = WKWebView()
webView.load(URLRequest(url: url))
return webView
}
func updateUIView(_ webView: WKWebView, context: Context) {}
}
```
#### 3. Info.plist 권한 추가
```xml
<key>NSLocationWhenInUseUsageDescription</key>
<string>차량 위치 추적을 위해 위치 정보가 필요합니다</string>
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>백그라운드에서도 위치를 추적하기 위해 권한이 필요합니다</string>
```
#### 4. 빌드
```
Xcode > Product > Archive
> Distribute App > TestFlight 또는 App Store
```
---
## Windows에서 iOS 앱 빌드하는 방법
### 방법 1: 클라우드 Mac 서비스 (권장)
#### MacStadium
- https://www.macstadium.com/
- 시간당 요금제
- 원격으로 Mac 접속
#### MacinCloud
- https://www.macincloud.com/
- 시간당 $1부터
- Xcode 사용 가능
#### AWS EC2 Mac
- https://aws.amazon.com/ec2/instance-types/mac/
- 시간당 요금제
**사용 방법:**
1. 클라우드 Mac 구독
2. 원격 데스크톱으로 접속
3. Xcode 설치
4. 프로젝트 업로드
5. 빌드 및 배포
### 방법 2: Expo EAS Build (가장 쉬움) ⭐
React Native/Expo 프로젝트인 경우:
```bash
# Windows에서 실행 가능!
npm install -g eas-cli
# 로그인
eas login
# iOS 빌드 (클라우드에서)
eas build --platform ios
# TestFlight 자동 업로드
eas submit --platform ios
```
**장점:**
- Windows에서 실행 가능
- Mac 불필요
- 클라우드에서 자동 빌드
- 무료 플랜 있음
### 방법 3: Codemagic / Bitrise (CI/CD)
- https://codemagic.io/
- https://www.bitrise.io/
**장점:**
- GitHub 연동
- 자동 빌드
- TestFlight 자동 배포
---
## 비용 정리
### 최소 비용 (TestFlight 배포)
- Apple Developer: $99/년
- **총: $99/년**
### 클라우드 Mac 사용 시
- Apple Developer: $99/년
- MacinCloud: $1/시간 (빌드 시간만)
- **총: $99/년 + 빌드 비용**
### Expo EAS 사용 시
- Apple Developer: $99/년
- EAS Build: 무료 플랜 (월 30빌드)
- **총: $99/년**
---
## 추천 방안
### 현재 상황에 맞는 최적 방법
#### 1단계: TestFlight로 시작 (권장)
```
비용: $99/년
배포: 링크만 공유하면 설치 가능
인원: 최대 10,000명
```
**절차:**
1. Apple Developer 가입 ($99/년)
2. Mac 또는 클라우드 Mac 준비
3. Xcode에서 앱 빌드
4. TestFlight에 업로드
5. 테스터에게 링크 전송
#### 2단계: 정식 서비스는 App Store
```
비용: $99/년 (동일)
배포: App Store에서 다운로드
심사: 1-3일
```
---
## 자주 묻는 질문
### Q1: IPA 파일만 전달하면 설치 안 되나요?
**A:** 안 됩니다. Apple의 보안 정책상 서명된 앱만 설치 가능합니다.
### Q2: Android처럼 파일만 전달할 방법은 없나요?
**A:** 없습니다. TestFlight나 App Store를 통해야 합니다.
### Q3: Mac이 없는데 iOS 앱을 만들 수 있나요?
**A:** 클라우드 Mac 서비스나 Expo EAS Build를 사용하면 가능합니다.
### Q4: 개발자 계정 없이 배포할 수 있나요?
**A:** 불가능합니다. 최소 $99/년 Apple Developer 계정이 필요합니다.
### Q5: TestFlight 링크는 누구나 사용 가능한가요?
**A:** 초대받은 테스터만 가능합니다. 이메일로 초대해야 합니다.
---
## 결론
### Android (APK)
**파일만 전달하면 설치 가능**
- APK 파일 → 카카오톡/이메일 전송 → 설치
### iOS (IPA)
**파일만으로는 설치 불가능**
- TestFlight 링크 전송 → TestFlight 앱에서 설치
- 또는 App Store 배포
### 가장 현실적인 방법
1. **Android**: APK 파일 직접 배포
2. **iOS**: TestFlight로 링크 배포
3. **정식 서비스**: App Store + Google Play
---
## 다음 단계
iOS 앱을 만들고 싶으시다면:
1. **Apple Developer 가입** ($99/년)
2. **Mac 준비** (또는 클라우드 Mac)
3. **iOS 프로젝트 생성** 도와드리겠습니다
4. **TestFlight 배포** 설정
필요하시면 iOS 앱 코드도 작성해드릴 수 있습니다!