362 lines
8.1 KiB
Markdown
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 앱 코드도 작성해드릴 수 있습니다!
|
|
|