由于公司这边即将使用flutter替代已有的iOS的工程架构 我这边也是在加紧学习flutter相关的知识,与时俱进,不断迎接新的挑战,才能保证不被淘汰,许多看似坑爹的问题,刚碰到真是有些怕啊 毕竟是个新的语言,也必须遇到问题解决问题,解决之后发现,原来如此简单 ,许多时候我们都是被自己吓到了,真实的问题可能真的很简单!

先给出官方文档:https://flutter.dev/docs/development/add-to-app/,大神级的人自己看吧 哈哈哈:

1.第一步创建一个新的flutter工程,可以使用代码创建,也可以使用android studio创建 随意

代码: flutter create demo

2.接下来就是在已有的iOS工程podfile文件中引入我们的flutter工程,

代码: 注意第一个path ../代表flutter工程和Xcode工程在同一个文件夹下,当然也可以不在一个文件夹,path放入flutter工程的绝对路径就可以 

flutter_application_path =’../demo/’

load File.join(flutter_application_path,’.ios’,’Flutter’,’podhelper.rb’)

然后在target中输入:

   install_all_flutter_pods(flutter_application_path)

这个对于一个pod对应多个工程很不错

3.如果是已经存在的flutter工程 里面有很多依赖库 此时要先加载依赖库才能开始完全集成

使用代码在flutter工程根目录下:flutter packages pub run build_runner build

4.接着在先运行一下flutter工程,这里我说一下 我们公司的flutter工程因为flutterbugly依赖的关系无法run成功 ,这点坑了我不少时间 我还以为是我自己pod库的原因,哈哈也是自己对flutter不熟悉 本应厚点脸皮多学多问,flutter run -d ‘deviceid’ 如果不知道连接的设备可以:flutter devices 查看设备列表 run成功会生成隐藏的文件.ios 一般看不到,可以在当前目录文件夹命令行输入 ls -a 查看隐藏文件 也可以open .ios 可以产看iOS相关的配置,接着在Flutter文件夹中有一个.rb文件

5.接着在iOS工程下pod install 如果成功 ,则如果出现no file ‘.rb’ 可能就是第4步没有做

6.对于简单的工程这样就完了 ,上面说到我们公司的flutter工程不能单独跑,那这个热重载以及flutter调试怎么办?? 这是捉急,单独运行xcode 怎么能调试flutter🤔,后来发现flutter原来早有准备 flutter attach 功能 可以连接对应的启动设备,这时候使用

flutter attach -d ‘deviceId’ 这样就连接了设备 可以使用热重载和debug调试啦 原来如此简单 同样android studio也有attach的功能,哈哈哈 现在终于可以开心的搞起flutter和iOS的混编了 ,,遇到问题还是不能急,一点点解决才是王道,接着要多多研究更多好玩的功能!

在已有iOS工程中添加flutter工程(flutter+cocoapods)踩坑记录—2020-03-16