t***@tancem.cn
t***@tancem.cn
  • 发布:2026-02-03 15:12
  • 更新:2026-02-03 15:35
  • 阅读:72

UTS 插件云端打包自定义基座后原生代码不生效(多版本复现)

分类:HBuilderX

UTS 插件云端打包自定义调试基座后,app-android/index.uts 中的原生代码不执行,
始终执行 index.uts 中的默认实现。

已测试版本:

  • HBuilderX 4.85.2025110510 ❌
  • HBuilderX 4.87.2025121004 ❌
  • HBuilderX 5.0 Alpha ❌

操作系统:Windows
打包方式:云端制作自定义调试基座
目标平台:Android

复现步骤:

  1. 创建 UTS 插件,包含 app-android/index.uts 原生实现
  2. index.uts 返回 "UTS plugin not available on this platform"
  3. app-android/index.uts 返回 "UTS plugin works!"
  4. 云端制作自定义调试基座
  5. 运行到 Android 真机
  6. 日志显示返回的是 "UTS plugin not available on this platform"

预期结果:应执行 app-android/index.uts 中的原生代码
实际结果:执行的是 index.uts 中的 fallback 代码

附加信息:

  • unpackage/cache/uts_custom_android/ 目录为空
  • 官方模板创建的 test-1 插件同样不工作
  • 这导致所有需要原生能力的 UTS 插件都无法正常使用

自制UTS 插件:
1、标准基座运行无 UTS 编译
2、云端制作自定义基座无 UTS 编译
3、本地导出资源无 uni_modules 目录
4、test 官方示例同样不工作

2026-02-03 15:12 负责人:无 分享
已邀请:
Ask小助手

Ask小助手

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

根据知识库内容,针对UTS插件云端打包自定义基座后原生代码不生效的问题,以下是基于检索到的信息给出的解答:


问题原因分析

  1. 缓存问题导致插件未更新
    根据ISSUE 10522ISSUE 13702,UTS插件的代码变更可能因缓存未清除而无法生效。需删除项目下的unpackage目录后重新打包自定义基座。

  2. 未正确触发UTS编译流程
    UTS插件的原生代码(如app-android/index.uts)需通过自定义基座才能生效(文档链接)。若未正确打包基座或未重新安装App,仍会执行index.uts的fallback代码。

  3. 入口文件未正确导出
    需确保app-android/index.uts中正确导出方法(如export function test()),且index.uts中通过条件判断调用原生实现(如if (uni.getSystemInfoSync().platform === 'android'))。


解决步骤

  1. 清除缓存并重新打包

    • 删除项目根目录的unpackage文件夹(含云端打包缓存)。
    • 重新执行云端制作自定义调试基座,确保勾选了“重新编译插件”选项。
  2. 验证插件结构

    • 检查uni_modules/[插件名]/utssdk/app-android/index.uts是否存在且包含有效导出。
    • 示例代码:
      // app-android/index.uts  
      export function getMessage(): string {  
      return "UTS plugin works!";  
      }  
  3. 强制重新安装App

    • 卸载手机上的旧基座App,重新运行HBuilderX安装新基座(参考对话)。
  4. 检查依赖配置

    • 若插件依赖三方库,需在config.json中配置dependencies文档示例)。

其他注意事项

  • 标准基座与自定义基座差异:标准基座不包含UTS原生代码,必须通过自定义基座测试(文档说明)。
  • 日志验证:运行时在HBuilderX控制台检查是否有UTSSDKModules[插件名]IndexSwift类未找到的报错(ISSUE 21815)。

若以上步骤仍无效,建议提供最小复现工程到DCloud ISSUE系统进一步排查。

内容为 AI 生成,仅供参考
DCloud_App_Array

DCloud_App_Array

请上传复现问题的示例项目。

要回复问题请先登录注册