codecamp

Tauri UPX

UPX(Ultimate Packer for eXecutables)是二进制文件压缩工具中的一个古老选手。这款工具已有 23 年的历史,一直得到很好的维护,其采用 GPL-v2 许可证,许可声明相当宽松。根据我们对其许可的理解,你可以将它用于任何目的(包括商业用途),而不需要更改你的许可,除非你修改了 UPX 的源代码。

也许你的目标用户拥有很慢的互联网连接,或者你的应用程序需要适应小型USB存储设备,而且之前提到的所有步骤都没有达到你所需的文件大小节省。别担心,我们还有最后一个窍门:

UPX 可以压缩你的二进制文件,并创建一个自解压可执行文件,在运行时自行解压。

注意:
需要注意的是,这种技术可能会在Windows和macOS上将你的二进制文件标记为病毒,因此请谨慎使用,并始终通过Frida进行验证,并进行真正的分发测试!

在macOS上使用UPX

brew install upx
yarn tauri build
upx --ultra-brute src-tauri/target/release/bundle/macos/app.app/Contents/macOS/app

                        Ultimate Packer for eXecutables
                            Copyright (C) 1996 - 2018
UPX 3.95        Markus Oberhumer, Laszlo Molnar & John Reiser   Aug 26th 2018

        File size         Ratio      Format      Name
    --------------------   ------   -----------   -----------
    963140 ->    274448   28.50%   macho/amd64   app


Tauri Stripping
Tauri 从 JavaScript 运行它
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

Tauri 指南

Tauri 特性

Tauri 插件

Tauri 应用程序接口

Tauri JavaScript/TypeScript

Tauri 命令行界面

Tauri 进程

Tauri 参考

Tauri WebView 版本

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }