352 lines
7.5 KiB
Markdown
352 lines
7.5 KiB
Markdown
# iOS開発環境セットアップ完全手順
|
||
|
||
## 📋 前提条件チェックリスト
|
||
|
||
### ハードウェア
|
||
- [ ] 2017 MacBook Air以降
|
||
- [ ] メモリ8GB以上
|
||
- [ ] ストレージ空き容量30GB以上
|
||
|
||
### ソフトウェア
|
||
- [ ] macOS Big Sur 11.x(2017 MacBook Air最大)
|
||
- [ ] Xcode 13.2.1(Big Sur最大対応)
|
||
- [ ] Flutter SDK 3.10.1以降
|
||
|
||
---
|
||
|
||
## Step 1: Flutter iOS toolchain確認(5分)
|
||
|
||
```bash
|
||
flutter doctor -v
|
||
|
||
# 期待される出力
|
||
[✓] Flutter (Channel stable, 3.10.1, on macOS Big Sur 11.x)
|
||
[✓] Xcode - develop for iOS and macOS (Xcode 13.2.1)
|
||
• Xcode at /Applications/Xcode.app/Contents/Developer
|
||
• Build 13C100
|
||
• CocoaPods version 1.11.x
|
||
|
||
[✓] Android Studio (version 2023.x)
|
||
[!] iOS deploy (iOS 12.0 or higher required)
|
||
```
|
||
|
||
**トラブルシュート**:
|
||
|
||
```bash
|
||
# Xcodeが見つからない
|
||
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
|
||
|
||
# Xcode license未承認
|
||
sudo xcodebuild -license accept
|
||
|
||
# CocoaPods未インストール
|
||
sudo gem install cocoapods
|
||
```
|
||
|
||
---
|
||
|
||
## Step 2: iOSプロジェクトファイル生成(10分)
|
||
|
||
```bash
|
||
cd ~/posimai-project/ponshu_room_lite
|
||
|
||
# 既存ファイルを保持しつつiOSファイル生成
|
||
flutter create .
|
||
|
||
# 確認
|
||
ls -la ios/
|
||
# 期待: Runner.xcodeproj, Runner.xcworkspace, Podfile等が生成される
|
||
```
|
||
|
||
**注意**: 既存のAndroidファイルは影響を受けません
|
||
|
||
---
|
||
|
||
## Step 3: Podfile確認と設定(15分)
|
||
|
||
### 3-1. Podfile内容確認
|
||
|
||
```bash
|
||
cat ios/Podfile
|
||
```
|
||
|
||
### 3-2. プラットフォーム設定
|
||
|
||
```ruby
|
||
# ios/Podfile(自動生成後の確認)
|
||
platform :ios, '12.0' # iOS 12.0以上対応(2017デバイス対応)
|
||
|
||
# CocoaPods 1.11.x用設定
|
||
post_install do |installer|
|
||
installer.pods_project.targets.each do |target|
|
||
flutter_additional_ios_build_settings(target)
|
||
target.build_configurations.each do |config|
|
||
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '12.0'
|
||
end
|
||
end
|
||
end
|
||
```
|
||
|
||
### 3-3. 依存関係インストール
|
||
|
||
```bash
|
||
cd ios
|
||
pod install # 初回は5-10分かかる
|
||
|
||
# 成功メッセージ
|
||
# Pod installation complete! There are X dependencies from the Podfile...
|
||
|
||
cd ..
|
||
```
|
||
|
||
**トラブルシュート**:
|
||
|
||
```bash
|
||
# エラー: CocoaPods could not find compatible versions
|
||
pod repo update # Podリポジトリ更新(10-15分)
|
||
pod install
|
||
|
||
# エラー: ffi gem missing
|
||
sudo gem install ffi
|
||
|
||
# 2017 MacBook Airでメモリ不足
|
||
# 他のアプリケーションを終了してから再試行
|
||
```
|
||
|
||
---
|
||
|
||
## Step 4: Firebase iOS設定(30分)
|
||
|
||
### 4-1. Firebase Console設定
|
||
|
||
1. https://console.firebase.google.com/
|
||
2. プロジェクト「ponshu-room」選択
|
||
3. **プロジェクトの設定** → **全般**
|
||
4. **アプリを追加** → **iOS**
|
||
|
||
### 4-2. Bundle ID設定
|
||
|
||
```
|
||
Bundle ID: com.posimai.ponshu_room_lite
|
||
Apple App Nickname: Ponshu Room Lite
|
||
App Store ID: (後で設定)
|
||
```
|
||
|
||
### 4-3. GoogleService-Info.plist取得
|
||
|
||
1. Firebase Consoleから`GoogleService-Info.plist`をダウンロード
|
||
2. ファイル配置:
|
||
```bash
|
||
mv ~/Downloads/GoogleService-Info.plist ios/Runner/
|
||
```
|
||
|
||
3. 確認:
|
||
```bash
|
||
cat ios/Runner/GoogleService-Info.plist | grep BUNDLE_ID
|
||
# 期待: com.posimai.ponshu_room_lite
|
||
```
|
||
|
||
|
||
### 4-4. REVERSED_CLIENT_ID取得
|
||
|
||
```bash
|
||
cat ios/Runner/GoogleService-Info.plist | grep REVERSED_CLIENT_ID
|
||
# 出力例: <string>com.googleusercontent.apps.123456789-xxxx</string>
|
||
```
|
||
|
||
この値を次のステップで使用
|
||
|
||
---
|
||
|
||
## Step 5: Info.plist完全設定(20分)
|
||
|
||
```bash
|
||
open ios/Runner/Info.plist
|
||
# Xcode または テキストエディタで開く
|
||
```
|
||
|
||
### 5-1. 権限記述(既存確認 + 追加)
|
||
|
||
```xml
|
||
<!-- 既存(確認のみ) -->
|
||
<key>NSCameraUsageDescription</key>
|
||
<string>日本酒のラベルを撮影するためにカメラを使用します</string>
|
||
|
||
<key>NSPhotoLibraryAddUsageDescription</key>
|
||
<string>撮影した日本酒の写真をギャラリーに保存します</string>
|
||
|
||
<!-- 追加必須 -->
|
||
<key>NSPhotoLibraryUsageDescription</key>
|
||
<string>日本酒の写真をギャラリーから選択します</string>
|
||
```
|
||
|
||
### 5-2. Google Sign-In設定
|
||
|
||
```xml
|
||
<key>CFBundleURLTypes</key>
|
||
<array>
|
||
<dict>
|
||
<key>CFBundleTypeRole</key>
|
||
<string>Editor</string>
|
||
<key>CFBundleURLSchemes</key>
|
||
<array>
|
||
<!-- Step 4-4で取得したREVERSED_CLIENT_IDを貼り付け -->
|
||
<string>com.googleusercontent.apps.123456789-xxxx</string>
|
||
</array>
|
||
</dict>
|
||
</array>
|
||
```
|
||
|
||
### 5-3. 設定確認
|
||
|
||
```bash
|
||
# NSPhotoLibraryUsageDescriptionが存在するか確認
|
||
grep -A 1 "NSPhotoLibraryUsageDescription" ios/Runner/Info.plist
|
||
|
||
# CFBundleURLSchemesが設定されているか確認
|
||
grep -A 5 "CFBundleURLTypes" ios/Runner/Info.plist
|
||
```
|
||
|
||
---
|
||
|
||
## Step 6: Xcodeでプロジェクトを開く(10分)
|
||
|
||
```bash
|
||
# 重要: .xcodeproj ではなく .xcworkspace を開く
|
||
open ios/Runner.xcworkspace
|
||
```
|
||
|
||
### 6-1. Signing設定
|
||
|
||
1. Xcode左ペイン → **Runner** 選択
|
||
2. **Signing & Capabilities** タブ
|
||
3. **Team**: Apple Developer Accountを選択
|
||
- 未登録の場合: Add Account → Apple IDでサインイン
|
||
|
||
4. **Bundle Identifier**: `com.posimai.ponshu_room_lite`確認
|
||
5. **Automatically manage signing**: チェック
|
||
|
||
### 6-2. Deployment Target確認
|
||
|
||
1. **General** タブ
|
||
2. **Deployment Info** → **iOS 12.0** 確認
|
||
|
||
---
|
||
|
||
## Step 7: ビルドテスト(15分)
|
||
|
||
### 7-1. シミュレータ用ビルド
|
||
|
||
```bash
|
||
flutter build ios --debug
|
||
|
||
# 成功メッセージ
|
||
# Built build/ios/Release-iphoneos/Runner.app
|
||
```
|
||
|
||
### 7-2. Xcodeでシミュレータ起動
|
||
|
||
1. Xcode上部 → デバイス選択 → **iPhone 12 Pro(iOS 15.x)**
|
||
2. ▶ ボタンクリック
|
||
3. アプリが起動するか確認
|
||
|
||
---
|
||
|
||
## Step 8: 実機ビルド(Apple Developer Program必須)
|
||
|
||
### 8-1. Apple Developer Program登録(任意)
|
||
|
||
**無料版** (Personal Team):
|
||
|
||
- 有効期限: 7日間
|
||
- 実機1台まで
|
||
- App Store配布不可
|
||
|
||
**有料版** (年間99ドル):
|
||
|
||
- 有効期限: 1年間
|
||
- 実機100台まで
|
||
- App Store配布可能
|
||
- TestFlight配布可能
|
||
|
||
### 8-2. 実機接続
|
||
|
||
```bash
|
||
# 実機をUSB接続
|
||
flutter devices
|
||
|
||
# 出力例
|
||
# iPhone 13 Pro (mobile) • 00008030-XXXX • ios • iOS 16.1
|
||
```
|
||
|
||
### 8-3. 実機ビルド
|
||
|
||
```bash
|
||
flutter build ios --release
|
||
flutter install -d <device_id>
|
||
|
||
# または Xcodeから
|
||
# デバイス選択 → 実機選択 → ▶ ボタン
|
||
```
|
||
|
||
---
|
||
|
||
## Step 9: トラブルシューティング
|
||
|
||
### エラー1: Signing for "Runner" requires a development team
|
||
|
||
**原因**: Teamが未設定
|
||
|
||
**解決**: Xcode → Signing & Capabilities → Team選択
|
||
|
||
### エラー2: The operation couldn't be completed
|
||
|
||
**原因**: デバイスがロックされている
|
||
|
||
**解決**: iPhoneロック解除 → 「このコンピュータを信頼」
|
||
|
||
### エラー3: Module 'xxx' not found
|
||
|
||
**原因**: CocoaPods依存関係エラー
|
||
|
||
**解決**:
|
||
|
||
```bash
|
||
cd ios
|
||
rm -rf Pods Podfile.lock
|
||
pod install
|
||
cd ..
|
||
```
|
||
|
||
### エラー4: Xcode build failed - Could not find a bundle identifier
|
||
|
||
**原因**: GoogleService-Info.plist未配置
|
||
|
||
**解決**: Step 4-3を再確認
|
||
|
||
### エラー5: 2017 MacBook Airでメモリ不足
|
||
|
||
**対策**:
|
||
|
||
- 他のアプリケーションを終了
|
||
- Xcode再起動
|
||
- ターミナルで`sudo purge`(メモリ解放)
|
||
- Virtual Memory確保(10GB以上)
|
||
|
||
---
|
||
|
||
## 完了チェックリスト
|
||
|
||
- [ ] flutter doctor でiOS toolchain ✓
|
||
- [ ] CocoaPods依存関係インストール完了
|
||
- [ ] Firebase iOS設定完了
|
||
- [ ] Info.plist完全設定
|
||
- [ ] Xcodeでビルド成功(シミュレータ)
|
||
- [ ] 実機ビルド成功(任意)
|
||
|
||
---
|
||
|
||
## 次のステップ
|
||
|
||
`IOS_DEVICE_TEST_CHECKLIST.md`に従って実機テストを実施
|