# 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 # 出力例: com.googleusercontent.apps.123456789-xxxx ``` この値を次のステップで使用 --- ## Step 5: Info.plist完全設定(20分) ```bash open ios/Runner/Info.plist # Xcode または テキストエディタで開く ``` ### 5-1. 権限記述(既存確認 + 追加) ```xml NSCameraUsageDescription 日本酒のラベルを撮影するためにカメラを使用します NSPhotoLibraryAddUsageDescription 撮影した日本酒の写真をギャラリーに保存します NSPhotoLibraryUsageDescription 日本酒の写真をギャラリーから選択します ``` ### 5-2. Google Sign-In設定 ```xml CFBundleURLTypes CFBundleTypeRole Editor CFBundleURLSchemes com.googleusercontent.apps.123456789-xxxx ``` ### 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 # または 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`に従って実機テストを実施