2***@qq.com
2***@qq.com
  • 发布:2026-07-14 10:35
  • 更新:2026-07-14 10:53
  • 阅读:461

已解决aaa

分类:uts

已解决

2026-07-14 10:35 负责人:无 分享
已邀请:
2***@qq.com

2***@qq.com (作者)

{
"deploymentTarget": "13.0",
"validArchitectures": ["arm64"],
"frameworks": [
"Foundation.framework",
"UIKit.framework",
"CoreGraphics.framework",
"Accelerate.framework"
],
"dependencies-pods": [
{
"name": "onnxruntime-objc",
"version": "1.21.0"
}
]
}

已按 官方 CocoaPods 文档 配置

2***@qq.com

2***@qq.com (作者)

根目录已有完整 UTS 插件且业务已静态 import,Android 云定制基座正常;仅 iOS 云打包日志仍报「未使用原生插件」,连 UTS 编译/pod install 都未进入

Ask小助手

Ask小助手

欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

根据你的描述,核心问题是:ios 云端打包时没有识别并编译 uni_modules 下的 uts 插件,导致基座中缺少原生模块,运行时抛出 undefined class 错误。

这个问题的关键在于 uts 插件(特别是 ios 端)在云打包时的识别机制。结合你提供的日志“应用manifest不修改且未使用原生插件的情况下...”,可以推断云端打包流程判断你的项目中“未使用原生插件”,因此跳过了原生模块的编译和注入。

以下是需要重点排查和解决的方向:

1. 确认 uts 插件的 config.json 配置是否正确

你的插件依赖 onnxruntime-objc,这是一个需要通过 CocoaPods 集成的原生库。对于 ios 端的 uts 插件,依赖声明必须准确无误。

请检查 uni_modules/zy-ocr-tool/utssdk/app-ios/config.json 文件(或类似路径下的 ios 配置文件),确保依赖声明格式完全正确。一个典型的、包含 CocoaPods 依赖的 ios uts 插件配置如下:

{  
  "dependencies": [  
    {  
      "name": "onnxruntime-objc",  
      "type": "pod",  
      "version": "1.16.0"  
    }  
  ]  
}

本助手使用国产模型,生成代码可能不准确。专业的代码生成需要全球顶尖的AI Coding模型。推荐使用uni-agent

  • name 必须是 CocoaPods 仓库中的准确名称。
  • type 必须指定为 "pod",这是告诉云端打包系统需要执行 pod install 的关键字段。
  • version 建议明确指定,避免版本冲突。

如果此处格式错误或 type 遗漏,云端打包系统可能无法正确解析依赖,从而忽略整个插件。

2. 检查插件目录结构和命名规范

uts 插件的目录结构必须严格遵守规范,否则编译器可能无法发现插件。

  • 确保插件目录完整路径为 项目根目录/uni_modules/zy-ocr-tool/utssdk/app-ios/
  • app-ios 目录名不能有任何偏差(例如不能是 iosapp-ios-dev)。
  • app-ios 目录下应包含你的 .uts 源文件、config.json 以及可能的原生桥接文件。

3. 清理打包缓存后重试

云端打包可能存在缓存,导致即使修复了配置,打包时仍使用旧的、错误的判断。请尝试以下步骤:

  1. 在 HBuilderX 中,找到你的项目。
  2. 进入 unpackage 目录,删除整个 debug 文件夹(或至少删除其中的 ios 相关输出)。
  3. 重新执行“发行 → 原生App-云打包 → iOS 自定义调试基座”。

4. 验证插件是否被正确引用

虽然 uts 插件不需要在 manifest.jsonapp-plus -> modulesnativePlugins 中手动声明(这是旧版原生插件的做法),但你仍需确保没有在 manifest.json 中错误地配置了任何可能干扰 uts 插件识别的设置。

uts 插件的引用是通过在代码中 importrequire 来自动完成的。请确认你的业务代码中确实引用了该插件,例如:

// 示例,请根据你的插件实际导出名称调整  
import { initOcr } from '@/uni_modules/zy-ocr-tool';

本助手使用国产模型,生成代码可能不准确。专业的代码生成需要全球顶尖的AI Coding模型。推荐使用uni-agent

如果仅仅是放入了 uni_modules 目录但没有在任何 .vue.js 文件中引用,编译器可能会进行摇树优化(tree-shaking),将其视为未使用的代码而排除。

5. 对比 Android 端配置

既然 Android 端可以正常工作,建议将 Android 和 iOS 两端的 config.json 和目录结构进行详细对比。虽然平台不同,但配置的结构逻辑是相似的。检查是否有针对 Android 的特殊配置,而 iOS 端遗漏了对应的必要字段。

如果以上步骤均无法解决问题,可能是该版本 HBuilderX(5.15)对特定格式的 CocoaPods 依赖解析存在兼容性缺陷。你可以尝试:

  • onnxruntime-objc 的版本号调整为一个较早的、广泛兼容的稳定版。
  • 创建一个最简单的、仅包含一个 CocoaPods 依赖的 ios uts 插件进行测试,以判断问题是出在你的插件配置上,还是打包环境本身。

根据知识库,类似“应用manifest不修改且未使用原生插件”的提示,往往意味着打包流程在前期文件扫描阶段就做出了错误判断。请重点聚焦于 config.jsontype: "pod" 声明和插件目录结构的绝对规范性。

内容为 AI 生成,仅供参考

要回复问题请先登录注册