iOS老项目通过Cocoapods集成Flutter(iOS混编Flutter)

本文详细介绍了如何在已有的iOS项目中通过Cocoapods集成Flutter,包括Flutter环境配置、关闭Bitcode、创建Flutter模块、更新Podfile、使用FlutterViewController、处理返回操作以及Dart的入口函数设置。过程中需要注意Flutter与iOS的交互细节,确保插件能够接收到必要的回调。
摘要由CSDN通过智能技术生成

 

1、Flutter环境配置 Flutter中文网 跟着里面一步一步来就完事了。

 

2、iOS工程Enable Bitcode 需要关闭,因为Flutter混合开发目前还不支持Bitcode

 

3、创建flutter module

FlutterMixDemo/BaseFramework/  (BaseFramework 是我的 iOS 工程项目)
进入在 FlutterMixDemo 目录下,终端执行命令:
flutter create -t module flutter_module 

flutter_module是自己起的名字,记得字母都要小写,不然会报错。

这里也有Flutter官方网站英文文档 → iOS接入Flutter教程

 

4、添加以下代码到Podfile:(没有Podfile怎么办?终端先cd到BaseFramework项目里,执行pod init)

platform :ios, '9.0'


target 'BaseFramework' do
  # Comment the next line if you don't want to use dynamic frameworks
  use_frameworks!

  #需要添加的代码  flutter_module是自己创建的名字
  flutter_application_path = '../flutter_module'
  load File.join(flutter_application_path, '.ios', 'Flutter', 'podhelper.rb')
  install_all_flutter_pods(flutter_application_path)

end

执行pod install,如果有报错,根据错误提示一个个解决,具体哪些报错不懂的话就谷歌百度吧。。。

注意:当你在flutter_module/pubspec.yaml中有改变了Flutter插件的依赖关系时(不管有没修改啥,只要按了command+s保存后),一定要在BaseFramework(自己的项目)里再次运行pod install。

 

5、在iOS应用里使用 FlutterViewController

创建FlutterEngine

AppDelegate.h

@import UIKit;
@import Flutter;

@interface AppDelegate : FlutterAppDelegate
@property (nonatomic,strong) FlutterEngine *flutterEngine;
@end
AppDelegate.m

#import <FlutterPluginRegistrant/GeneratedPluginRegistrant.h> // Used to connect plugins.

#import "AppDelegate.h"

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application
    didFinishLaunchingWithOptions:(NSDictionary<UIApplicationLaunchOptionsKey, id> *)launchOptions {
  self.flutterEngine = [[FlutterEngine alloc] initWithName:@"my flutter engine"];
  // Runs the default D
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值