ponshu-room-lite/docs/archive/IOS_SETUP_GUIDE.md

352 lines
7.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# iOS開発環境セットアップ完全手順
## 📋 前提条件チェックリスト
### ハードウェア
- [ ] 2017 MacBook Air以降
- [ ] メモリ8GB以上
- [ ] ストレージ空き容量30GB以上
### ソフトウェア
- [ ] macOS Big Sur 11.x2017 MacBook Air最大
- [ ] Xcode 13.2.1Big 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 ProiOS 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`に従って実機テストを実施