解决 Mac 上使用 Electron Updater 更新 App 不成功的问题!!!

文章目录

      • 1. 现象
      • 2. 分析并如何解决
      • 3. 后续

1. 现象

在Mac电脑上,使用Electron Updater对程序进行更新,但是一直不成功,也不报错。具体表现是这样的:当前我的程序版本是3.11版本,点击更新之后,也下载了,但是更新之后还是3.11,也就是意味着更新不成功。

对于具体问题具体分析,这里我先贴一下我的更新代码:

function checkForUpdates() {// 配置安装包远端服务器autoUpdater.setFeedURL("update_url");// 下面是自动更新的整个生命周期所发生的事件 // ------------start------------------autoUpdater.on('error', (e, message) => {sendUpdateMessage('error', message);});autoUpdater.on('checking-for-update', (e, message) => {sendUpdateMessage('checking-for-update', message);});autoUpdater.on('update-available', (e, message) => {sendUpdateMessage('update-available', message);});autoUpdater.on('update-not-available', (e, message) => {sendUpdateMessage('update-not-available', message);});// 更新下载进度事件autoUpdater.on('download-progress', (progressObj) => {sendUpdateMessage('downloadProgress', progressObj);});// 更新下载完成事件autoUpdater.on('update-downloaded', (event, releaseNotes, releaseName, releaseDate, updateUrl, quitAndUpdate) => {sendUpdateMessage('isUpdateNow');ipcMain.on('updateNow', (e, arg) => {//app退出并安装autoUpdater.quitAndInstall()});});// ------------start------------------//执行自动更新检查autoUpdater.checkForUpdates();//自定义Logger,查看问题所在autoUpdater.logger = {info(message) {builder += "info : " + message + "\n";},warn(message) {builder += "warn : " + message + "\n";},error(message) {builder += "error : " + message + "\n";}};

2. 分析并如何解决

在查阅了相关的资料就会发现,使用 electron 所打包的app,其实会存在各种日志,我们只需要查看日志,并按照日志,哪里出错就修改哪里即可。

日志的路径在哪里呢?首先你需要确定一下你的AppId,至于这个AppId,是需要你在package.json中配置的:

知道了这个AppId之后,就就可以查看以下目录:

/Users/user_name/Library/Caches/appId_name.Shiplit/ShipIt_stderr.log

看到的就是这种:

查看之后,就可以确定问题所在了。

ps:

我这边的问题是什么呢?主要是存在一个文件,它只是可读的权限,没有可写和可操作的权限。因此可以在终端,对这个文件进行

​ sudo chmod 777 target_file

然后重新打包,重试即可完成安装。

3. 后续

如果后续存在什么问题,可以根据这个log日志进行分析并逐步解决。如果你存在什么问题的话,可以加我v javainstalling,我们一起解决。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/66198.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

指针---进阶篇(二)

指针---进阶篇(二) 前言一、函数指针1.抛砖引玉2.如何判断函数指针?(方法总结) 二、函数指针数组1.什么是函数指针数组?2.讲解函数指针数组3.模拟计算器:讲解函数指针数组 三、指向函数指针数组…

基于Elman神经网络的电力负荷预测

1 案例背景 1.1 Elman神经网络概述 根据神经网络运行过程中的信息流向,可将神经网络可分为前馈式和反馈式两种基本类型。前馈式网络通过引入隐藏层以及非线性转移函数可以实现复杂的非线性映射功能。但前馈式网络的输出仅由当前输人和权矩阵决定,而与网络先前的输出结果无关。…

【Kubernetes】Kubernetes的调度

K8S调度 一、Kubernetes 调度1. Pod 调度介绍2. Pod 启动创建过程3. Kubernetes 的调度过程3.1 调度需要考虑的问题3.2 具体调度过程 二、影响kubernetes调度的因素1. nodeName2. nodeSelector3. 亲和性3.1 三种亲和性的区别3.2 键值运算关系3.3 节点亲和性3.4 Pod 亲和性3.5 P…

【hello C++】特殊类设计

目录 一、设计一个类,不能被拷贝 二、设计一个类,只能在堆上创建对象 三、设计一个类,只能在栈上创建对象 四、请设计一个类,不能被继承 五、请设计一个类,只能创建一个对象(单例模式) C🌷 一、设计一个类&…

移动端APP测试常见面试题精析

现在面试测试职位,要求非常全面,那么APP测试一般需要哪些技术呢?下面总结了APP测试常见面试题: 1.Android四大组件? Activity:描述UI,并且处理用户与机器屏幕的交互。应用程序中,一个Activity就相当于手…

MySql(干货)

写这篇博客的目的不是为了将介绍原理,而是为了Sql中的代码操作属实太多了,在这里进行一个汇总,方便查阅!!! Sql分类 分类全称说明 DDL Data Definintion Language数据定义语言,用来定义数据库对…

解密Flink的状态管理:探索流处理框架的数据保留之道,释放流处理的无限潜能!

水善利万物而不争,处众人之所恶,故几于道💦 文章目录 一、什么是状态二、应用场景三、Flink中状态的分类四、算子状态1. 列表状态(List State)2. 广播状态(Broadcast State) 五、键控状态1. Val…

【链表】经典链表题LeetCode

文章目录 160. 相交链表 简单🔥206. 反转链表 简单🔥876. 链表的中间结点 简单234. 回文链表 简单🔥141. 环形链表 简单🔥142. 环形链表 II 中等🔥21. 合并两个有序链表 简单🔥2. 两数相加 中等&#x1f52…

golang—面试题大全

目录标题 sliceslice和array的区别slice扩容机制slice是否线程安全slice分配到栈上还是堆上扩容过程中是否重新写入go深拷贝发生在什么情况下?切片的深拷贝是怎么做的copy和左值进行初始化区别slice和map的区别 mapmap介绍map的key的类型map对象如何比较map的底层原…

【Linux】线程同步和死锁

目录 死锁 什么是死锁 构成死锁的四个必要条件 如何避免死锁 线程同步 同步的引入 同步的方式 条件变量 条件变量的使用 整体代码 死锁 什么是死锁 死锁是指在一组进程中的各个进程均占有不会释放的资源,但因互相申请被其他进程所占用不会释放 的资源而处…

GPU Microarch 学习笔记 [1]

WARP GPU的线程从thread grid 到thread block,一个thread block在CUDA Core上执行时,会分成warp执行,warp的颗粒度是32个线程。比如一个thread block可能有1024个线程,分成32个warp执行。 上图的CTA(cooperative thre…

<dependency> idea中为什么这个变黄色

在IDE中&#xff0c;当你的代码出现黄色高亮时&#xff0c;通常表示存在警告或建议的提示。对于Maven的<dependency>标签来说&#xff0c;黄色高亮可能有以下几种原因&#xff1a; 依赖项未找到&#xff1a;黄色高亮可能表示IDE无法找到指定的依赖项。这可能是由于配置错…