新创建的uni-app uts插件运行就报错

新创建的uni-app uts插件运行就报错

开发环境 版本号 项目创建方式
Mac m2 HBuilderX

产品分类:uniapp/App

PC开发环境操作系统:Mac

HBuilderX类型:Alpha

HBuilderX版本号:4.76

手机系统:iOS

手机系统版本号:iOS 16

手机厂商:苹果

手机机型:苹果14pm

页面类型:vue

vue版本:vue2

打包方式:云端

项目创建方式:HBuilderX

示例代码:

以下是实例中的uts代码:

/**

  • 引用 iOS 系统库,示例如下:
  • import { UIDevice } from “UIKit”;
  • [可选实现,按需引入] / / 引入 interface.uts 文件中定义的变量 */ import { MyApiOptions, MyApiResult, MyApi, MyApiSync } from ‘…/interface.uts’;

/* 引入 unierror.uts 文件中定义的变量 */ import { MyApiFailImpl } from ‘…/unierror’;

/**

  • 引入三方库
  • [可选实现,按需引入]
  • 在 iOS 平台引入三方库有以下两种方式:
  • 1、通过引入三方库framework 或者.a 等方式,需要将 .framework 放到 ./Frameworks 目录下,将.a 放到 ./Libs 目录下。更多信息详见
  • 2、通过 cocoaPods 方式引入,将要引入的 pod 信息配置到 config.json 文件下的 dependencies-pods 字段下。详细配置方式详见
  • 在通过上述任意方式依赖三方库后,使用时需要在文件中 import:
  • 示例:import { LottieLoopMode } from ‘Lottie’ / /*
  • UTSiOS 为平台内置对象,不需要 import 可直接调用其API,详见 / /*
  • 异步方法
  • uni-app项目中(vue/nvue)调用示例:
  • 1、引入方法声明 import { myApi } from “@/uni_modules/uts-api”
  • 2、方法调用
  • myApi({
  • paramA: false,
  • complete: (res) => {
  • console.log(res)
  • }
  • }); / export const myApi : MyApi = function (options : MyApiOptions) { if (options.paramA == true) { // 返回数据 const res : MyApiResult = { fieldA: 85, fieldB: true, fieldC: ‘some message’ }; options.success?.(res); options.complete?.(res); } else { // 返回错误 let failResult = new MyApiFailImpl(9010001); options.fail?.(failResult) options.complete?.(failResult) } } /*
  • 同步方法
  • uni-app项目中(vue/nvue)调用示例:
  • 1、引入方法声明 import { myApiSync } from “@/uni_modules/uts-api”
  • 2、方法调用
  • myApiSync(true); / export const myApiSync : MyApiSync = function (paramA : boolean) : MyApiResult { // 返回数据,根据插件功能获取实际的返回值 const res : MyApiResult = { fieldA: 85, fieldB: paramA, fieldC: ‘some message’ }; return res; } /*
  • 更多插件开发的信息详见:https://uniapp.dcloud.net.cn/plugin/uts-plugin.html */

### 操作步骤:


根据bug描述操作

预期结果:

正常运行


### 实际结果:


不能正常运行

bug描述:

刚创建的uts插件,把import { UIDevice } from “UIKit”;这一行放出来(原本是注释的)然后重新运行编译就报 ‘注意编译阶段有报错,可能部分模块无法使用。’,后面注释掉这一行都不行,就一直报这个,还有启动uts调试,等好久都不行,一直在启动中


更多关于新创建的uni-app uts插件运行就报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html

6 回复

更多关于新创建的uni-app uts插件运行就报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html


是不是没有用自定义基座运行?

就是自定义基座,每次更改uts插件 还会重新打包一个自定义基座

回复 2***@qq.com: 提供一下一个测试项目看看

回复 2***@qq.com: 光说也不好定位你的问题

该bug反馈内容基本完整,包含标题、描述、代码示例、复现步骤及结果,但缺少具体错误日志和已尝试的解决方案细节。代码示例可直接运行,复现步骤描述较模糊(仅"按bug描述操作"),需补充创建插件、添加代码的具体流程。
经分析,此问题并非真实bug,而是概念理解偏差:

UTS插件架构要求平台特定代码必须放在对应平台目录(如iOS代码应置于utssdk/app-ios/),而非根目录直接引用原生库。用户直接在根目录.uts文件中import { UIDevice } from "UIKit"违反设计规范,导致编译失败。
根据UTS插件开发指南,正确做法是:

在interface.uts定义统一接口
在app-ios/index.uts中实现iOS逻辑并引用UIKit
根目录文件仅做跨平台桥接

HBuilderX 4.76版本存在已知编译问题(如4.75版本引发的type类型嵌套编译失败),建议升级至最新正式版。
调试卡住是因编译错误阻塞流程,非独立问题。

解决方案:重构插件结构,按平台分离代码,参考UTS插件示例。无需更新HBuilderX即可解决,属开发规范理解问题。 内容为 AI 生成,仅供参考

回到顶部