
关于
Makepad 应用部署专家,支持 Web、桌面和移动端的跨平台发布流程。
name: makepad-deployment description: | 关键:用于 Makepad 打包和部署。触发词: deploy, package, APK, IPA, 打包, 部署, cargo-packager, cargo-makepad, WASM, Android, iOS, distribution, installer, .deb, .dmg, .nsis, GitHub Actions, CI, action, marketplace risk: critical source: community
Makepad 打包与部署
此技能涵盖所有支持平台的 Makepad 应用打包。
何时使用
- 需要打包、分发或自动化部署 Makepad 应用时
- 任务涉及桌面安装程序、APK/IPA 构建、WebAssembly 输出或基于 CI 的发布产物时
- 需要关于
cargo-packager、cargo-makepad或 GitHub Actions 打包流程的指导时
快速导航
| 平台 | 工具 | 输出 |
|------|------|------|
| 桌面端 | cargo-packager | .deb, .nsis, .dmg |
| Android | cargo-makepad | .apk |
| iOS | cargo-makepad | .app, .ipa |
| Web | cargo-makepad | Wasm + HTML/JS |
| CI/CD | makepad-packaging-action | GitHub Release 产物 |
GitHub Actions 打包
使用 makepad-packaging-action 在 CI 中打包 Makepad 应用。它封装了 cargo-packager(桌面端)和 cargo-makepad(移动端),并可将产物上传到 GitHub Releases。
jobs:
package:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: Project-Robius-China/makepad-packaging-action@v1
with:
args: --target x86_64-unknown-linux-gnu --release
注意事项:
- 桌面包必须在匹配的 OS runner 上运行(Linux/Windows/macOS)
- iOS 构建需要 macOS runner
- Android 构建可在任何 OS runner 上运行
完整的输入/环境变量/输出和发布工作流详见 references/makepad-packaging-action.md。
桌面端打包
桌面端打包使用 cargo-packager 配合 robius-packaging-commands 处理资源。
安装工具
# 安装 cargo-packager
cargo install cargo-packager --locked
# 安装 robius-packaging-commands (v0.2.1)
cargo install --version 0.2.1 --locked \
--git https://github.com/project-robius/robius-packaging-commands.git \
robius-packaging-commands
配置 Cargo.toml
在 Cargo.toml 中添加打包配置:
[package.metadata.packager]
product_name = "YourAppName"
identifier = "com.yourcompany.yourapp"
authors = ["Your Name or Team"]
description = "Makepad 应用的简要描述"
# 注意:long_description 每行最多 80 个字符
long_description = """
详细描述在此。
每行保持在 80 个字符以内。
"""
icons = ["./assets/icon.png"]
out_dir = "./dist"
# 打包前命令,用于收集资源
before-packaging-command = """
robius-packaging-commands before-packaging \
--force-makepad \
--binary-name your-app \
--path-to-binary ./target/release/your-app
"""
# 包含在包中的资源
resources = [
# Makepad 内置资源(必需)
{ src = "./dist/resources/makepad_widgets", target = "makepad_widgets" },
{ src = "./dist/resources/makepad_fonts_chinese_bold", target = "makepad_fonts_chinese_bold" },
# 你的应用资源
{ src = "./dist/resources/your_app_resource", target = "your_app_resource" },
]
Linux (Debian/Ubuntu)
# 安装依赖
sudo apt-get update
sudo apt-get install libssl-dev libsqlite3-dev pkg-config \
binfmt-support libxcursor-dev libx11-dev libasound2-dev libpulse-dev
# 构建包
cargo packager --release
输出:./dist/ 中的 .deb 文件
Windows
# 构建 NSIS 安装程序
cargo packager --release --formats nsis
输出:./dist/ 中的 .exe 安装程序
macOS
# 构建包
cargo packager --release
输出:./dist/ 中的 .dmg 文件
平台特定配置
# Linux (Debian)
[package.metadata.packager.deb]
depends = "./dist/depends_deb.txt"
desktop_template = "./packaging/your-app.desktop"
section = "utils"
# macOS
[package.metadata.packager.macos]
minimum_system_version = "11.0"
frameworks = []
info_plist_path = "./packaging/Info.plist"
entitlements = "./packaging/Entitlements.plist"
signing_identity = "Developer ID Application: Your Name (XXXXXXXXXX)"
兼容工具
Claude CodeCursor
标签
移动端
