前言
最近在写一些EasyClick的脚本,刚开始还好好的,突然就发现调试报错了。
由于EasyClick的错误管理机制和auto.js不同,在脚本报错的时候,就需要各种排查。
排查方法
文件目录结构如下:
首先重启被控端和IDEA,问题没有解决。
检查main.js代码,经过各种删除、修改、替换,发现错误依旧。
检查ui.js代码,问题依旧。
检查main.html代码,问题依旧。
新建一个脚本工程,测试代码发现正常。因此可以排除被控端和IDEA的问题。
再来看日志内容:
[2020-12-16 11:30:37.718]【远程设备】准备运行工程...
[2020-12-16 11:30:37.718]【远程设备】开始启动...
[2020-12-16 11:30:37.800]【远程设备】开始执行,请稍等
[2020-12-16 11:30:37.817]【远程设备】解析js/.DS_Store文件
[2020-12-16 11:30:37.817]【远程设备】运行失败
[2020-12-16 11:30:37.824][开发工具版本5.12.0]
[2020-12-16 11:30:37.824]【远程设备】[ APK版本:5.12.0 品牌:Xiaomi 机型:MI 8 Lite 安卓版本:9]
执行错误:执行错误:illegal character: (js/.DS_Store#1)
百度搜索“illegal character”,提示是非法字符。
经过检查代码,并没有什么语法和字符上的错误。究竟是什么原因呢?
再来看文件路径,.DS_Store是在js目录下的。但是打开该目录,并没有此文件。
难道是隐藏文件?
百度搜“DS_Store”,查到如下内容:
.DS_Store是Mac OS保存文件夹的自定义属性的隐藏文件,如文件的图标位置或背景色,相当于Windows的desktop.ini。
原来是这个文件在作怪。
解决办法
先在终端中禁用“DS_Store”文件生成。重启Mac即可生效。
defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool TRUE
恢复.DS_store生成:
defaults delete com.apple.desktopservices DSDontWriteNetworkStores
在js目录下,右键进入终端管理器:
执行以下命令删除DS_Store文件。
rm -f .DS_Store
执行删除命令后,终端不会指示此操作已完成。 如果命令不起作用,它将仅返回一条消息。
后记
发现此问题后,飞云也联系了EasyClick的作者机器猫并及时反馈。
EasyClick的执行机制是:js文件夹按照字母排序逐个加载,最后加载main.js
但是目前5.12版本对该目录的文件没有过滤规则,导致Mac下的隐藏文件也被加载执行,最终导致报错。
因此,建议EasyClick给js目录的文件加载建立一个规则,只执行js文件,或者只执行指定的js文件。
EasyClick免费云控
全动云是淘美科技旗下2021年最新的免费云控脚本管理系统。提供设备分组、设备管理、脚本分组、脚本管理、任务管理、素材管理等强大功能。支持用户上传自定义EasyClick脚本。
全动云大数据智能营销管理系统
相关链接
EasyClick脚本开发教程(1)IntelliJ IDEA Ultimate的安装方法
EasyClick脚本开发教程(2)安装开发工具并创建项目
EasyClick脚本开发教程(3)连接设备与屏幕映射
EasyClick实现某音直播间刷屏喊话,循环发送随机话术
EasyClick实现某音发送指定语音,发送好友私信,引流脚本必备技术
EasyClick交流群
QQ群号:737066890
飞云脚本圈: 586333520
Auto.js学习交流③群:286635606
Auto.js学习交流②群:712194666(满员)
IOS免越狱自动化测试群:691997586
2. 盗版,破解有损他人权益和违法作为,请各位会员支持正版。
3. 本站部分资源来源于用户上传和网络搜集,如有侵权请提供版权证明并联系站长删除。
4.如未特别申明,本站的技术性文章均为原创,未经授权,禁止转载/搬运等侵权行为。
5.全站所有付费服务均为虚拟商品,购买后自动发货。售出后概不接受任何理由的退、换。注册即为接受此条款。
6.如果站内内容侵犯了您的权益,请联系站长删除。
飞云脚本 » EasyClick脚本开发中遇到执行错误:illegal character: (js/.DS_Store#1)