Flutter Module接入iOS原生工程笔记

4,477 阅读1分钟

创建

在项目的根目录使用终端命令创建, xxx是module的名称

flutter create -i objc -a kotlin -t module xxx

当然 还有 swift、java、objc、kotlin 自己选择。如果不加默认是swift和kotlin;

扩展:flutter create -i swift -a kotlin flutter_example 这个是快捷创建Flutter工程指令

截屏2022-03-10 下午3.43.33.png

创建好后文件目录是这样的

配置podfile文件

flutter_application_path = '../test_flutter_module'
load File.join(flutter_application_path,'.iOS','Flutter','podhelper.rb')

target 'MainProject' do
  install_all_flutter_pods(flutter_application_path)
  
end

完成后执行 pod install

运行一次

如果这时候LLDB报错Library not loaded: @rpath/App.framework/App 那就去Pods-**-frameworks.sh中添加install_framework "${PODS_ROOT}/../../../../Flutter/flutter/.ios/Flutter/App.framework"。注意debug和release都要添加

参考 github.com/flutter/flu…

配置info.plist

    1. 复制一份info.plist文件,分别改成 info-Debug.plistinfo-Release.plist 截屏2022-03-10 下午3.53.16.png
    1. 配置Build-Setting中info.plist设置 截屏2022-03-10 下午3.54.17.png
    1. 设置info-Debug.plist,增加下面两项
  1. NSBonjourServices  -- _dartobservatory._tcp
  2. NSLocalNetworkUsageDescription -- 用于Flutter调试 截屏2022-03-10 下午3.55.13.png

如何热调试

  • AS 点击箭头指示的小图标(没有连接会显示蓝色的小图标,我这里是已经连上设备了) L1VzZXJzL3hpdWppL0xpYnJhcnkvQXBwbGljYXRpb24gU3VwcG9ydC9EaW5nVGFsa01hYy8xMzc2ODA0NjdfdjIvSW1hZ2VGaWxlcy8xNjQ2ODk5MDc5Mzc4XzE4RjU4RTFDLUUyMkEtNDUwQy1CMjA3LUM1MzJCNTg5MzVGQy5wbmc=.png

  • 连上后AS的控制台就会显示已连接 截屏2022-03-10 下午4.00.42.png

  • 断点调试 先打断点,再选择 Frames选项,就能启用断点了 WeChat3fd5b8206438b26ecf9c85a2d06eef33.png

参考 flutter.cn/docs/develo…