From 5fcb551c4b7ae379573fc3d681d512730295e9b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=9C=E6=94=BF=E9=9C=96?= <715099396@qq.com> Date: Tue, 26 May 2026 10:55:47 +0800 Subject: [PATCH] docs: add iOS deployment guide for Flutter project Add comprehensive guide for building and installing Mobile Agent on iOS physical devices using free Apple Developer account. Covers: - Environment setup (Xcode, Flutter, CocoaPods) - Creating iOS project and disabling Swift Package Manager - Configuring code signing with free Apple ID - Enabling iOS Developer Mode (iOS 16+) - Common issues: white screen, SPM conflicts, missing platform - Free developer account limitations --- docs/ios-deployment-guide.md | 167 ++++++++++++++++++++++++++++++ mobile_agent/README_iOS_DEPLOY.md | 167 ++++++++++++++++++++++++++++++ 2 files changed, 334 insertions(+) create mode 100644 docs/ios-deployment-guide.md create mode 100644 mobile_agent/README_iOS_DEPLOY.md diff --git a/docs/ios-deployment-guide.md b/docs/ios-deployment-guide.md new file mode 100644 index 0000000..f247cea --- /dev/null +++ b/docs/ios-deployment-guide.md @@ -0,0 +1,167 @@ +# Mobile Agent iOS 部署指南 + +> 本指南记录了将 Mobile Agent Flutter 项目编译并安装到 iOS 真机的完整流程,包含环境准备、常见问题及解决方案。 + +--- + +## 环境要求 + +- **macOS**(必需,iOS 开发只能在 Mac 上进行) +- **Xcode**(建议最新稳定版,本文使用 Xcode 26.5) +- **Flutter**(3.29.0+,本文使用 3.44.0) +- **CocoaPods**(`sudo gem install cocoapods` 或 `brew install cocoapods`) +- **一台 iPhone**(iOS 13.0+) +- **Apple ID**(免费个人开发者账号即可) + +--- + +## 步骤一:创建 iOS 项目 + +如果项目中没有 `ios/` 目录,需要先创建: + +```bash +cd mobile_agent +flutter create --platforms=ios . +``` + +> **注意**:本项目使用了 `flutter_secure_storage` 插件,该插件暂不支持 Swift Package Manager。建议先禁用 SPM 再创建项目: +> ```bash +> flutter config --no-enable-swift-package-manager +> rm -rf ios +> flutter create --platforms=ios . +> ``` + +--- + +## 步骤二:配置 iOS 权限 + +由于项目使用了语音输入(`speech_to_text`)和 WebView,需要在 `ios/Runner/Info.plist` 中添加以下权限声明: + +```xml +NSMicrophoneUsageDescription +This app needs microphone access for speech-to-text functionality. +NSSpeechRecognitionUsageDescription +This app needs speech recognition access to convert your voice to text. +``` + +--- + +## 步骤三:配置代码签名 + +### 3.1 在 Xcode 中登录 Apple ID + +1. 打开 Xcode → **Settings (⌘,)** → **Accounts** +2. 点击左下角 **+** → 选择 **Apple ID** → 登录你的 Apple ID + +### 3.2 选择开发团队 + +1. 在 Xcode 左侧导航栏点击 **Runner**(蓝色图标) +2. 中间区域选择 **TARGETS > Runner** +3. 点击 **Signing & Capabilities** 标签 +4. 在 **Team** 下拉框中选择 **"你的姓名 (Personal Team)"** +5. 修改 **Bundle Identifier**(建议把默认的 `com.example.mobileAgent` 改为 `com.mobilecode.agent` 等非 example 前缀) + +--- + +## 步骤四:开启 iPhone 开发者模式 + +**iOS 16+ 必须开启开发者模式才能安装开发版 App。** + +1. iPhone 上打开 **设置 → 隐私与安全性** +2. 滑到最底部,点击 **开发者模式** +3. 打开开关 → 点击 **重新启动** +4. **重启后开机界面会弹出一个确认框**,点击 **"打开"(Turn On)** +5. 输入锁屏密码确认 + +> ⚠️ **关键**:必须在重启后的弹窗中二次确认,否则开发者模式不会真正生效。 + +--- + +## 步骤五:连接设备并信任 + +1. 用数据线将 iPhone 连接到 Mac +2. iPhone 上点击 **"信任此电脑"**,输入锁屏密码 +3. 确保 iPhone **处于解锁状态** + +--- + +## 步骤六:编译并安装 + +### 方式 A:命令行一键安装(推荐) + +```bash +flutter run --release +``` + +Flutter 会自动:编译 → 签名 → 安装 → 启动 App。 + +### 方式 B:通过 Xcode 安装 + +1. Xcode 顶部工具栏确认已选择你的 iPhone 设备 +2. 点击 **▶️ Run 按钮**(或按 Cmd+R) +3. 等待编译完成,App 会自动安装并启动 + +--- + +## 步骤七:信任开发者证书 + +首次打开 App 时,系统会提示 **"不受信任的开发者"**: + +1. 点击 **取消** +2. 打开 iPhone **设置 → 通用 → VPN与设备管理**(或"描述文件与设备管理") +3. 找到你的 **Apple ID**,点击进入 +4. 点击 **信任"你的 Apple ID"** → 再次确认 **信任** +5. 返回桌面,重新点击 App 图标即可正常使用 + +--- + +## 常见问题排查 + +### Q1: Flutter 提示 "iOS 26.5 Platform Not Installed" + +**原因**:Xcode 缺少 iOS 平台运行时。 +**解决**: +```bash +xcodebuild -downloadPlatform iOS +``` + +### Q2: Flutter 提示 "enable Developer Mode" + +**原因**:iPhone 开发者模式未开启或未确认。 +**解决**:严格按照"步骤四"操作,确保重启后点击弹窗确认。 + +### Q3: Flutter 提示 "No valid code signing certificates" + +**原因**:Xcode 项目中未选择 Team。 +**解决**:在 Xcode → Runner → Signing & Capabilities → Team 中选择 Personal Team。 + +### Q4: 安装成功但打开 App 白屏/闪退 + +**原因**:`flutter_secure_storage` 插件与 Swift Package Manager 冲突,导致构建产物损坏。 +**解决**: +```bash +flutter config --no-enable-swift-package-manager +rm -rf ios +flutter create --platforms=ios . +``` +然后重新配置签名并编译。 + +### Q5: Xcode 报错 "Missing package product 'FlutterGeneratedPluginSwiftPackage'" + +**原因**:Swift Package Manager 与部分插件不兼容。 +**解决**:同 Q4,禁用 SPM 后重新生成 iOS 项目。 + +--- + +## 免费开发者账号限制 + +- App 安装后 **7 天有效**,到期后需要重新连接 Mac 编译安装 +- 同一时间最多安装 3 个使用个人证书签名的 App +- 无法发布到 App Store(需要付费 Developer Program,¥688/年) + +--- + +## 参考 + +- [Flutter iOS 部署官方文档](https://docs.flutter.dev/deployment/ios) +- [Apple Developer - Distributing Your App](https://developer.apple.com/documentation/xcode/distributing-your-app) diff --git a/mobile_agent/README_iOS_DEPLOY.md b/mobile_agent/README_iOS_DEPLOY.md new file mode 100644 index 0000000..f247cea --- /dev/null +++ b/mobile_agent/README_iOS_DEPLOY.md @@ -0,0 +1,167 @@ +# Mobile Agent iOS 部署指南 + +> 本指南记录了将 Mobile Agent Flutter 项目编译并安装到 iOS 真机的完整流程,包含环境准备、常见问题及解决方案。 + +--- + +## 环境要求 + +- **macOS**(必需,iOS 开发只能在 Mac 上进行) +- **Xcode**(建议最新稳定版,本文使用 Xcode 26.5) +- **Flutter**(3.29.0+,本文使用 3.44.0) +- **CocoaPods**(`sudo gem install cocoapods` 或 `brew install cocoapods`) +- **一台 iPhone**(iOS 13.0+) +- **Apple ID**(免费个人开发者账号即可) + +--- + +## 步骤一:创建 iOS 项目 + +如果项目中没有 `ios/` 目录,需要先创建: + +```bash +cd mobile_agent +flutter create --platforms=ios . +``` + +> **注意**:本项目使用了 `flutter_secure_storage` 插件,该插件暂不支持 Swift Package Manager。建议先禁用 SPM 再创建项目: +> ```bash +> flutter config --no-enable-swift-package-manager +> rm -rf ios +> flutter create --platforms=ios . +> ``` + +--- + +## 步骤二:配置 iOS 权限 + +由于项目使用了语音输入(`speech_to_text`)和 WebView,需要在 `ios/Runner/Info.plist` 中添加以下权限声明: + +```xml +NSMicrophoneUsageDescription +This app needs microphone access for speech-to-text functionality. +NSSpeechRecognitionUsageDescription +This app needs speech recognition access to convert your voice to text. +``` + +--- + +## 步骤三:配置代码签名 + +### 3.1 在 Xcode 中登录 Apple ID + +1. 打开 Xcode → **Settings (⌘,)** → **Accounts** +2. 点击左下角 **+** → 选择 **Apple ID** → 登录你的 Apple ID + +### 3.2 选择开发团队 + +1. 在 Xcode 左侧导航栏点击 **Runner**(蓝色图标) +2. 中间区域选择 **TARGETS > Runner** +3. 点击 **Signing & Capabilities** 标签 +4. 在 **Team** 下拉框中选择 **"你的姓名 (Personal Team)"** +5. 修改 **Bundle Identifier**(建议把默认的 `com.example.mobileAgent` 改为 `com.mobilecode.agent` 等非 example 前缀) + +--- + +## 步骤四:开启 iPhone 开发者模式 + +**iOS 16+ 必须开启开发者模式才能安装开发版 App。** + +1. iPhone 上打开 **设置 → 隐私与安全性** +2. 滑到最底部,点击 **开发者模式** +3. 打开开关 → 点击 **重新启动** +4. **重启后开机界面会弹出一个确认框**,点击 **"打开"(Turn On)** +5. 输入锁屏密码确认 + +> ⚠️ **关键**:必须在重启后的弹窗中二次确认,否则开发者模式不会真正生效。 + +--- + +## 步骤五:连接设备并信任 + +1. 用数据线将 iPhone 连接到 Mac +2. iPhone 上点击 **"信任此电脑"**,输入锁屏密码 +3. 确保 iPhone **处于解锁状态** + +--- + +## 步骤六:编译并安装 + +### 方式 A:命令行一键安装(推荐) + +```bash +flutter run --release +``` + +Flutter 会自动:编译 → 签名 → 安装 → 启动 App。 + +### 方式 B:通过 Xcode 安装 + +1. Xcode 顶部工具栏确认已选择你的 iPhone 设备 +2. 点击 **▶️ Run 按钮**(或按 Cmd+R) +3. 等待编译完成,App 会自动安装并启动 + +--- + +## 步骤七:信任开发者证书 + +首次打开 App 时,系统会提示 **"不受信任的开发者"**: + +1. 点击 **取消** +2. 打开 iPhone **设置 → 通用 → VPN与设备管理**(或"描述文件与设备管理") +3. 找到你的 **Apple ID**,点击进入 +4. 点击 **信任"你的 Apple ID"** → 再次确认 **信任** +5. 返回桌面,重新点击 App 图标即可正常使用 + +--- + +## 常见问题排查 + +### Q1: Flutter 提示 "iOS 26.5 Platform Not Installed" + +**原因**:Xcode 缺少 iOS 平台运行时。 +**解决**: +```bash +xcodebuild -downloadPlatform iOS +``` + +### Q2: Flutter 提示 "enable Developer Mode" + +**原因**:iPhone 开发者模式未开启或未确认。 +**解决**:严格按照"步骤四"操作,确保重启后点击弹窗确认。 + +### Q3: Flutter 提示 "No valid code signing certificates" + +**原因**:Xcode 项目中未选择 Team。 +**解决**:在 Xcode → Runner → Signing & Capabilities → Team 中选择 Personal Team。 + +### Q4: 安装成功但打开 App 白屏/闪退 + +**原因**:`flutter_secure_storage` 插件与 Swift Package Manager 冲突,导致构建产物损坏。 +**解决**: +```bash +flutter config --no-enable-swift-package-manager +rm -rf ios +flutter create --platforms=ios . +``` +然后重新配置签名并编译。 + +### Q5: Xcode 报错 "Missing package product 'FlutterGeneratedPluginSwiftPackage'" + +**原因**:Swift Package Manager 与部分插件不兼容。 +**解决**:同 Q4,禁用 SPM 后重新生成 iOS 项目。 + +--- + +## 免费开发者账号限制 + +- App 安装后 **7 天有效**,到期后需要重新连接 Mac 编译安装 +- 同一时间最多安装 3 个使用个人证书签名的 App +- 无法发布到 App Store(需要付费 Developer Program,¥688/年) + +--- + +## 参考 + +- [Flutter iOS 部署官方文档](https://docs.flutter.dev/deployment/ios) +- [Apple Developer - Distributing Your App](https://developer.apple.com/documentation/xcode/distributing-your-app)