Flutter开发-环境搭建(MAC)

前言

文中的Bash、ZSH、Fish是不同的Shell,Bash是系统默认的,ZSH是安装iTrem2上带的,Fish是一个能自动提示输入的Shell。

设置Homebrew镜像

根据自己用的Shell进行下面的操作

Bash/Zsh配置

替换brew.git

1
2
cd "$(brew --repo)"
git remote set-url origin https://mirrors.ustc.edu.cn/brew.git

替换homebrew-core.git

1
2
cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-core.git

替换 cask 软件仓库(提供 macOS 应用和大型二进制文件)

1
2
cd "$(brew --repo)"/Library/Taps/homebrew/homebrew-cask
git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-cask.git

更新

1
brew update

替换Homebrew Bottles

对于bash用户:

1
echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles' >> ~/.bash_profile

立即生效

1
source ~/.bash_profile

对于zsh用户:

1
echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles' >> ~/.zshrc

立即生效

1
source ~/.zshrc

Bash/Zsh换回官方源

第一步:重置brew.git

1
2
cd "$(brew --repo)"
git remote set-url origin https://github.com/Homebrew/brew.git

第二步:重置homebrew-core.git

1
2
3
4
cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
git remote set-url origin https://github.com/Homebrew/homebrew-core.git
cd
brew update

第三步:注释掉bash配置文件里的有关Homebrew Bottles即可恢复官方源。 重启bash或让bash重读配置文件。

Fish配置

替换brew.git

1
2
cd (brew --repo)
git remote set-url origin https://mirrors.ustc.edu.cn/brew.git

替换homebrew-core.git

1
2
3
4
cd (brew --repo)/Library/Taps/homebrew/homebrew-core
git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-core.git
cd
brew update

报错

Permission denied @ dir_s_mkdir - /usr/local/share/fish/vendor_completions.d

解决方法

1
2
sudo mkdir /usr/local/share/fish/vendor_completions.d
sudo chown (whoami):admin /usr/local/share/fish/vendor_completions.d

替换 cask 软件仓库(提供 macOS 应用和大型二进制文件)

1
2
cd (brew --repo)/Library/Taps/homebrew/homebrew-cask
git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-cask.git

更新

1
brew update

替换Homebrew Bottles

打开配置文件

1
vi ~/.config/fish/config.fish

添加如下配置

1
set HOMEBREW_BOTTLE_DOMAIN https://mirrors.ustc.edu.cn/homebrew-bottles

立即生效

1
fish

查看是否生效

1
echo $HOMEBREW_BOTTLE_DOMAIN

安装Dart

镜像地址

https://mirrors.tuna.tsinghua.edu.cn/flutter/flutter_infra/flutter/

1
2
brew tap dart-lang/dart
brew install dart

设置Flutter镜像

查看PATH

1
echo $PATH

永久设置

1
2
cd ~
pwd

比如我的是/Users/zhangjian

打开配置文件

根据自己用的Shell进行配置

Bash shell配置步骤

1
open ~/.bash_profile

添加以下配置

1
2
3
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
export PATH="/Users/zhangjian/flutter/bin:$PATH"

让配置立即生效

1
source ~/.bash_profile

Zsh配置步骤

1
open ~/.zshrc

添加以下配置

1
2
3
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
export PATH="/Users/zhangjian/flutter/bin:$PATH"

让配置立即生效

1
source ~/.zshrc

Fish Shell配置步骤

1
vi ~/.config/fish/config.fish

添加如下配置

1
2
3
set PUB_HOSTED_URL "https://pub.flutter-io.cn"
set FLUTTER_STORAGE_BASE_URL "https://storage.flutter-io.cn"
set PATH /Users/zhangjian/flutter/bin $PATH

重新调用fish

1
fish

查看是否设置成功

1
echo $PUB_HOSTED_URL

安装Flutter

Flutter中文网

1
2
cd ~
git clone -b beta https://github.com/flutter/flutter.git

克隆的地址也可以从码云上找

克隆码云上的

1
git clone -b stable https://gitee.com/psvmc/flutter

运行Flutter

删除之前的临时文件

1
rm -rf ~/flutter/bin/cache/lockfile

接下来运行

1
2
cd ./flutter
flutter doctor

这个命令会告诉你你的flutter还缺少什么依赖

接着运行

1
flutter

第一次运行flutter它会自动下载一些依赖,并且进行自动编译。

随后再次运行flutter就会跳过这些步骤。

安装完flutter以后google analytics默认是自动打开的,国内建议选择关闭:

1
flutter config --no-analytics

安装AS插件

Android StudioPlugins 查找dartflutter并安装。

创建项目

1
2
3
cd ~
cd Downloads
flutter create my_flutter_app

连接上手机 运行项目

1
2
cd my_flutter_app
flutter run

在项目目录中,您应用程序的代码位于 lib/main.dart

添加新包后需要运行一下命令下载依赖

1
flutter packages get

卡在Initializing gradle

运行时会卡在Initializing gradle, 这是因为Android项目会用到Gradle, 如果没有FQ,下载速度会非常慢,

此时我们可以在项目中的android/gradle/wrapper/gradle-wrapper.properties中查看gradle版本号以及地址,

我们可以手动下载然后解压到~/.gradle/wrapper/dists/中。

卡在Running gradle assembleDebug

修改Flutter的配置

该文件在Flutter安装目录/packages/flutter_tools/gradle/flutter.gradle

1
2
3
4
5
6
7
8
9
10
11
12
13
14
buildscript {
repositories {
//修改的地方
//google()
//jcenter()
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/jcenter' }
maven { url 'https://maven.aliyun.com/nexus/content/groups/public' }
maven { url 'http://download.flutter.io' }
}
dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
}
}

修改项目下配置

该文件在项目中android/build.gradle

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
buildscript {
ext.kotlin_version = '1.3.50'
repositories {
// 修改的地方
// google()
// jcenter()
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/jcenter' }
maven { url 'https://maven.aliyun.com/nexus/content/groups/public' }
maven { url 'http://download.flutter.io' }
}

dependencies {
classpath 'com.android.tools.build:gradle:3.5.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}

allprojects {
repositories {
// 修改的地方
// google()
// jcenter()
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/jcenter' }
maven { url 'https://maven.aliyun.com/nexus/content/groups/public' }
maven { url 'http://download.flutter.io' }
}
}

rootProject.buildDir = '../build'
subprojects {
project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
project.evaluationDependsOn(':app')
}

task clean(type: Delete) {
delete rootProject.buildDir
}

错误

Could not find io.flutter:x86_64_debug:1.0.0

如上所示添加

1
maven { url 'http://download.flutter.io' }

问题

运行卡住

Waiting for another flutter command to release the startup lock

  • 1、打开flutter的安装目录/bin/cache/
  • 2、删除lockfile文件
  • 3、重启AndroidStudio
1
rm -rf ~/flutter/bin/cache/lockfile

插件安装不生效

Android studio安装插件后没有New Flutter Project选项的

  • Android Studio更新到3.0.0以上的版本
  • 并去File->Setting->Plugins更新FlutterDrat插件即可

环境变量不生效

解决 Mac 下配置环境变量在 ZSH 中无效的问题

在配置 gradle 的时候, 发现在 /etc/profiles 中设置了环境变量后, 还是不能在 zsh 中使用.

但在 Terminal 中可以正常使用. 后来发现是因为没有在 .zshrc 中配置.

在终端中输入:

1
open ~/.zshrc

以此来查看 .zshrc 文件, 找到里面的 # User configuration 部分. 可以看到当前 zsh 支持的所有本地已配置环境变量.

1
2
3
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
export PATH="/Users/zhangjian/flutter/bin:$PATH"

里面追加一条想要配置的环境变量路径.

重启 item2 即可。

adb is too old

下载ADB

1
brew cask install android-platform-tools

下载后的位置

/usr/local/Caskroom/android-platform-tools/

打开下载位置

1
open /usr/local/Caskroom/android-platform-tools/

找到里面的platform-tools文件夹复制到Android Studio对应的SDK目录 覆盖即可