说明

由于使用VSCode和iOS进行联调步骤过于繁琐,所以这里联调所用到的开发工具为Android Studio

联调步骤

1.flutter通过Cocoapods本地导入方式进行集成
集成方式可参考《Flutter初探–iOS项目集成flutter》

Podfile中进行如下配置:

flutter_application_path = ‘path/to/my_flutter/’
load File.join(flutter_application_path, ‘.ios’, ‘Flutter’, ‘podhelper.rb’)

target ‘Example’ do
install_all_flutter_pods(flutter_application_path)
end
target ‘ExampleTests’ do
install_all_flutter_pods(flutter_application_path)
end

2.执行pod installpod update安装成功

3.运行Xcode项目到指定设备

4.执行flutter attach
当iOS项目运行起来以后,执行flutter attach
有两种方式

  • 在Android Studio右上角点击带flutter图标的小手机按钮
  • 在终端执行 flutter attach

命令输出后会输出以下内容

Checking for advertised Dart observatories...
Checking for available port on com.example.xxx._dartobservatory._tcp.local
Checking for authentication code for com.example.xxx._dartobservatory._tcp.local
Syncing files to device XXX的 iPhone...

Syncing files to device XXX的 iPhone...出现时表示代码已经成功同步到设备上了

需要注意的是:当有多个设备时(iPhone或模拟器)执行flutter attach命令,会让你指定设备,这时执行flutter attach -d "device_id"保证和iOS项目运行为同一个设备即可

5.断点调试
在AndroidStudio打上断点即可进行调试

6.热重载
联调过程是支持热重载的,例如修改一些文案或UI布局等,但是有些条件限制,具体内容可看flutter中文网上的使用热重载

以下情况需要重新pod update且重复上述过程(仅供参考,以实际情况为准)

  • 修改pubspec.ymal中的配置,需要执行flutter packages get
  • 新增文件或资源

以下情况需要重新运行iOS项目

  • 修改main.dart main函数中初始化的内容
  • 修改全局使用的静态变量

Flutter实践–flutter与iOS联调