112 个版本 (30 个稳定版)
新 2.0.1-rc.5 | 2024 年 8 月 22 日 |
---|---|
2.0.1-beta.19 | 2024 年 7 月 29 日 |
2.0.1-beta.7 | 2024 年 3 月 20 日 |
2.0.0-alpha.13 | 2023 年 12 月 19 日 |
0.5.0 | 2020 年 3 月 28 日 |
#68 in Cargo 插件
14,849 每月下载量
用于 4 个 crate(3 个直接使用)
545KB
12K SLoC
Tauri Bundler
在特定于操作系统的应用程序包中包装 Rust 可执行文件。
关于
这是 awesome cargo-bundle 的一个分支,已转换为由 Tauri CLI 使用的库。
配置
Tauri 会自动从 tauri.conf.json > bundle
对象加载配置,但这个库不依赖于它,也可以用于非 Tauri 应用。
一般设置
这些设置适用于所有(或大多数)操作系统的应用程序包。
name
:构建应用程序的名称。如果不存在,则将使用您的Cargo.toml
文件中的name
值。identifier
: [必填] 一个以反向DNS形式唯一标识您的应用的字符串(例如,"com.example.appname"
或"io.github.username.project"
)。对于OS X和iOS,这用作捆绑包的CFBundleIdentifier
值;对于Windows,这将被哈希以创建应用程序GUID。icon
: [可选] 供您的应用程序使用的图标。这应该是一个文件路径或glob(包含各种大小/格式的图像);tauri-bundler
将根据需要自动在不同平台之间进行图像格式转换。支持的格式包括ICNS、ICO、PNG,以及可以被image
crate 解码的任何其他格式。针对高分辨率(例如Retina)显示的图标应在扩展名之前包含@2x
(请参阅以下示例)。version
: [可选] 应用程序的版本。如果不存在,则使用Cargo.toml
文件中的version
值。resources
: [可选] 要复制到捆绑包资源部分的文件或目录列表。支持glob。copyright
: [可选] 包含与您的应用程序相关联的版权字符串。category
: [可选] 该应用程序的类型。这可以是一个可读性强的字符串(例如,"Puzzle game"
),或者是一个Mac OS X LSApplicationCategoryType值(例如,"public.app-category.puzzle-games"
),或者是一个GNOME桌面文件类别名称(例如,"LogicGame"
),并且tauri-bundler
将根据需要自动进行不同平台的转换。short_description
: [可选] 应用程序的一行简短描述。如果不存在,则使用Cargo.toml
文件中的description
值。long_description
: [可选] 应用程序的多行长描述。
Debian特定设置
这些设置仅在捆绑 deb
包时使用。
depends
: 表示其他包(例如共享库)的字符串列表,该包需要安装。如果存在,则形成deb
包控制文件的Depends:
字段。
Mac OS X特定设置
这些设置仅在捆绑 app
和 dmg
包时使用。
框架
:一个字符串列表,指示需要与应用程序捆绑的任何 Mac OS X 框架。每个字符串可以是框架的名称(不带.framework
扩展名,例如"SDL2"
),在这种情况下,tauri-bundler
将在该框架的标准安装位置(~/Library/Frameworks/
、/Library/Frameworks/
和/Network/Library/Frameworks/
)中搜索该框架,或者是指向特定框架捆绑包的路径(例如./data/frameworks/SDL2.framework
)。请注意,此设置只是让tauri-bundler
将指定的框架复制到 OS X 应用程序捆绑包中(位于Foobar.app/Contents/Frameworks/
);您仍然需要(1)确保编译的二进制文件链接到这些框架(例如,通过从您的build.rs
脚本中发出类似cargo:rustc-link-lib=framework=SDL2
的行),并且(2)在您的二进制文件中嵌入正确的 rpath(例如,通过编译后运行install_name_tool -add_rpath "@executable_path/../Frameworks" path/to/binary
)。minimum_system_version
:一个版本字符串,指示捆绑的应用程序支持的最低 Mac OS X 版本(例如"10.11"
)。如果您使用此配置字段,您可能还希望让您的build.rs
脚本发出cargo:rustc-env=MACOSX_DEPLOYMENT_TARGET=10.11
(或您想要的任何版本号),以确保编译的二进制文件具有相同的最低版本。license
:DMG 捆绑包的许可文件路径。exception_domain
:在 macOS .app 捆绑包上使用的异常域。允许与外部世界进行通信,例如您所发货的 Web 服务器。provider_short_name
:如果您Apple ID连接到多个团队,您必须指定您想要用于签名的应用程序的团队提供者短名称。有关如何获取提供者短名称的更多信息,请参阅自定义签名工作流程并搜索--list-providers
。
示例 tauri.conf.json
{
"productName": "Your Awesome App",
"version": "0.1.0",
"identifier": "com.my.app",
"app": {},
"bundle": {
"active": true,
"shortDescription": "",
"longDescription": "",
"copyright": "Copyright (c) You 2021. All rights reserved.",
"icon": [
"icons/32x32.png",
"icons/128x128.png",
"icons/[email protected]",
"icons/icon.icns",
"icons/icon.ico"
],
"resources": ["./assets/**/*.png"],
"deb": {
"depends": ["debian-dependency1", "debian-dependency2"]
},
"macOS": {
"frameworks": [],
"minimumSystemVersion": "10.11",
"license": "./LICENSE"
},
"externalBin": ["./sidecar-app"]
}
}
许可
(c) 2017 - 现在,George Burton,Tauri-Apps 组织
此程序许可为Apache 软件许可或MIT 许可。
-> 注意,对于 bundle_dmg,我们包含了一个 BSD 3 许可的二进制文件 seticon
。 https://github.com/sveinbjornt/osxiconutils/blob/master/seticon.m tools/rust/cargo-tauri-bundle/src/bundle/templates/seticon
依赖项
~18–36MB
~624K SLoC