目标
在 Mac 下,搭建 Flutter 运行的 iOS 开发环境
基础环境
要安装并运行 Flutter,您的开发环境必须满足以下最低要求:
- 操作系统: macOS (64-bit)
- 磁盘空间: 700 MB (不包括 Xcode 或 Android Studio 的磁盘空间)
- 工具: Flutter 依赖下面这些命令行工具
bash, mkdir, rm, git, curl, unzip, which
使用镜像
由于在国内访问 Flutter 有时可能会受到限制,Flutter 官方为中国开发者搭建了临时镜像,大家可以将如下环境变量加入到用户环境变量中(在命令行中运行如下命令):
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
或者,直接编辑/Users/你的用户名/.bash_profile
搭建 iOS 环境
安装 Xcode
开发 iOS 平台上的 Flutter 应用,你需要一个安装了 Xcode 的 Mac 设备。
-
通过直接下载或者通过Mac App Store来安装最新稳定版 Xcode;
-
通过在命令行中运行以下命令来配置 Xcode command-line tools:
$ sudo xcode-select -- switch /Applications/Xcode.app/Contents/Developer $ sudo xcodebuild -runFirstLaunch
当你安装了最新版本的 Xcode,大部分情况下,上面的路径都是一样的。但如果你安装了不同版本的 Xcode,你可能要更改一下上述命令中的路径。
-
运行一次 Xcode 或者通过输入命令sudoxcodebuild-license来确保已经同意 Xcode 的许可协议。
安装了 Xcode 之后,你就可以在 iOS 真机或者模拟器上运行 Flutter 应用了。
iOS 模拟器
如果想要在 iOS 模拟器中运行和测试 Flutter 应用,通过 Spotlight 或者以下命令来启动模拟器:
$ open -a Simulator
iOS 环境依赖
要将您的 Flutter 应用安装到 iOS 真机设备,您需要一些额外的工具。
-
安装homebrew(如果已经安装了 brew,跳过此步骤)
-
打开终端,并运行这些命令,来安装用于将 Flutter 应用安装到 iOS 设备的工具
以下安装,需要很长时间(可能大于10分钟),需要耐心等待
brew update brew install --HEAD libimobiledevice brew install ideviceinstaller ios-deploy cocoapods pod setup
如果这些命令中的任何一个失败并出现错误,请运行 brew doctor 并按照说明解决问题.
安装 Flutter SDK
-
去 flutter 官网下载
下载地址:- https://flutter.dev/docs/development/tools/sdk/releases
- https://flutter.cn/docs/development/tools/sdk/releases(国内镜像地址)
或者通过 git 下载
git clone -b beta https://github.com/flutter/flutter.git
-
解压安装包到你想安装的目录,如:
cd ~/myapp unzip ~/Downloads/flutter_macos_1.22.5-stable.zip #将解压后的目录命名为flutter,然后复制到/Users/liuchangtao/myapp/ #最后的路径是/Users/liuchangtao/myapp/flutter
-
添加 flutter 路径到 path 中:
# 打开 bash_profile vim ~/.bash_profiles # 添加 flutter 环境里变量(在尾部,添加如下代码) export PATH="$PATH:/Users/liuchangtao/myapp/flutter/bin" # 保存退出: wq # 更新环境里变量 source ~/.bash_profile
请将上述 flutter 路径,换成你自己的 flutter 路径
-
验证 flutter 命令
# 在命令行中输入 flutter -h
初次运行会下载一些内容
-
检测 flutter
# 在命令行中输入 flutter doctor
初次运行时,它会下载它自己的依赖项并自行编译,可能需要等一会儿(以后再运行就会快得多)
若 Android 或 iOS 有依赖缺失。请下载 Android Studio 或者 VS Code,然后在对应 IDE 中下载Flutter 插件。安装过程与 Windows 下的安装过程一致(参考:Flutter 之 Windows 环境搭建.md)
以下为配置成功的截图:
创建 Flutter 应用
通过以下步骤来创建你的第一个 Flutter 应用并进行测试:
-
通过运行以下命令来创建一个新的 Flutter 应用:
$ flutter create flutterdemo
-
上述命令创建了一个flutterdemo的目录,包含了 Flutter 初始的应用模版,切换路径到这个目录内:
$ cd flutterdemo
-
确保模拟器已经处于运行状态:
# 查看当前模拟器 $ flutter emulators
# 启动模拟器 $ flutter emulator --launch apple_ios_simulator # ios 模拟器 # 或者 $ flutter emulator --launch Nexus_S_API_29 # Andorid 模拟器
-
运行 flutter
# 执行项目工程,若有多个设备连接,需要 -d <设备的id>执行某个模拟器 $ flutter run
使用 Xcode 打开 Flutter 项目
双击 Flutter 项目目录下的 ios/Runner.xcodeproj
iOS 配置文件
iOS 下的配置文件是ios/Runner/Info.plist(相当于 android/src/main/AndroidManifest.xml)。我们可以在 iOS 配置文件中,配置权限、语言、主题等信息。一般有两个编辑方式:
-
在 VS Code 中编辑
VS Code 中的 Info.plist 就是一个 XML 文件。例如:常用的权限设置有:<key>NSLocationWhenInUseUsageDescription</key> <string>App需要您的同意,才能在使用期间访问位置</string> <key>NSLocationAlwaysUsageDescription</key> <string>App需要您的同意,才能始终访问位置</string> <key>NSPhotoLibraryUsageDescription</key> <string>App需要您的同意,才能访问相册</string> <key>NSCameraUsageDescription</key> <string>App需要您的同意,才能访问相机</string> <key>NSMicrophoneUsageDescription</key> <string>App需要您的同意,才能访问麦克风</string> <key>NSLocationUsageDescription</key> <string>App需要您的同意,才能访问位置</string> <key>NSCalendarsUsageDescription</key> <string>App需要您的同意,才能访问日历</string> <key>NSRemindersUsageDescription</key> <string>App需要您的同意,才能访问提醒事项</string> <key>NSMotionUsageDescription</key> <string>App需要您的同意,才能访问运动与健身</string> <key>NSHealthUpdateUsageDescription</key> <string>App需要您的同意,才能访问健康更新</string> <key>NSHealthShareUsageDescription</key> <string>App需要您的同意,才能访问健康分享</string> <key>NSBluetoothPeripheralUsageDescription</key> <string>App需要您的同意,才能访问蓝牙</string> <key>NSAppleMusicUsageDescription</key> <string>App需要您的同意,才能访问媒体资料库</string>
-
在 Xcode 中编辑
Xcode 提供了一个可编辑的列表,允许我们添加、删除和编辑具体的配置项。