tuari 配置 gitee 自动更新环境
<h1 id="tauri-配置-gitee-自动更新环境">tauri 配置 gitee 自动更新环境</h1><p>本章介绍如何使用 gitee 仓库配置 tauri 的自动更新环境。</p>
<p>tauri 的更新器配置是内置的,比 electron 的配置要简单的多,具体配置流程可以参考官方指南 Updater。</p>
<p>以下内容也会提及相关配置。</p>
<p>本文章使用 gitee 作为示例,在国内的速度会更好,github 的配置与 gitee 类似,感兴趣的可以自行配置。</p>
<p>本文项目在 window 系统中配置打包,如使用其他系统的请参考官方指南配置。</p>
<h2 id="新建-gitee-仓库">新建 gitee 仓库</h2>
<p>要实现 tauri 的自动更新环境,需要配置一个或两个仓库。根据自己的实际需求选择,如果项目代码是私有的,就需要两个仓库,一个开源用于存放项目更新信息和版本信息。<br>
如果项目代码是开源的,建议同样使用两个仓库。</p>
<p>以下将使用两个仓库进行配置。</p>
<p>以下新建两个仓库,一个是项目代码仓库,一个是存放项目更新信息的仓库。</p>
<p>代码仓库: tauri-vite-demo</p>
<p>更新信息仓库: tauri-update-test</p>
<h2 id="生成-tauri-公钥私钥">生成 tauri 公钥私钥</h2>
<p>参考官方指南 signing-updates</p>
<p>运行以下命令生成公钥密钥:</p>
<pre><code class="language-bash">tauri signer generate -w ~/.tauri/myapp.key
# 或者
cargo tauri signer generate -w ~/.tauri/myapp.key
</code></pre>
<p>输入命令后,提示输入密码,如果要输入密码,请务必记住密码,否则该密钥将无法使用,无需密钥则直接回车继续。</p>
<p>公钥 <code>myapp.key.pub</code> 内容添加到 <code>tauri.config.json</code> > <code>updater</code> > <code>pubkey</code> 中。</p>
<p>私钥和密码需要添加到环境变量中。</p>
<p><code>TAURI_PRIVATE_KEY</code> 存在私钥的路径或者内容。</p>
<p><code>TAURI_KEY_PASSWORD</code> 存在私钥的密码,无密码可不加。</p>
<p>可以在系统的环境变量中添加变量如下图所示:</p>
<p><img src="https://img2022.cnblogs.com/blog/1623725/202208/1623725-20220803151953554-726512284.jpg" alt="环境变量-1" loading="lazy"></p>
<p><img src="https://img2022.cnblogs.com/blog/1623725/202208/1623725-20220803152014970-406657031.jpg" alt="环境变量-2" loading="lazy"></p>
<p><img src="https://img2022.cnblogs.com/blog/1623725/202208/1623725-20220803152033843-94237493.jpg" alt="环境变量-3" loading="lazy"></p>
<p>或者在终端设置临时环境变量,这里使用 Powser Shell,使用其他终端请自行搜索设置方法。</p>
<pre><code class="language-bash">$Env:TAURI_PRIVATE_KEY = "私钥内容或路径"
$Env:TAURI_PRIVATE_KEY = "私钥密码"
</code></pre>
<h2 id="tauriconfigjson-配置">tauri.config.json 配置</h2>
<p>配置 <code>tauri.config.json</code> 的 <code>updater</code> 部分内容。</p>
<pre><code class="language-json">"updater": {
"active": true,
"endpoints": [
"https://gitee.com/zhidal/tauri-update-test/raw/master/update.json"
],
"dialog": true,
"pubkey": "YOUR_UPDATER_SIGNATURE_PUBKEY_HERE"
}
</code></pre>
<ul>
<li>active: 启用更新器;</li>
<li>endpoints: 端点,保存获取更新信息 json 的接口,是数组类型,可以存放多个,会依次请求更新信息;</li>
<li>dialog: 默认更新弹窗,如需自己配置,设为 <code>false</code>;</li>
<li>pubkey: 公钥,填写上文中生成的公钥 <code>myapp.key.pub</code> 的内容;</li>
</ul>
<p><code>endpoints</code> 填写更新信息的 json 接口,将 gitee 仓库中的实际路径中的 <code>bolb</code> 替换成 <code>raw</code> 即可得到 json 的内容接口。</p>
<p>json 接口内容请看更新信息。</p>
<p>如:https://gitee.com/zhidal/tauri-update-test/blob/master/update.json 的 json 路径为 https://gitee.com/zhidal/tauri-update-test/raw/master/update.json。</p>
<h2 id="打包-tauri-项目">打包 tauri 项目</h2>
<p>运行以下命令打包:</p>
<pre><code class="language-bash">yarn tauri build
</code></pre>
<p>打包完成后会在项目的 <code>src-tauri/target/release/bundle/msi</code> 中看到打包后的文件。</p>
<p>分别是后缀为 <code>*.msi</code> <code>*.msi.zip</code> <code>*.msi.zip.sig</code> 的三个文件。</p>
<ul>
<li><code>*.msi</code> 是安装包;</li>
<li><code>*.msi.zip</code> 是更新时使用的包;</li>
<li><code>*.msi.zip.sig</code> 是第二个包的签名文件;</li>
</ul>
<h2 id="发行版本">发行版本</h2>
<p>在仓库中创建发行版,如果项目仓库开源,可以在项目仓库中创建发行版本,如果是私有仓库,则在 存在更新信息的仓库中发行版本,流程是一致的,但仓库要开源。</p>
<p>在仓库中创建发行版流程,如下图所示:</p>
<p><img src="https://img2022.cnblogs.com/blog/1623725/202208/1623725-20220803152116245-1104069224.jpg" alt="gitee-release-1" loading="lazy"></p>
<p><img src="https://img2022.cnblogs.com/blog/1623725/202208/1623725-20220803152122500-1978591357.jpg" alt="gitee-release-2" loading="lazy"></p>
<p><img src="https://img2022.cnblogs.com/blog/1623725/202208/1623725-20220803152126930-1756272586.jpg" alt="gitee-release-3" loading="lazy"></p>
<p>图中 <code>*.msi.zip</code> 文件的链接即是更新器使用到的 url,具体请看下节。</p>
<h2 id="修改更新信息">修改更新信息</h2>
<p>在存放更新信息的仓库中,更新 json 文件, json 内容格式有两种,推荐使用 Update File JSON Format 格式。</p>
<pre><code class="language-json">{
"version": "v0.4.0",
"notes": "Test version",
"pub_date": "2022-08-02T15:56:57Z",
"platforms": {
"windows-x86_64": {
"signature": "dW50cnVzdGVkIGNvbW1lbnQ6IHNpZ25hdHVyZSBmcm9tIHRhdXJpIHNlY3JldCBrZXkKUlVRMEt2OXpkODJQRFNZSFhXUkd6dEdSUFNRaWN3WXJzMU9adlk0RGhsSU5qclhKc25NK0toQkU5eXFiTTlLOW9uNzlsMlI4Z3UxSzYrUzM5SklFY21PUkwzTUJza1gra3c0PQp0cnVzdGVkIGNvbW1lbnQ6IHRpbWVzdGFtcDoxNjU5NDk0ODQ4CWZpbGU6dGF1cmktdml0ZS1kZW1vXzAuNC4wX3g2NF96aC1DTi5tc2kuemlwCkh0UUdUdFBIMDRiV256RTkvWms5cDFZaFZqOUcyUUVlTkhuM2hLbUwvVlYxcmdMSTV3eTZkb0NZc1ZBOGl0Qmc3YVh1cFJiZnFWM2lSUmhieXB2UEJRPT0K",
"url": "https://gitee.com/zhidal/tauri-vite-demo/attach_files/1145742/download/tauri-vite-demo_0.4.0_x64_zh-CN.msi.zip"
}
}
}
</code></pre>
<ul>
<li>version: 版本号;</li>
<li>notes: 提示信息;</li>
<li>pub_date: 发布时间;</li>
<li>platforms: 不同平台的更新包信息, key 用来区分不同平台, 具体格式参考官方指南;</li>
<li>signature: 是安装包文件的签名信息, 即是打包生成的 <code>*.msi.zip.sig</code> 后缀的文件内容;</li>
<li>url: 是安装包文件的下载路径,即在仓库中发行版本后的 <code>*.msi.zip</code> 文件的链接;</li>
</ul>
<h2 id="测试更新">测试更新</h2>
<p>修改项目的 <code>tauri.config.json</code> 文件的 <code>version</code> 版本号(大于当前版本号)。</p>
<p>然后重复以下步骤:</p>
<p>打包<br>
发行版本<br>
更新信息</p>
<p>安装旧版本程序,打开运行,查看是否提示安装新版本。</p>
<p>或者把项目中的 <code>version</code> 改回旧版本, 运行开发命令 <code>yarn tauri dev</code>,查看是否提示安装新版本。</p>
<p>如果没有提示信息,可以参考官方指南,添加监听和手动发起更新检测和安装。</p>
<p>根据提示信息,修复问题。</p><br><br>
来源:https://www.cnblogs.com/lzhida/p/16547256.html
頁:
[1]