自行跨平台编译 PicGo

等了很久, PicGo终于发布了 2.3.0 正式版,但是在安装后第一次打开的时候出现了一个隐私协议的弹窗,里面有这样一句话

1
2
在您使用本软件时,本软件会记录的您对本软件的一些操作行为信息,
包括但不限于您使用本软件进行文件上传的耗时、类型、数量等信息

看到这句时又一不小心看到了上面的这句话

1
2
本隐私权政策属于本软件服务使用协议不可分割的一部分,
如果不同意将无法使用。本协议会定期更新。

按照习惯点确定再去软件设置里修改,但是找了一圈没找到关闭上传使用数据这个按钮。

就算你要这些信息提高服务,但是也要想下并不是每个人都愿意提供自己的使用数据,应该给个开关自己设置。

然后一想,这是个开源软件,可以自己修改代码再重新编译。

修改代码

首先抓包了一个,看看是用了哪个平台的数据分析,然后抓到了http://sdk.talkingdata.com/app/h5/v1?appid=7E6832BCE3F1438696579E541DFEBFDA&vn=2.3.0&vc=2.3.0h5data.talkingdata.net/app/v1

搜索了一下,发现是使用了一个公司名叫北京腾云天下的服务,该公司成立于2011年。

打开软件源码地址PicGo,在源码里搜索了上面抓的网址,发现在src/renderer/utils/analytics.ts文件中

analytics

阅读了一下,发现在入口处 src/main.ts 最后一行是数据分析的初始化,由于是在整个程序的入口,所以删除 initTalkingData() 就行了。

init

至此,数据分析服务已经删除。

安装依赖

由于国内众所周知的网络环境,所以就选择外面的服务器进行编译。我选择的操作系统是 Debian 11。

安装nodejs

在官网上有提供通过包管理器安装 nodejs 的方法。按照提示操作即可。

我选择安装的是 LTS 版本,可以根据自己的实际情况进行选择。

1
2
curl -fsSL https://deb.nodesource.com/setup_lts.x | bash -
apt-get install -y nodejs

安装yarn

在库里的README.md写了需要用 yarn 安装依赖,如果用 npm 安装依赖会出现未知错误。
在安装完 nodejs 后,有一个提示是安装 yarn 的操作方法,按照提示安装即可。

1
2
3
curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | tee /usr/share/keyrings/yarnkey.gpg >/dev/null
echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" | tee /etc/apt/sources.list.d/yarn.list
apt-get update && apt-get install yarn

安装wine

由于是跨平台编译,在 linux 平台上编译 windows 的应用,所以需要安装 wine,到官网上根据教程安装即可。

页面上写了 WineHQ 安装包安装于 Debian 10 或更新的版本时,会要求安装 libfaudio0 依赖。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
apt install libfaudio0

#开启 32 位支持
dpkg --add-architecture i386

#安装密钥
wget -nc https://dl.winehq.org/wine-builds/Release.key
apt-key add Release.key

#添加库(根据自己的操作系统进行修改)
echo 'deb https://dl.winehq.org/wine-builds/debian/ bullseye main' > /etc/apt/source.list.d/wine.list

#更新缓存
apt update

#安装wine
apt install --install-recommends winehq-stable

编译

准备工作做好后最后一步就是编译了,由于是跨平台编译,所以需要把根目录里的 package.json 修改一下使其支持编译出适用 windows 的安装包。

electron:build后面加上 --win --x64 即可。

1
vue-cli-service electron:build 修改为 vue-cli-service electron:build --win --x64

最后编译就好了

1
2
3
4
5
6
# 安装依赖
yarn

# 编译
npm run electron:build

编译完成后就可在 dist_electron 文件夹里看到编译后的软件了。

app