Flutter的配置其实有一些坑。尤其针对iOS开发者不太熟悉Android的开发环境,万事开头难。这里是使用Android Studio 作为开发Flutter的工具,考虑到Google的兼容性。
1、安装Flutter
这里的步骤其实和官方的差不多,大家也可以直接参考官网
1.1、 更新HomeBrew
HomeBrew在Mac电脑默认自带这个工具包。我们只需要安装Flutter之前先升级它。
打开你的终端输入命令。
$ brew update
1.2、 下载Flutter的SDK
1.2.1、进入官网
1.2.2、 选择对应系统
1.2.3、 选择最新版本压缩包下载
1.2.4、 解压SDK包
下载完成后,那么接下来就是安装路径了。
因为Flutter的SDK中包含了很多命令行工具。我们需要配置环境变量,所以建议你安装到你平时放命令行工具程序的地方! 我这里安装在了根目录的opt下!
/opt/flutter (仅供参考,安装在哪里看你自己的习惯)
1.3、 配置环境变量
1.3.1、 配置镜像
因为Flutter 在运行的时候,需要去官方下载所需要的资源.那么没有“梯子”的伙伴你会需要镜像服务器,以下是官方文档的友情提示。
来到你对应Shell
的配置文件进行配置。
如果你使用默认的bash
那么配置 ~/.bash_profile
如果你使用zsh
(Mac
新系统默认是zsh
)那么配置~/.zshrc
#Flutter 镜像配置
$ export PUB_HOSTED_URL=https://pub.flutter-io.cn
$ export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
1.3.2、 配置Flutter环境变量
接下来,将Flutter
命令行工具的路径配置一下。还是对应Shell
的配置文件中
#Flutter 配置
$ export PATH=/opt/flutter/bin:$PATH
注
需要注意的是把/opt/flutter
这个路径,更换为自己的flutter
的路径。而我的路径是/opt/flutter
配置完成后,重新打开终端或者输入命令载入配置
#你自己的配置文件路径
$ source ~/.bash_profile
那么接下来!我们可以看看Flutter
是否配置完成了。Flutter
有一个doctor
检测指令。专门用于检测你的Flutter
环境的。
$ flutter doctor
打钩就是配置OK了. 叉叉就是还没有配置好的.
我们可以看到首先配置好的是Flutter
运行环境!
那么接下来.我们安装!Android Studio!
2、配置安卓环境
2.1、 安装Android Studio
我们先安装Android Studio
可以去国内官网下载
2.2、配置SDK
首次启动会提醒你安装SDK。安装过程无需翻墙。但是有一个工具是需要我们手动安装的。
注意:这一步很多人会忽略,在后面 flutter doctor 会发现许可证问题。然后还会提示升级SDK,其原因就是这一步没有做对!
当我们装好了SDK后,打开Android Studio
- CMD + , 进入偏好设置
- 如下图安装
2.3、 安装Android Studio
的插件
- 来到
Studio
的偏好设置里面.
当跳出安装Dart插件的界面时,也点击Yes进行安装。
- 安装完成后重启Android Studio。可以看到有这样的界面
2.4、 解决许可证问题
-
再次进行
Flutter
的检测flutter doctor
会发现许可证问题!
打开Iterm(终端)输入下列命令,然后一直按y
$ flutter doctor --android-licenses
2.5、 配置安卓的模拟器
- 打开AndroidStudio在工具栏上的模拟器管理
- 我们点开模拟器.选择Create 创建
- 选择设备
- 选择系统并下载
然后下一步! 最后点击完成
注意这里最好给模拟器一个简单的名字.因为后期我们可能会用命令启动模拟器
3、配置iOS环境
-
检测
flutter doctor
解决问题
$ brew link pkg-config
$ brew install --HEAD usbmuxd
$ brew unlink usbmuxd
$ brew link usbmuxd
$ brew install --HEAD libimobiledevice
$ brew install ideviceinstaller
- 配置完成
flutter doctor
4、相关问题解决方案
4.1、 解决Gradle卡主问题
那么在首次运行的时候,你会发现卡在这不动了。原因是Gradle
的Maven
仓库在国外...... 然后你就懂了。
解决它比较简单的操作就是镜像。配置如下:
2.6.1、 修改项目下的 build.gradle
文件
- 文件路径:项目 -->
Android
-->build.gradle
文件 - 修改内容:找到
buildscript
和allprojects
将里面的:
google()
jcenter()
修改为阿里云镜像
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/jcenter' }
maven { url 'http://maven.aliyun.com/nexus/content/groups/public' }
4.2、 修改Flutter
安装目录中的flutter.gradle
文件
- 文件路径:
flutter/packages/flutter_tools/gradle/flutter.gradle
- 修改内容(加入阿里镜像):
buildscript {
repositories {
// google()
// jcenter()
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/jcenter' }
maven { url 'http://maven.aliyun.com/nexus/content/groups/public' }
}
dependencies {
classpath 'com.android.tools.build:gradle:3.5.0'
}
}
4.3、 Flutter
程序运行,由于项目强制退出后,导致工程卡死或锁住
解决方案:进入 flutter/bin/cache
文件夹中,删除 lockfile
文件
注:/bin/cache
前是你放置fluuter
的路径
4.4、 Flutter
运行iphone真机报错:无法打开iproxy
,因为无法验证开发者
解决方案:执行以下命令即可
sudo xattr -r -d com.apple.quarantine [flutter解压后的目录]/flutter/bin/cache/artifacts/libimobiledevice/idevice_id
sudo xattr -r -d com.apple.quarantine [flutter解压后的目录]/flutter/bin/cache/artifacts/libimobiledevice/idevicename
sudo xattr -r -d com.apple.quarantine [flutter解压后的目录]/flutter/bin/cache/artifacts/libimobiledevice/idevicescreenshot
sudo xattr -r -d com.apple.quarantine [flutter解压后的目录]/flutter/bin/cache/artifacts/libimobiledevice/idevicesyslog
sudo xattr -r -d com.apple.quarantine [flutter解压后的目录]/flutter/bin/cache/artifacts/libimobiledevice/ideviceinfo
sudo xattr -r -d com.apple.quarantine [flutter解压后的目录]/flutter/bin/cache/artifacts/usbmuxd/iproxy