Flutter项目iOS工程构建失败 【Undefined symbols for architecture arm64】

Flutter项目iOS工程构建失败 【Undefined symbols for architecture arm64】

错误描述:flutter sdk升级到2.0后构建iOS工程就一直失败,报错的是我的一个扩展工程(app Extension)报错如下:

Undefined symbols for architecture arm64:
OBJC_CLASS$_FlutterStandardTypedData”, referenced from:
objc-class-ref in flutter_baidu_mapapi_map(BMFMapViewHandles.o)

OBJC_CLASS$_FlutterStandardMessageCodec”, referenced from:
objc-class-ref in aliyun_video_player(CameraViewFactory.o)
objc-class-ref in flutter_baidu_mapapi_map(BMFMapViewController.o)

OBJC_CLASS$_FlutterError”, referenced from:
objc-class-ref in aliyun_video_player(CameraView.o)
objc-class-ref in aliyun_video_player(AliyunVideoPlayerPlugin.o)
objc-class-ref in dim(DimPlugin.o)
objc-class-ref in fluwx(FluwxPlugin.o)
objc-class-ref in ios_image_manager(IosImageManagerPlugin.o)
objc-class-ref in iosvideomanager(IosvideomanagerPlugin.o)
objc-class-ref in permission_handler_apple(PermissionHandlerPlugin.o)

OBJC_CLASS$_FlutterMethodChannel”, referenced from:
objc-class-ref in aliyun_video_player(CameraView.o)
objc-class-ref in aliyun_video_player(AliyunVideoPlayerPlugin.o)
objc-class-ref in dim(DimPlugin.o)
objc-class-ref in flutter_baidu_mapapi_base(FlutterBmfbasePlugin.o)
objc-class-ref in flutter_baidu_mapapi_map(BMFMapViewController.o)
objc-class-ref in flutter_baidu_mapapi_map(BMFOfflineMapManager.o)
objc-class-ref in flutter_baidu_mapapi_map(FlutterBmfmapPlugin.o)

OBJC_CLASS$_FlutterEventChannel”, referenced from:
objc-class-ref in aliyun_video_player(AliyunVideoPlayerPlugin.o)
objc-class-ref in aliyun_video_player(VideoPlayerPlugin.o)
objc-class-ref in aliyun_video_player(CameraViewFactory.o)
objc-class-ref in dim(DimPlugin.o)
“_FlutterMethodNotImplemented”, referenced from:
-[CameraView onMethodCall:result:] in aliyun_video_player(CameraView.o)
-[FLTVideoPlayerPlugin handleMethodCall:result:] in aliyun_video_player(VideoPlayerPlugin.o)
-[DimPlugin handleMethodCall:result:] in dim(DimPlugin.o)
-[FlutterBmfbasePlugin handleMethodCall:result:] in flutter_baidu_mapapi_base(FlutterBmfbasePlugin.o)
___83-[BMFMapViewController initWithWithFrame:viewIdentifier:arguments:binaryMessenger:]_block_invoke in flutter_baidu_mapapi_map(BMFMapViewController.o)
-[BMFOfflineMapManager handleMethodCall:result:] in flutter_baidu_mapapi_map(BMFOfflineMapManager.o)
-[FlutterBmfmapPlugin handleMethodCall:result:] in flutter_baidu_mapapi_map(FlutterBmfmapPlugin.o)

ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

在这里插入图片描述

不同项目引入的插件不同,报错也不同但是差不多是这样子的。

问题分析:

字面意思就是链接不到一些仓库,但是我只是修改了flutter的部分,按理说是不应该影响过到原生构建的。

并且报错的是扩展工程,删除扩展工程后主工程是可以正常运行的。

由于自己本身是Android开发,对iOS了解不多所以采用比较原始的方法,创建新的工程再把代码一点一点的添加过去,通过不断对比终于找到问题所在。

解决:

找到如下配置项:

Targets->[app extension] ->build settings ->linking ->other linker flags

在这里插入图片描述

删除该选项后项目可以正常运行。

不知道这个配置项是怎么变化的,可能是升级Xcode导致的,也可能是某次构建导致的吧。

如果有知道问题产生原因的人,可以留言给我,谢谢🙏

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值