flutter填坑之旅(环境搭建篇--mac系统)

上次配置过Mac到flutter环境,但是由于最近系统更新了,什么都没了又得从新配置,发现自己竟然好多都忘记了,看来还是得把它记下来才行

在Mac上安装并运行Flutter 最低要求:

  • 操作系统:macOS(64-bit)
  • 磁盘空间:700MB(不包括Xcode或者Android Studio的磁盘空间)
  • 工具:Flutter 依赖 这些命令行工具bash curl git 2.x mkdir rm unzip which (可以使用检测一下没有都安装上免得后期出问题)
    mac安装git可以参考https://www.jianshu.com/p/7edb6b838a2e

一、设置 Flutter 镜像

配置flutter国内镜像

// 直接到用户目录 下 运行 open -e .bash_profile 在文件中增加如下
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn

注意这个镜像地址不能保证永远可以用,得随时关注Useing Flutter in China这个官网

二、获取Flutter SDK

2.1 下载flutter sdk

flutter官网获取对应得flutter sdk https://flutter.dev/docs/development/tools/sdk/releases?tab=macos

image

推荐最好下载 stable channel这个稳定版本
image

2.2 解压

## development 这个根据自己实际得目录更改
$ cd ~/development
## 下面~/ 后得目录和下载得flutter版本根据自己实际名称更改
$ unzip ~/Downloads/flutter_macos_v1.2.1-stable.zip

具体操作:


taodeMacBook-Pro:~ tao$ cd ~/dev-flutter/
taodeMacBook-Pro:dev-flutter tao$ ls
android-sdk
taodeMacBook-Pro:dev-flutter tao$ unzip ~/Downloads/flutter_macos_v1.7.8+hotfix.4-stable.zip 
taodeMacBook-Pro:dev-flutter tao$ ls
android-sdk flutter
taodeMacBook-Pro:dev-flutter tao$ 
taodeMacBook-Pro:dev-flutter tao$ ls flutter/
AUTHORS         README.md       examples
CODE_OF_CONDUCT.md  analysis_options.yaml   flutter_console.bat
CONTRIBUTING.md     bin         flutter_root.iml
LICENSE         dartdoc_options.yaml    packages
PATENTS         dev         version
taodeMacBook-Pro:dev-flutter tao$ 

2.3 添加flutter相关工具到path中
 export PATH="$PATH:`pwd`/flutter/bin"

该命令只是一次性的,对当前对terminal 设置里一个flutter的环境变量,等关闭里电脑下次又得重新设置,想要设置个永久性的还是要
将解压得路径配置到.bash_profile中去

输入命令打开.bash_profile


taodeMacBook-Pro:dev-flutter tao$ open ~/.bash_profile
taodeMacBook-Pro:dev-flutter tao$ 

在最后增加如下内容:


export PATH=/Users/tao/dev-flutter/flutter/bin:$PATH
export ANDROID_HOME="/Users/tao/Library/Android/sdk"
export PATH=${PATH}:${ANDROID_HOME}/tools
export PATH=${PATH}:${ANDROID_HOME}/platform-tools
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cnexport PATH="/usr/local/opt/gettext/bin:$PATH"

其中export PATH=/Users/tao/dev-flutter/flutter/bin:$PATH 这个是配置的flutter
解压的目录(需要指定到flutter下面到bin目录下)
其中export ANDROID_HOME="/Users/tao/Library/Android/sdk"配置里Android sdk 路径

taodeMacBook-Pro:dev-flutter tao$ flutter doctor
  ╔════════════════════════════════════════════════════════════════════════════╗
  ║ A new version of Flutter is available!                                     ║
  ║                                                                            ║
  ║ To update to the latest version, run "flutter upgrade".                    ║
  ╚════════════════════════════════════════════════════════════════════════════╝


Doctor summary (to see all details, run flutter doctor -v):
[!] Flutter (Channel stable, v1.7.8+hotfix.4, on Mac OS X 10.15 19A602, locale
    zh-Hans-CN)
    ✗ Downloaded executables cannot execute on host.
      See https://github.com/flutter/flutter/issues/6207 for more information

 
[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
[!] Xcode - develop for iOS and macOS (Xcode 11.1)
    ✗ CocoaPods not installed.
        CocoaPods is used to retrieve the iOS and macOS platform side's plugin
        code that responds to your plugin usage on the Dart side.
        Without CocoaPods, plugins will not work on iOS or macOS.
        For more info, see https://flutter.dev/platform-plugins
      To install:
        brew install cocoapods
        pod setup
[✓] iOS tools - develop for iOS devices
[✓] Android Studio (version 3.5)
[✓] IntelliJ IDEA Ultimate Edition (version 2018.3.4)
[!] Connected device
    ! No devices available

! Doctor found issues in 3 categories.
taodeMacBook-Pro:dev-flutter tao$ 

运行flutter doctor 进行环境检测,会发现用很多依赖缺失,根据提示一一安装
但是还有一个提示我的mac和我下载的flutter好像不兼容

Doctor summary (to see all details, run flutter doctor -v):
[!] Flutter (Channel stable, v1.7.8+hotfix.4, on Mac OS X 10.15 19A602, locale
    zh-Hans-CN)
    ✗ Downloaded executables cannot execute on host.
      See https://github.com/flutter/flutter/issues/6207 for more information

直接运行flutter upgrade 安装个最新版本的就好了


taodeMacBook-Pro:dev-flutter tao$ flutter upgrade
Upgrading Flutter from /Users/tao/dev-flutter/flutter...
../../third_party/dart/runtime/bin/snapshot_utils.cc: 149: error: Failed to memory map snapshot: /Users/tao/dev-flutter/flutter/bin/cache/dart-sdk/bin/snapshots/kernel-service.dart.snapshot

version=2.4.0 (Wed Jun 19 11:53:45 2019 +0200) on "macos_x64"
thread=5891, isolate=(null)(0x0)

【注意⚠️命令中请使用 sudo 否则有些会提示错误】
像这个 执行个flutter doctor都报错

taodeMacBook-Pro:repos tao$ flutter doctor
Failed to write the version file to the artifact cache: "FileSystemException:
Cannot open file, path = '/Users/tao/dev-flutter/flutter/version' (OS Error:
Permission denied, errno = 13)".
Please ensure you have permissions in the artifact cache directory.
Failed to write the version file

废话少说继续吧...

## 在执行一次
taodeMacBook-Pro:dev-flutter tao$ sudo flutter doctor -v
   Woah! You appear to be trying to run flutter as root.
   We strongly recommend running the flutter tool without superuser privileges.
  /
📎
Downloading Dart SDK from Flutter engine d004bcd4d619fc3574761d63d7cf7b7291332c79...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  121M  100  121M    0     0  4763k      0  0:00:26  0:00:26 --:--:-- 3986k
## 这里还会有很多下载,就不贴了
## 最后会显示flutter及dart 版本信息和缺失的依赖
taodeMacBook-Pro:dev-flutter tao$ sudo flutter doctor
Password:
   Woah! You appear to be trying to run flutter as root.
   We strongly recommend running the flutter tool without superuser privileges.
  /
📎
Downloading Dart SDK from Flutter engine b863200c37df4ed378042de11c4e9ff34e4e58c9...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  263M  100  263M    0     0  5236k      0  0:00:51  0:00:51 --:--:-- 5379k
Building flutter tool...
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, v1.9.1+hotfix.6, on Mac OS X 10.15 19A602, locale
    zh-Hans-CN)
 
[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
[!] Xcode - develop for iOS and macOS (Xcode 11.1)
    ✗ CocoaPods installed but not working.
        You appear to have CocoaPods installed but it is not working.
        This can happen if the version of Ruby that CocoaPods was installed with
        is different from the one being used to invoke it.
        This can usually be fixed by re-installing CocoaPods. For more info, see
        https://github.com/flutter/flutter/issues/14293.
      To re-install CocoaPods, run:
        sudo gem install cocoapods
[✓] Android Studio (version 3.5)
[✓] IntelliJ IDEA Ultimate Edition (version 2018.3.4)
[!] Connected device
    ! No devices available

! Doctor found issues in 2 categories.

看提示好像还差一个cocoapods 再手工装一个

注意⚠️Mac 中文件查找使用 which directoryName 而不建议使用 find ~/ -name 'directoryName'


sudo gem install cocoapods

但是会发现执行了如上命令几次依然提示通用错误,解决方法是


taodeMacBook-Pro:dev-flutter tao$ cd ~/.cocoapods/repos
taodeMacBook-Pro:repos tao$ git clone https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git master
fatal: 目标路径 'master' 已经存在,并且不是一个空目录。
taodeMacBook-Pro:repos tao$ ls
master
taodeMacBook-Pro:repos tao$ rm -rf master/


taodeMacBook-Pro:repos tao$ 
taodeMacBook-Pro:repos tao$ 
taodeMacBook-Pro:repos tao$ git clone https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git master
正克隆到 'master'...

手动删除老版本,克隆新版本
这个方法最后证实是失败的....


 brew reinstall libimobiledevice
 brew install --HEAD libimobiledevice
 brew upgrade cocoapods
 

全部都又执行了一次,最后依然报错麻麻但,不晓得咋搞,ruby我东重新装过了
【最后我去官网从新下载了个flutter_macos_v1.9.1+hotfix.5-stable.zip

image

然后解压测试👌了妈蛋垃圾问题(推测是Mac版本兼容问题,出错都版本是10.14.1 而目前最新都版本为10.15.1)


taodeMacBook-Pro:dev-flutter tao$ unzip ~/Downloads/flutter_macos_v1.9.1+hotfix.5-stable.zip 
taodeMacBook-Pro:dev-flutter tao$ flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, v1.9.1+hotfix.5, on Mac OS X 10.15.1 19B88, locale zh-Hans-CN)
 
[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
[✓] Xcode - develop for iOS and macOS (Xcode 11.1)
[✓] Android Studio (version 3.5)
[✓] IntelliJ IDEA Ultimate Edition (version 2018.3.4)
[!] Connected device
    ! No devices available

! Doctor found issues in 1 category.

还有输入flutter doctor 会提示

image

这个千万别点击 移到废纸篓;那样flutter运行就会出问题了

三、IOS开发环境设置

3.1 Xcode 安装

1、直接去Apple store 下载 对应得Xcode 然后安装这个没有什么说的


image

点击下载得图标


image

在启动台里得右下角你会看见一个正在下载得xcode
image

安装完成再安装些必须的组件


image

2、配置Xcode 命令行工具以使用新安装得Xcode版本


$ sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer

注意/Applications/Xcode.app/Contents/Developer 对应得是自己得Xcode 得安装路径

3、 打开Xcode 许可协议,执行如下命令


$ sudo xcodebuild -license

3.2 设置iOS 模拟器

使用命令开启iOS模拟器


$ sudo open -a Simulator

四、Android开发环境设置

官网下载 android studio :https://developer.android.google.cn/studio)

image

image

下载完成直接点着左边得Android Studio 拖到右边得Applications文件里去,他就会提示你安装了
image

接下来就是下一步下一步直到安装结束
image

安装完成后记得配置安装dart和flutter 插件
配置dart

配置dart

五、新建项目

控制台执行 flutter create proj_name


taodeMacBook-Pro:flutter-project tao$ flutter create my_first_app_test
  my_first_app_test/.idea/workspace.xml (created)
Running "flutter pub get" in my_first_app_test...                   3.1s
Wrote 65 files.

All done!
[✓] Flutter is fully installed. (Channel stable, v1.9.1+hotfix.5, on Mac OS X
    10.15.1 19B88, locale zh-Hans-CN)
[✓] Android toolchain - develop for Android devices is fully installed. (Android
    SDK version 29.0.2)
[✓] Xcode - develop for iOS and macOS is fully installed. (Xcode 11.1)
[✓] Android Studio is fully installed. (version 3.5)
[✓] IntelliJ IDEA Ultimate Edition is fully installed. (version 2018.3.4)
[!] Connected device is not available.

Run "flutter doctor" for information about installing additional components.

In order to run your application, type:

  $ cd my_first_app_test
  $ flutter run

Your application code is in my_first_app_test/lib/main.dart.

然后flutter run直接来跑一哈

## 启动iOS模拟器
taodeMacBook-Pro:flutter-project tao$ open -a Simulator
taodeMacBook-Pro:flutter-project tao$ ls
my_app          my_first_app        my_first_app_test
taodeMacBook-Pro:flutter-project tao$ cd my_first_app_test/
taodeMacBook-Pro:my_first_app_test tao$ flutter run

模拟测试
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,558评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,002评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,036评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,024评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,144评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,255评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,295评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,068评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,478评论 1 305
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,789评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,965评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,649评论 4 336
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,267评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,982评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,223评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,800评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,847评论 2 351

推荐阅读更多精彩内容