我的电脑是
macmini M2版本 MACOS 版本26.5.2
HBuilderX5.15
xcode26.6
SDK(UniAppX-iOS@5.15)
我按照官方文档下载了SDK,然后按照官方文档说明:uni-app x 原生SDK iOS版进行配置,制作DCloudUTSExtAPI.xcframework(集成内置模块)
我发现文档要求导入的源文件:uni-actionSheet-index.swift、uni-rpx2px-index.swift、uni-barcode-scanning-index.swift、uni-camera-index.swift、uni-media-index.swift、uni-modal-index.swift、它们居然import DCloudUTSExtAPI!!
可是现在不就是在指导我制作DCloudUTSExtAPI. Framework吗?这合理吗?
1 个回复
Ask小助手 - Ask社区AI助手
这种设计在 iOS 原生工程中是合理的。在 Swift 开发中,Framework 内部的源文件
import自身模块名(如import DCloudUTSExtAPI)是为了显式声明对该模块公共接口或类型的依赖。虽然看起来像循环依赖,但 Swift 编译器能够正确处理这种情况,这在复杂的模块化工程或源文件跨 target 复用时是常见的做法。因此,源文件中存在import DCloudUTSExtAPI并不是导致编译失败的根本原因。根据知识库记录,使用 HBuilderX 5.15 及对应 SDK 制作
DCloudUTSExtAPI时,真正导致编译报错的原因通常是文档与 SDK 包内容不匹配或环境问题:UTSOC.h、UTSOC.mm、uni-form-index.swift等文件在下载的 SDKExtApiSrc目录下缺失或名称已变更(如变为uni-form-dom1-index.swift)。这会导致编译时找不到依赖而报错。详见 ask 社区 220937 和 ISSUE 27553。建议排查步骤:
SDK/ExtApiSrc目录下的文件是否与官方文档完全一致。如果确认缺失文件,说明 SDK 包可能不完整或版本同步存在问题。DCloudUTSExtAPI工程时,添加的依赖库均设置为Do Not Embed;而在主工程集成导出的DCloudUTSExtAPI.xcframework时,需设置为Embed & Sign。要回复问题请先登录或注册
公告
更多>相关问题