uni-app HBX编译UTS插件丢失问题,导致云打包异常
uni-app HBX编译UTS插件丢失问题,导致云打包异常
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
HbuilderX | 3.96 |
操作步骤:
使用uni-usercapturescreen 截屏插件
ios报错:Error: undefined class: UTSSDKModulesUniUsercapturescreenIndexSwift __ERROR
以为是基座问题重新打包好了,结果云打包出来的app有问题。而且本地运行也有问题了,排除掉基座问题只有一个可能就是编译bug!
编译时有概率漏掉uts插件,异常时cache/dist文件夹中没有插件的文件。不管是本地删除缓存重新编译还是云打包时的编译都有概率漏插件!打出来的包时好时坏,请尽快修复真的很影响打包!
预期结果:
HBX正常编译不丢文件。我只想打个包下班好吗爷爷们。
实际结果:
自定义基座没有问题本地的编译有时候会丢插件,导致有问题。HBX3.7.11没问题
bug描述:
使用uni-usercapturescreen 截屏插件
ios报错:Error: undefined class: UTSSDKModulesUniUsercapturescreenIndexSwift __ERROR
以为是基座问题重新打包好了,结果云打包出来的app有问题。而且本地运行也有问题了,排除掉基座问题只有一个可能就是编译bug!
编译时有概率漏掉uts插件,异常时cache/dist文件夹中没有插件的文件。不管是本地删除缓存重新编译还是云打包时的编译都有概率漏插件!打出来的包时好时坏,请尽快修复真的很影响打包!
HBuilderX 3.96 及以下版本云打包丢失UTS插件的解决方案:
方案1. 升级至HBuilderX 3.97+
方案2. 云打包时,不要同时勾选Android和iOS,而是分开两次单独打包
HBuilderX 3.98 及以下版本运行时偶发提示缺少UTS插件的解决方案:
排查是否同时运行到了Android和iOS两个平台,目前不支持同时运行,需要停掉其中一个平台之后,再运行到另一个平台
官方的人呢,快测试。
问题已收到,正在排查
代码中没有调用插件,就不会打包进去。
怎么重现打不进去的情况?
在App.vue onLaunch调用了 uni.setUserCaptureScreen({enable:false });而且页面中也用到了uni.setUserCaptureScreen
重现:使用uni-usercapturescreen插件打包基座运行安卓和ios首先确保基座是好的,然后触发重新编译有概率会丢文件,缓存文件夹里没有插件需要的文件。 ios报错:Error: undefined class: UTSSDKModulesUniUsercapturescreenIndexSwift __ERROR 安卓也有概率报错
回复 张明明: vue2还是vue3?触发重新编译,是指的修改vue文件?基座是云打包出来的自定义基座?是否有必现的操作流程?
回复 DCloud_UNI_FXY: 1.vue3 2.是云打包的基座。 3.重新编译指的运行基座时的开始编译…正在编译中。云打包也一样会触发这个步骤的。 4.流程就是正常使用uni-usercapturescreen插件云打包基座。然后运行安卓/ios就有大概率报错。尤其是ios。而且不止我一个人有这个问题https://ext.dcloud.net.cn/plugin?id=9897你可以看评论区这个问题应该已经存在很久了。 我之前一直在使用HBX3.7.11没有一点问题,3.7.11以上会出现这个问题。
回复 张明明: 我这里测试步骤
你可以对比我以上步骤,看看哪些流程和你有差异
回复 DCloud_UNI_FXY: WindowsHBX3.96,安卓/IOS两个一起打包基座,一起连手机调试。然后删除缓存或者大改动触发重新编译。多试几次必复现。uni-usercapturescreen插件市场的评价里都有人遇到Error: undefined class: UTSSDKModulesUniUsercapturescreenIndexSwift __ERROR。其实不是插件的问题是HBX的问题
回复 张明明: 你单独打包android和iOS试试,不要一起打包,或者使用3.97Alpha同时打包验证一下
回复 DCloud_UNI_FXY: 基座其实是没问题的我之前删除了unpackage文件夹重新打基座运行双端都好着,然后云打包正式包出来的包是坏的,然后我再运行基座发现也会报错,然后去缓存文件夹看了下发现插件没了,说明是编译出现问题了不是基座和插件问题。至于你说的单独打包单独运行可能会好。不过单独编译运行的话开发效率就不行了。而且还是可能编译坏。3.97Alpha我空了试一下吧。你们让HBX组的人多测测,是有编译问题的。
回复 张明明: 插件打包后,都已经存在基座内部里了,插件缓存目录记录的只是文件md5值,不会包含插件内容,目前测试出问题的就是云打包同时勾选android和ios会导致插件没有被提交上去引发的。
回复 DCloud_UNI_FXY: 另外一种情况,应该是你同时运行到了Android和iOS两个平台,目前Android和IOS两个平台共享使用了同一个编译结果引发的
回复 DCloud_UNI_FXY: 我也发现每次编译都可能影响到另一个端。请尽快修复,辛苦了。
IOS上遇到同样的错误了
插件挺好,希望官方快点解决 :)
版本:3.97.2023110504-alpha
IOS 上录屏和截屏都是黑屏,
但是,
1、没有像android一样给出提示:当前页面…,不允许截屏/录制。
2、回调函数的参数为undefined。
HBuilderX 3.98.2023112011-alpha 已修复。