官方参考文档
如果AppDelegate已从其他地方继承,可参考
iOS 配置flutter
- 创建flutter moudule 命名为
my_flutter
, 命令行:flutter create -t module my_flutter
- 在已有iOS项目的
Podfile
中添加代码:
# 将flutter_application_path修改成my_flutter所在的路径,可使用相对路径,也可使用绝对路径
use_frameworks!#根据是否引入了swifit来判断是否添加该句代码,作用是使swift可使用oc库, 但是没用swift的话,这句话不能用
flutter_application_path = 'path/to/my_flutter/'
eval(File.read(File.join(flutter_application_path, '.ios', 'Flutter', 'podhelper.rb')), binding)
如果能如此简单就好了,但是一般不会这么容易。如果你对Podfile
中已经使用了post_install
,那么你需要更麻烦的操作。因为Podfile
只能存在一个post_install
,然后podhelper.rb
中就有一个。具体怎么做请查看另一篇文章flutter 单一post_install
的配置
- 命令行运行
pod install
。无论什么时候修改了my_flutter
下的pubspec.yaml
都需要运行该命令,保证插件的iOS部分同步到iOS项目中。 - 添加一个
build phase
, 方便iOS项目编译Dart代码(即my_flutter
中的代码)。步骤:xcode打开iOS项目 -> 选择左侧跟项目 -> TARGET -> 当前项目 ->build phase
-> 点加号添加新的build phase
-> 选择New Run Script Phase
-> 将以下代码复制到sh文本输入框中 -> 将新建的build script
拖到并紧挨arget Dependencies phase
的下边。现在应该可以⌘B
编译项目了。
"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh" build
"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh" embed
- 代码编写,就看原文档吧。需要注意的是,代码
GeneratedPluginRegistrant.register(with: self);
运行可能要蹦。解决方法是:在创建FlutterViewController
后才添加代码GeneratedPluginRegistrant.register(with: fvc)
,fvc
是FlutterViewController
的实例。 - 编写好代码,xcode中可直接运行项目了。先在
my_flutter
下运行flutter attach
的话,可以调试flutter代码
注意事项:
- flutter 要求iOS项目禁用bitcode
- 注意
pod install
以保证flutter中插件与iOS项目中同步 - 在
my_flutter
下运行flutter attach
调试,打印出的http链接,可以复制到浏览器中。注意看打印信息,可以发现更多功能。
网友评论