只要不加载DCloudUTSExtAPI插件 人脸识别是正常运行的
- 发布:2025-12-26 11:00
- 更新:2025-12-26 11:01
- 阅读:15
产品分类: uniapp/App
PC开发环境操作系统: Mac
PC开发环境操作系统版本号: 15.4
HBuilderX类型: 正式
HBuilderX版本号: 4.87
手机系统: iOS
手机系统版本号: iOS 18
手机厂商: 苹果
手机机型: iPhone13pro
页面类型: vue
vue版本: vue3
打包方式: 离线
项目创建方式: HBuilderX
操作步骤:
预期结果:
能正常使用AP-FaceDetectModule 能力
能正常使用AP-FaceDetectModule 能力
实际结果:
DCloudUTSExtAPI.framework 中的 DTFIdentityManager 实现不完整:只有2个2方法,缺少 setDataProtocolVersion
运行时加载的 DTFIdentityManager 来自 DCloudUTSExtAPI,framework(动态框架),而不是 AP-FaceDetectModule/ios 中的静态库版本。根本原因:
1.DCloudUTSExtAPI.framework 是动态框架,运行时优先加载并注册类
2.DTFIdentityManager.framework 和 DTFUtility.framework 是静态库(ar archive),无法覆盖动态框架中已注册的类
DCloudUTSExtAPI.framework 中的 DTFIdentityManager 实现不完整:只有2个2方法,缺少 setDataProtocolVersion
运行时加载的 DTFIdentityManager 来自 DCloudUTSExtAPI,framework(动态框架),而不是 AP-FaceDetectModule/ios 中的静态库版本。根本原因:
1.DCloudUTSExtAPI.framework 是动态框架,运行时优先加载并注册类
2.DTFIdentityManager.framework 和 DTFUtility.framework 是静态库(ar archive),无法覆盖动态框架中已注册的类
bug描述:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[DTFIdentityManager setDataProtocolVersion:]: unrecognized selector sent to instance 0x1081ac7a0'
First throw call stack:
(0x188ff40c0 0x18648dabc 0x18905e4c0 0x188f088bc 0x188f08940 0x10a525060 0x10a523f20 0x109362844 0x109362884 0x188f09934 0x188f08fac 0x1072615b4 0x1071d5800 0x1072a20f4 0x188f09934 0x188f08fac 0x1a0663294 0x1a065a6a8 0x1a0659840 0x1a1ba6814 0x1a1ba2c8c 0x1a1ba2c8c 0x1a1ba2c8c 0x1a1ba432c 0x1a1ba432c 0x1a1b769d8 0x1a0838010 0x1a15ead14 0x1a04e922c 0x1a04d9128 0x1a04d8ff0 0x1a0516c08 0x10729febc 0x1071da7ac 0x1071dbb5c 0x1071da524 0x1072b4094 0x1072b2d88 0x187bc9574 0x188ee992c 0x188ee9744 0x188ee95a0 0x188ee9f20 0x188eebadc 0x187b6279c 0x1072b2af0 0x187bc8804 0x21337f344 0x21337cab8)
terminating due to uncaught exception of type NSException
Can't show file for stack frame : <DBGLLDBStackFrame: 0x7fac0b506380> - stackNumber:13 - name:+[AliyunFaceAuthFacade setDataProtocolVersion]. The file path does not exist on the file system: /Users/scmbuild/workspacesigma2/Bundle/AliTechFaceSDK/cp_change_89400918/2.3.39.250813144021/normal/154003330/Sources/AliyunFaceAuthFacade.m
1 个回复
Ask小助手 - Ask社区AI助手
该bug反馈内容较为完整,标题清晰描述了问题本质,BUG描述详细提供了崩溃日志和根本原因分析(类冲突),复现步骤明确(加载DCloudUTSExtAPI导致人脸识别崩溃),预期结果合理,分类信息齐全(含HBuilderX 4.87、iOS 18等关键版本信息)。但缺少可运行的代码示例,不过基于专业描述足以复现。
经分析,该bug成立且非误报。核心问题是iOS平台类加载机制导致的冲突:DCloudUTSExtAPI.framework作为动态框架优先注册了不完整的DTFIdentityManager类(缺少setDataProtocolVersion方法),覆盖了AP-FaceDetectModule静态库中的同名类。知识库显示DCloud持续更新iOS插件(如一键登录SDK更新至3.1.1.0),但未提及此类框架冲突的解决方案,符合iOS开发中动态/静态库混用的典型问题特征。
此非基础概念问题,而是真实技术冲突。建议用户:1) 暂时避免同时使用这两个插件;2) 检查是否有新版DCloudUTSExtAPI修复此问题;3) 若需紧急解决,可尝试修改插件集成方式(如将冲突模块改为静态链接)。DCloud应优化框架设计避免类名冲突,参考UTS插件开发规范确保API完整性。
要回复问题请先登录或注册
公告
更多>相关问题