iOS开发总结iOS FlutterFlutter圈子

Mac 开发flutter的iOS APP 之 Flutter集

2019-08-15  本文已影响1人  Auditore

1.下载flutter的SDK

https://storage.googleapis.com/flutter_infra/releases/stable/macos/flutter_macos_v1.7.8+hotfix.4-stable.zip

2.设置环境变量,前往 ~/.bash_profile,然后设置环境变量

FLUTTER_STORAGE_BASE_URL  https://storage.flutter-io.cn
PUB_HOSTED_URL   https://pub.flutter-io.cn  
export PATH="$PATH:/Users/liudj/Documents/softwareVim/arcanist/bin/"
export PY3PATH=/usr/local/bin/python3 
export FLUTTERPATH=/Users/liudj/Documents/flutter/bin
export PATH=$PATH:$PY3PATH:$FLUTTERPATH
#多条path通过:符号进行拼接
source ~/.bash_profile #修改完以后刷新环境变量

这时候flutter应该就能运行命令了

flutter -h

3.检查环境

flutter doctor

根据检测结果

image

可以看到缺少了iOS tools

根据提示继续输入命令

brew update
brew install --HEAD usbmuxd
brew link usbmuxd
brew install --HEAD libimobiledevice
brew install ideviceinstaller

这时候你会发现各种报错,基本都是提示缺少user/local文件夹权限的,这时候,你打开finder,shift+command+G 打开前往功能,然后输入user/local跳转过去,如果文件夹被隐藏,shift+command+. 打开隐藏。然后你自己新建那些没有权限的文件夹,再重新安装对应的工具就行了,命令一般是brew reinstall XXX这种格式。

Android studio也要安装,安装完以后,如果你有代理工具,最好给Android studio设置一下,因为要安装plugins。如果你是shadowsocks,代理地址就是127.0.0.1:1087,设置完,进入Android studio的preference,搜一下proxy,然后设置好代理,重启AS(代称Android studio)。重启以后进入preference的plugins,搜索flutter,然后安装这个插件,装完重启。这时候你再输入终端命令,flutter doctor,如果报错说Android license的问题,请输入
flutter doctor --android-licenses,如果报错-21,这时候需要进行重新如下命令

sudo chmod -R 777 /var/db/lockdown
brew update
brew uninstall --ignore-dependencies libimobiledevice
brew uninstall --ignore-dependencies usbmuxd
brew install --HEAD usbmuxd
brew unlink usbmuxd
brew link usbmuxd
brew install --HEAD libimobiledevice
brew install ideviceinstaller
flutter doctor (检测是否成功)

PS.如果感觉dart安装太慢了,请设置.bash_profile文件中的PATH环境变量

export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn

将上面两个路径加入到PATH中,可解决dart下载慢的问题,其实是被墙了。谷歌emmm

4.用AS创建一个iOS flutter application

https://flutterchina.club/get-started/test-drive/#create-app
创建好工程以后,你就可以用Android来构建一个可运行与iOS设备上的APP了。这种是全新的一个flutter app,如果要iOS和flutter混编,需要接下去的操作。

可能你很好奇,怎么flutter项目能在iOS设备或者模拟器上跑,这不科学啊,其实非常简单,这个所谓的flutter application项目,就是个混编的xcode project!

证据,当然就是这个Android studio创建出来的flutter application工程,其实里面还包含了iOS工程!路径就在flutter application下的iOS目录里,例如/Users/liudj/AndroidStudioProjects/flutter_app/ios/Runner.xcodeproj,这是我折腾了一下午flutter 混编后的副产物...唉,都是泪。

所以这就是个套壳的xcode工程,那就一点都不神奇了,本质上,Android生成的flutter application在编译安卓app的时候,就用对应的安卓工程,编译iOSAPP就用对应的iOS工程,共同点就是他们都引用了flutter framework。iOS 旧项目混编flutter就是,要自己手动完成Android studio上创建flutter project的过程。

5.iOS项目混编flutter

这是我验证过靠谱的混编攻略,但是步骤不够详细,我亲自试验后,补充了一些,见下方步骤

pod的方式添加flutter,如下链接我试过,然而没成功,你可以自己试试。
http://tryenough.com/flutter03

接着讲,一步步来。

上一篇 下一篇

猜你喜欢

热点阅读