- 更新:2023-03-21 17:20:27
- 首发:2023-03-21 16:20:24
- Electorn
- 3201
在现今的数字时代,软件安全日益受到重视。对于Windows客户端开发者来说,使用EV(Extended Validation)证书对软件进行代码签名是确保用户信任和防止恶意攻击的关键一环。本文将探讨在Windows下的桌面软件开发过程中进行EV证书代码签名的必要性,未签名可能存在的问题,以及在签名过程中可能遇到的问题和解决方法。
在现今的数字时代,软件安全日益受到重视。对于Windows客户端开发者来说,使用EV(Extended Validation)证书对软件进行代码签名是确保用户信任和防止恶意攻击的关键一环。本文将探讨在Windows下的桌面软件开发过程中进行EV证书代码签名的必要性,未签名可能存在的问题,以及在签名过程中可能遇到的问题和解决方法。
近期分享了《从SSH远程唤起本地浏览器打开URL》,其实从远程SSH也可以直接打开带GUI的Linux应用程序的。之前分享过《Win10中通过WSL2开发基于Electron的Ubuntu应用程序》,原理上其实是一样的。
都是通过安装X11服务来实现。
此方法和虚拟机以及Wine有本质区别。应用程序可以运行在远程服务器,这样是不占用系统内存和CPU的。
本文介绍的方法是从MacOS中SSH远程到服务器调试和开发Linux平台的GUI应用程序。
在MacOS中运行Linux的GUI程序需要借助开源软件XQuartz。
本文将介绍如何在Windows 10操作系统中借助WSL2开发基于Electron的Ubuntu窗口应用程序,可以实现在win10中编写代码并查看linux应用的运行效果。
借助此方法,仅需一台MacOS设备和一台Win10的设备,即可通过Electron开发和测试主流操作系统(Windows、Linux、MacOS)下桌面应用程序并可以有差异化的调用操作系统的原生API。
通过MacOS系统可以编译几乎所有平台的应用程序,例如可以在MacOS中编译Win10 x64
、Linux ARM64
等平台的应用程序。但是在win10
或ubuntu
中无法编译MacOS应用程序
(可以借助虚拟机或者带有MacOS系统的Docker镜像实现MacOS平台应用程序的编译,但是可能无法正常进行签名)。关于Electron自动编译及自动更新、分发,可以参阅此视频教程。
MediaDevices 为浏览器控制音频输入设备、音频输出设备、视频输入设备提供了接口。
接到一个需求,基于Electron开发Windows下的自助设备广告屏(上屏)自动播放视频的功能。设备下屏是带触控功能的屏幕,可以进行业务咨询、业务办理、视频咨询,上屏是不带触控功能的1080P屏幕。
两个屏幕接入了同一个主机,下屏是主屏幕,上屏是分屏(扩展屏)。为了避免下屏进行视频咨询的时候,上屏播放视频的声音影响到对话,因此上屏播放视频功能需要开放相应的API接口,在下屏播放视频或进行音视频咨询的时候,相关的开发者能够通过API对上屏视频禁音。
由于我们已经开发了Android平台的同款设备,因此Electron平台需要和Android平台保持一致的API。
Apple Silicon M1芯片可谓是性能爆炸,开发体验极佳,生态中适配速度也算得上势如破竹。借助Rosetta 2平稳过渡ARM64,实在是高明。在MacOS 11+系统中通过 Apple M1 编译原生M1 Electron应用程序也算得上轻松容易。
理论兼容M1芯片的Electron版本是11.2.3
,实测兼容较好的版本是13.0.0-beta.5+
。
electron-builder需升级至20.10+
,建议版本22.10.5+
。
本地Node.js
版本请安装v15.5.0+
。
MacOS建议升级到11.2.3+
。
通过electron-builder
编译Electron ARM64应用程序,需调整package.json
配置文件。
在 Electron 12 及更高版本,设置了nodeIntegration: true
及nodeIntegrationInWorker: true
、nodeIntegrationInSubframes: true
,渲染进程仍然可能出现require is not defined
的报错。
这个报错还跟随有module is not defined
或exports is not defined
。
同样的报错在Electron 5+曾出现过,原因是发布v5.0.0
的时候,官方将nodeIntegration
默认值设置为了false
(与此同时还将webviewTag
设置为了false
)。
近期,Electron 12.0.0 发布。修复了诸多异常。同时也将contextIsolation
的默认值更改为true
(详见:https://github.com/electron/electron/pull/27949)。
Electron 应用分发系统
提供应用程序编译(支持Windows、Linux、MacOS)、自动升级、分发服务。让Electron
应用分发变得非常容易。
开源地址:https://github.com/yi-ge/electron-distribution
使用时需要注意,一个git
仓库需对应一个Electron
应用程序,一个Electron
应用程序对应需要部署一套应用分发系统。
Electron 应用分发系统
服务器端工作在64位Linux操作系统(必须)和MacOS(可选),默认编译x64应用程序, 其它平台及架构需要修改相应代码(不过这很容易实现)。
感谢回复! Clang 在生成时沿用了 GCC 的版本号标识,我是不是可以理解为Clang 18.1.4生成时使用的就是GCC4.8,所以我后续使用gcc 9.4
gcov
就会有不兼容的问题抱歉,这块我也不太清楚,尝试寻求AI的帮助吧。
我在这个过程中遇到了各种问题- -,现在在UDC core: g_serial: couldn't find an available UDC卡住了,请问大佬有什么解决方案吗,还是说我前置的设置就错了呢,> 这个需求很特殊。是可以的,但是比较困难,需要修改驱动配置。
好思路呀!!
关于hex编辑器,网上没找到特别好用的(小白没办法),最后在vscode上扩展一搜hex,第一个安装一下就可以用vscode进行hex编译了