初体验遇到的问题

下载 Flutter SDK 并配置环境变量

Flutter 的 SDK 需要独立下载,需要去 https://flutter.cn/docs/development/tools/sdk/releases?tab=macos 下载最近的 sdk,放到某个目录。

然后解压,并配置环境变量。

exportPATH="$PATH:`pwd`/flutter/bin"source~/.zshrc  #替换你自己的 shell 配置文件路径

Flutter 依赖一些其他的工具,可以运行flutter doctor命令来查看依赖是否完善。

拿我的电脑举例:

➜  flutter git:(stable)flutter doctorDoctorsummary(to see all details,run flutter doctor-v):[✓]Flutter(Channel stable,v1.9.1+hotfix.2,on Mac OS X10.1418A391,locale    zh-Hans-CN)[!]Android toolchain-developforAndroiddevices(Android SDK version28.0.3)!Some Android licenses not accepted.To resolvethis,run:flutter doctor--android-licenses[!]Xcode-developforiOS andmacOS(Xcode10.1)!CocoaPods outofdate(1.6.0is recommended).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 upgrade:sudo gem install cocoapods        pod setup[!]AndroidStudio(version3.5)✗ Flutter plugin not installed;thisadds Flutter specific functionality.✗ Dart plugin not installed;thisadds Dart specific functionality.[✓]VSCode(version1.33.0)[!]Connected device!No devices available!Doctor found issuesin8categories.

flutter doctor 检查出了几个问题:

问题 1:Some Android licenses not accepted.  To resolve this, run:

flutter doctor--android-licenses

然后按提示输入y,直到所有的 licenses 都被 ac,到最后展示成这样。

Accept?(y/N):yAll SDKpackagelicenses accepted

问题 2:CocoaPods out of date (1.6.0 is recommended). To upgrade:

sudo gem install cocoapods

pod setup

第一步会安装 cocoapods  各种工具,第二步骤会 Setting up CocoaPods master repo。

耐心等待即可。

最后看到这个就算对了:

CocoaPods1.8.0.beta.2is available.To update use:`sudo gem install cocoapods --pre`[!]This is a test version we'd love you totry.For more information,see https://blog.cocoapods.org and the CHANGELOGforthisversion at https://github.com/CocoaPods/CocoaPods/releases/tag/1.8.0.beta.2Setup completed

问题 3

✗ Flutter plugin not installed; this adds Flutter specific functionality.

✗ Dart plugin not installed; this adds Dart specific functionality.

解法,在 AS 安装一下 Flutter 插件。

再次验证下:

➜~flutter doctorDoctorsummary(to see all details,run flutter doctor-v):[✓]Flutter(Channel stable,v1.9.1+hotfix.2,on Mac OS X10.1418A391,locale    zh-Hans-CN)[✓]Android toolchain-developforAndroiddevices(Android SDK version28.0.3)[✓]Xcode-developforiOS andmacOS(Xcode10.1)[✓]AndroidStudio(version3.5)[✓]VSCode(version1.33.0)[✓]Connecteddevice(1available)

可以看到,必须的都已经 OK 了。

配置 iOS 开发环境

安装 Xcode,在 AppStore 下载即可,要求 9.0 及以上

配置 Xcode command-line tools :sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer

运行一次 Xocde 或者通过输入命令sudo xcodebuild -license来确保已经同意 Xcode 的许可协议。

如果以前下载过 Xcode 用过终端,那么应该没问题。

然后启动一个 iPhone5S 之后版本的模拟器,我选了 XS。

open-a Simulator

创建一个 Flutter 工程,并部署到模拟器。

flutter create helloflutter

cd helloflutter

flutter run

执行上面三个命令就可以创建并部署到模拟器。

创建的工程目录:

➜  helloflutter lltotal32-rw-r--r--1mingjue  staff54291115:48README.mddrwxr-xr-x12mingjue  staff38491115:58androiddrwxr-xr-x9mingjue  staff28891116:00build-rw-r--r--1mingjue  staff89691115:48helloflutter.imldrwxr-xr-x8mingjue  staff25691115:49iosdrwxr-xr-x3mingjue  staff9691115:48lib-rw-r--r--1mingjue  staff327991115:48pubspec.lock-rw-r--r--1mingjue  staff266491115:48pubspec.yamldrwxr-xr-x3mingjue  staff9691115:48test

注:代码放在 lib/ 下面。

运行日志:

➜  helloflutter flutter runLaunching lib/main.dart on iPhone XSindebug mode...Running Xcode build...├─Assembling Flutter resources...8.0s └─Compiling,linking and signing...15.2sXcode build done.26.1sSyncing files to device iPhone XS...2,387ms(!)?To hot reload changeswhilerunning,press"r".To hotrestart(and rebuildstate),press"R".An Observatorydebuggerand profiler on iPhone XS is available at:http://127.0.0.1:49877/1KhXC2nzaFc=/For a more detailed help message,press"h".To detach,press"d";to quit,press"q".

跑起来如图:

注意:如果要部署到真机,还需要开发者账号,我没有就没试。

配置 Android 开发环境

Android 也有模拟器跟真机的选择,鉴于 Android 模拟器的性能,我选择了真机。

真机跟普通的 Android 开发差不多,开启开发者模式,允许 USB debugging 即可。

然后运行flutter devices命令确保 Flutter 可以识别我们的设备。

同 iOS,运行 flutter run 部署到 Android 手机上。

➜  helloflutter flutter run-d 91ab18e5Launching lib/main.dart on MI NOTE LTEindebug mode...Initializing gradle...17.3sResolving dependencies...81.4sRunning Gradle task'assembleDebug'...Running Gradle task'assembleDebug'...Done43.2sBuilt build/app/outputs/apk/debug/app-debug.apk.Installing build/app/outputs/apk/app.apk...18.5sSyncing files to device MI NOTE LTE...2,104ms(!)?To hot reload changeswhilerunning,press"r".To hotrestart(and rebuildstate),press"R".An Observatorydebuggerand profiler on MI NOTE LTE is available at:http://127.0.0.1:50410/wvUWXqgNfBE=/For a more detailed help message,press"h".To detach,press"d";to quit,press"q".

在 Android 上启动截图:

注:当电脑连着多个设备或模拟器时,flutter run 可以通过 -d deviceId 来指定要 run 到哪个设备,例如flutter run -d 91ab18e5,或者flutter run -d all部署到所有的设备。

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

推荐阅读更多精彩内容

  • Making it easy to add Flutter to an existing app is work ...
    共田君阅读 1,942评论 0 2
  • 本文先介绍一下现有工程如何集成 Flutter 实现混合开发,以及混合项目如何打包,再探索下如何降低原生和 Flu...
    koin447阅读 5,620评论 1 37
  • 我是小团子 这个名字伴随着我度过了整整六年 哦不对 应该说是整整一辈子 小时候不懂事倒没什么 可稍微大了一些后 就...
    面瘫书生阅读 706评论 0 0
  • 白天抽空和媳妇去看了《哪吒之魔童降世》,笑中有泪,想的最多的还是什么时候能够带哼哼和曦曦看个电影。 相对于电影本身...
    张大箱阅读 151评论 0 2
  • 人生难的 心事是装满桶的水,有一点缝隙都会外溢。痛就痛了,痛,让你认识自己,也看清了别人。败就败了,站起来拍拍灰尘...
    豫草根阅读 226评论 0 0