系统要求
- 有能访问外网的 VPN
- macOS 64bit
- Xcode 或者 Android Studio,或者两者都有
- 命令行工具:
bash, mkdir, rm, git, curl, unzip
下载SDK
- 下载最新的 flutter SDK 列表
- 把压缩包放到你喜欢的地方,比如,
Documents
目录下 - 双击解压缩,或通过命令:
unzip ~/Documents/下载下来的包-beta.zip
添加 flutter
命令
解压缩后,不要急着进入 flutter
文件夹,还停留在 Documents
目录下(或者执行 cd ~/Documents
切到这个目录),为了避免: command not found: flutter
也就是能在任意一个窗口和路径下执行 flutter
命令,可以在 .zshrc
或者 .bash_profile
或者 /.bashrc
文件里添加如下命令:
$ export PATH=$PATH:/PATH_TO_FLUTTER_GIT_DIRECTORY/flutter/bin
如果你是按照上面说的放在 Documents
下 那么 PATH_TO_FLUTTER_GIT_DIRECTORY
就是 Documents
的路径
检查环境依赖
新建新的命令窗口,执行下面命令来检测本机环境依赖
$ flutter doctor
输出如下:
[✓] Flutter (Channel beta, v0.11.3, on Mac OS X 10.14 18A391, locale zh-Hans-CN)
[✗] Android toolchain - develop for Android devices
✗ Unable to locate Android SDK.
Install Android Studio from: https://developer.android.com/studio/index.html
On first launch it will assist you in installing the Android SDK components.
(or visit https://flutter.io/setup/#android-setup for detailed instructions).
If Android SDK has been installed to a custom location, set $ANDROID_HOME to that location.
You may also want to add it to your PATH environment variable.
[!] iOS toolchain - develop for iOS devices (Xcode 9.4.1)
✗ libimobiledevice and ideviceinstaller are not installed. To install with Brew, run:
brew update
brew install --HEAD usbmuxd
brew link usbmuxd
brew install --HEAD libimobiledevice
brew install ideviceinstaller
✗ ios-deploy not installed. To install with Brew:
brew install ios-deploy
[!] Android Studio (not installed)
[✓] VS Code (version 1.29.0)
[✓] Connected device (2 available)
显示叉号 ✗
的,表示相应的工具没有安装。其中比较重要的两大开发工具是:Xcode
和 Android Statudio
。
如果这两个没有安装,需要根据你的开发者身份,安装对应的开发工具
部署 iOS 环境
- 首先需要安装
Xcode
,最好是最新版本的 - 启动
Xcode
,同意它的license
等(适用于新装Xcode
) - 为
Xcode command-line
指定要使用的Xcode
版本:
$ sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
- 选择
iPhone 5s
或之后版本的模拟器,然后执行:
$ open -a Simulator
- 再执行下面的部署命令:
$ brew update
$ brew install --HEAD usbmuxd
$ brew link usbmuxd
$ brew install --HEAD libimobiledevice
$ brew install ideviceinstaller ios-deploy cocoapods
$ pod setup
运行 Flutter 项目
进入某个 flutter
项目目录
$ cd ~/Documents/flutter/examples/hello_world
执行命令,安装 hello_world
到模拟器:
$ flutter run
运行一会后,模拟器已经安装了hello_world
,但并没有launch
。也许会报错:
ProcessException: Process "/usr/bin/xcrun" exited abnormally:
"io.flutter.examples.hello-world": -1
An error was encountered processing the command (domain=FBSOpenApplicationServiceErrorDomain, code=1):
The request to open ""io.flutter.examples.hello-world"" failed.
The request was denied by service delegate (SBMainWorkspace) for reason: NotFound ("Application ""io.flutter.examples.hello-world"" is
unknown to FrontBoard").
Underlying error (domain=FBSOpenApplicationErrorDomain, code=4):
The operation couldn’t be completed. Application ""io.flutter.examples.hello-world"" is unknown to FrontBoard.
Application ""io.flutter.examples.hello-world"" is unknown to FrontBoard.
Command: /usr/bin/xcrun simctl launch 4B7B9269-47FA-47B6-8096-17AB675A3E4F "io.flutter.examples.hello-world" --enable-dart-profiling
--enable-checked-mode --observatory-port=0
Error launching application on iPhone 5s.
这里暴露出了 flutter
的另一个问题:
根据 $(PRODUCT_BUNDLE_IDENTIFIER)
不能成功的launch
模拟器
解决方法是:
- 用
Xcode
打开hello-world
项目 - 找到
info.plist
- 修改
Bundle identifier
的值为io.flutter.examples.hello-world
再次执行 flutter run
. 模拟器成功 launch
.
部署 Android
- 下载安装 Android Studio.
- 启动
Android Studio
,执行“Android Studio Setup Wizard”
- 安卓设备启用
Developer options
和USB debugging
. 这个文档有详细说明 Android documentation - 把设备连接到电脑,执行命令
flutter devices
- 启动应用程序
flutter run
Android 模拟器
启用 VM acceleration .
Launch
Android Studio ->Tools -> Android -> AVD Manager
并选择Create Virtual Device
.选择一个设备并选择
Next
为你要模拟的
Android
版本选择一个或多个系统镜像,然后选择Next
. 建议使用x86
或x86_64
镜像 .在
Emulated Performance下
, 选择Hardware - GLES 2.0
启用 硬件加速.验证AVD配置是否正确,选择
Finish
。上述步骤的详细信息,请参阅 Managing AVDs.在
Android Virtual Device Manager
中, 点击Run
启动模拟器运行
flutter run
. 可以看到连接的设备名称是Android SDK built for <x86or其他型号>
至此,Flutter
的环境部署就结束了。