[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-fc59c9b0-0251-4807-9476-573865b301dd":3,"$fnFmHNh-G_THTsr61dLQykInZIi6Isj48V4cAoEAYiKE":43},{"id":4,"title":5,"description":6,"categoryId":7,"moduleId":8,"tags":9,"prompt":10,"icon":11,"source":12,"sourceUrl":13,"authorId":14,"authorName":15,"isPublic":16,"stars":17,"runs":18,"createdAt":19,"updatedAt":19,"module":20,"category":27,"packages":34},"fc59c9b0-0251-4807-9476-573865b301dd","makepad-deployment","|","cat_coding_devops","mod_coding","sickn33,coding","---\nname: makepad-deployment\ndescription: |\n  CRITICAL: Use for Makepad packaging and deployment. Triggers on:\n  deploy, package, APK, IPA, 打包, 部署,\n  cargo-packager, cargo-makepad, WASM, Android, iOS,\n  distribution, installer, .deb, .dmg, .nsis,\n  GitHub Actions, CI, action, marketplace\nrisk: critical\nsource: community\n---\n\n# Makepad Packaging & Deployment\n\nThis skill covers packaging Makepad applications for all supported platforms.\n\n## When to Use\n- You need to package, distribute, or automate deployment of a Makepad application.\n- The task involves desktop installers, APK\u002FIPA builds, WebAssembly output, or CI-based release artifacts.\n- You need guidance on `cargo-packager`, `cargo-makepad`, or GitHub Actions packaging flows for Makepad.\n\n## Quick Navigation\n\n| Platform | Tool | Output |\n|----------|------|--------|\n| [Desktop](#desktop-packaging) | `cargo-packager` | .deb, .nsis, .dmg |\n| [Android](#android) | `cargo-makepad` | .apk |\n| [iOS](#ios) | `cargo-makepad` | .app, .ipa |\n| [Web](#wasm-packaging) | `cargo-makepad` | Wasm + HTML\u002FJS |\n| [CI\u002FCD](#github-actions-packaging) | `makepad-packaging-action` | GitHub Release assets |\n\n---\n\n## GitHub Actions Packaging\n\nUse `makepad-packaging-action` to package Makepad apps in CI. It wraps\n`cargo-packager` (desktop) and `cargo-makepad` (mobile), and can upload artifacts\nto GitHub Releases.\n\n```yaml\njobs:\n  package:\n    runs-on: ubuntu-22.04\n    steps:\n      - uses: actions\u002Fcheckout@v4\n      - uses: Project-Robius-China\u002Fmakepad-packaging-action@v1\n        with:\n          args: --target x86_64-unknown-linux-gnu --release\n```\n\nNotes:\n- Desktop packages must run on matching OS runners (Linux\u002FWindows\u002FmacOS).\n- iOS builds require macOS runners.\n- Android builds can run on any OS runner.\n\nFull inputs\u002Fenv\u002Foutputs and release workflows live in\n`references\u002Fmakepad-packaging-action.md`.\n\n## Desktop Packaging\n\nDesktop packaging uses `cargo-packager` with `robius-packaging-commands` for resource handling.\n\n### Install Tools\n\n```bash\n# Install cargo-packager\ncargo install cargo-packager --locked\n\n# Install robius-packaging-commands (v0.2.1)\ncargo install --version 0.2.1 --locked \\\n    --git https:\u002F\u002Fgithub.com\u002Fproject-robius\u002Frobius-packaging-commands.git \\\n    robius-packaging-commands\n```\n\n### Configure Cargo.toml\n\nAdd packaging configuration to your `Cargo.toml`:\n\n```toml\n[package.metadata.packager]\nproduct_name = \"YourAppName\"\nidentifier = \"com.yourcompany.yourapp\"\nauthors = [\"Your Name or Team\"]\ndescription = \"A brief description of your Makepad application\"\n# Note: long_description has 80 character max per line\nlong_description = \"\"\"\nYour detailed description here.\nKeep each line under 80 characters.\n\"\"\"\nicons = [\".\u002Fassets\u002Ficon.png\"]\nout_dir = \".\u002Fdist\"\n\n# Pre-packaging command to collect resources\nbefore-packaging-command = \"\"\"\nrobius-packaging-commands before-packaging \\\n    --force-makepad \\\n    --binary-name your-app \\\n    --path-to-binary .\u002Ftarget\u002Frelease\u002Fyour-app\n\"\"\"\n\n# Resources to include in package\nresources = [\n    # Makepad built-in resources (required)\n    { src = \".\u002Fdist\u002Fresources\u002Fmakepad_widgets\", target = \"makepad_widgets\" },\n    { src = \".\u002Fdist\u002Fresources\u002Fmakepad_fonts_chinese_bold\", target = \"makepad_fonts_chinese_bold\" },\n    { src = \".\u002Fdist\u002Fresources\u002Fmakepad_fonts_chinese_bold_2\", target = \"makepad_fonts_chinese_bold_2\" },\n    { src = \".\u002Fdist\u002Fresources\u002Fmakepad_fonts_chinese_regular\", target = \"makepad_fonts_chinese_regular\" },\n    { src = \".\u002Fdist\u002Fresources\u002Fmakepad_fonts_chinese_regular_2\", target = \"makepad_fonts_chinese_regular_2\" },\n    { src = \".\u002Fdist\u002Fresources\u002Fmakepad_fonts_emoji\", target = \"makepad_fonts_emoji\" },\n\n    # Your app resources\n    { src = \".\u002Fdist\u002Fresources\u002Fyour_app_resource\", target = \"your_app_resource\" },\n]\n\nbefore-each-package-command = \"\"\"\nrobius-packaging-commands before-each-package \\\n    --force-makepad \\\n    --binary-name your-app \\\n    --path-to-binary .\u002Ftarget\u002Frelease\u002Fyour-app\n\"\"\"\n```\n\n### Linux (Debian\u002FUbuntu)\n\n```bash\n# Install dependencies\nsudo apt-get update\nsudo apt-get install libssl-dev libsqlite3-dev pkg-config \\\n    binfmt-support libxcursor-dev libx11-dev libasound2-dev libpulse-dev\n\n# Build package\ncargo packager --release\n```\n\nOutput: `.deb` file in `.\u002Fdist\u002F`\n\n### Windows\n\n```bash\n# Build NSIS installer\ncargo packager --release --formats nsis\n```\n\nOutput: `.exe` installer in `.\u002Fdist\u002F`\n\n### macOS\n\n```bash\n# Build package\ncargo packager --release\n```\n\nOutput: `.dmg` file in `.\u002Fdist\u002F`\n\n### Platform-Specific Configuration\n\n```toml\n# Linux (Debian)\n[package.metadata.packager.deb]\ndepends = \".\u002Fdist\u002Fdepends_deb.txt\"\ndesktop_template = \".\u002Fpackaging\u002Fyour-app.desktop\"\nsection = \"utils\"\n\n# macOS\n[package.metadata.packager.macos]\nminimum_system_version = \"11.0\"\nframeworks = []\ninfo_plist_path = \".\u002Fpackaging\u002FInfo.plist\"\nentitlements = \".\u002Fpackaging\u002FEntitlements.plist\"\n# Optional: signing identity for distribution\nsigning_identity = \"Developer ID Application: Your Name (XXXXXXXXXX)\"\n\n# macOS DMG\n[package.metadata.packager.dmg]\nbackground = \".\u002Fpackaging\u002Fdmg_background.png\"\nwindow_size = { width = 960, height = 540 }\napp_position = { x = 200, y = 250 }\napplication_folder_position = { x = 760, y = 250 }\n\n# Windows NSIS\n[package.metadata.packager.nsis]\nappdata_paths = [\n    \"$APPDATA\u002F$PUBLISHER\u002F$PRODUCTNAME\",\n    \"$LOCALAPPDATA\u002F$PRODUCTNAME\",\n]\n```\n\n---\n\n## Mobile Packaging\n\nMobile platforms use `cargo-makepad` for building and packaging.\n\n### Install cargo-makepad\n\n```bash\ncargo install --force --git https:\u002F\u002Fgithub.com\u002Fmakepad\u002Fmakepad.git \\\n    --branch dev cargo-makepad\n```\n\n### Android\n\n```bash\n# Install Android toolchain\ncargo makepad android install-toolchain\n\n# Full NDK (recommended for complete support)\ncargo makepad android install-toolchain --full-ndk\n\n# Build APK\ncargo makepad android build -p your-app --release\n```\n\nOutput: `.apk` in `.\u002Ftarget\u002Fmakepad-android-app\u002F`\n\n**Run on device\u002Femulator:**\n```bash\ncargo makepad android run -p your-app --release\n```\n\n### iOS\n\n```bash\n# Install iOS toolchain\ncargo makepad apple ios install-toolchain\n```\n\n**iOS Simulator:**\n```bash\ncargo makepad apple ios \\\n    --org=com.yourcompany \\\n    --app=YourApp \\\n    run-sim -p your-app --release\n```\n\nOutput: `.app` in `.\u002Ftarget\u002Fmakepad-apple-app\u002Faarch64-apple-ios-sim\u002Frelease\u002F`\n\n**iOS Device (requires provisioning):**\n\nFirst, create an empty app in Xcode with matching org\u002Fapp names to generate provisioning profile.\n\n```bash\ncargo makepad apple ios \\\n    --org=com.yourcompany \\\n    --app=YourApp \\\n    --profile=$YOUR_PROFILE_PATH \\\n    --cert=$YOUR_CERT_FINGERPRINT \\\n    --device=iPhone \\\n    run-device -p your-app --release\n```\n\nOutput: `.app` in `.\u002Ftarget\u002Fmakepad-apple-app\u002Faarch64-apple-ios\u002Frelease\u002F`\n\n**Create IPA for distribution:**\n```bash\ncd .\u002Ftarget\u002Fmakepad-apple-app\u002Faarch64-apple-ios\u002Frelease\nmkdir Payload\ncp -r your-app.app Payload\u002F\nzip -r your-app-ios.ipa Payload\n```\n\n---\n\n## Wasm Packaging\n\nBuild your Makepad app for web browsers.\n\n```bash\n# Install Wasm toolchain\ncargo makepad wasm install-toolchain\n\n# Build and run\ncargo makepad wasm run -p your-app --release\n```\n\nOutput in `.\u002Ftarget\u002Fmakepad-wasm-app\u002Frelease\u002Fyour-app\u002F`:\n- `index.html` - Entry point\n- `*.wasm` - WebAssembly module\n- `*.js` - JavaScript bridge\n- `resources\u002F` - Static assets\n\n**Serve locally:**\n```bash\ncd .\u002Ftarget\u002Fmakepad-wasm-app\u002Frelease\u002Fyour-app\npython3 -m http.server 8080\n# Open http:\u002F\u002Flocalhost:8080\n```\n\n---\n\n## Complete Example Cargo.toml\n\n```toml\n[package]\nname = \"my-makepad-app\"\nversion = \"1.0.0\"\nedition = \"2024\"\n\n[dependencies]\nmakepad-widgets = { git = \"https:\u002F\u002Fgithub.com\u002Fmakepad\u002Fmakepad\", branch = \"dev\" }\n\n[profile.release]\nopt-level = 3\n\n[profile.release-lto]\ninherits = \"release\"\nlto = \"thin\"\n\n[profile.distribution]\ninherits = \"release\"\ncodegen-units = 1\nlto = \"fat\"\n\n[package.metadata.packager]\nproduct_name = \"My Makepad App\"\nidentifier = \"com.example.mymakepadapp\"\nauthors = [\"Your Name \u003Cyou@example.com>\"]\ndescription = \"A cross-platform Makepad application\"\nlong_description = \"\"\"\nMy Makepad App is a cross-platform application\nbuilt with the Makepad UI framework in Rust.\nIt runs on desktop, mobile, and web platforms.\n\"\"\"\nicons = [\".\u002Fpackaging\u002Ficon.png\"]\nout_dir = \".\u002Fdist\"\n\nbefore-packaging-command = \"\"\"\nrobius-packaging-commands before-packaging \\\n    --force-makepad \\\n    --binary-name my-makepad-app \\\n    --path-to-binary .\u002Ftarget\u002Frelease\u002Fmy-makepad-app\n\"\"\"\n\nresources = [\n    { src = \".\u002Fdist\u002Fresources\u002Fmakepad_widgets\", target = \"makepad_widgets\" },\n    { src = \".\u002Fdist\u002Fresources\u002Fmakepad_fonts_chinese_bold\", target = \"makepad_fonts_chinese_bold\" },\n    { src = \".\u002Fdist\u002Fresources\u002Fmakepad_fonts_chinese_bold_2\", target = \"makepad_fonts_chinese_bold_2\" },\n    { src = \".\u002Fdist\u002Fresources\u002Fmakepad_fonts_chinese_regular\", target = \"makepad_fonts_chinese_regular\" },\n    { src = \".\u002Fdist\u002Fresources\u002Fmakepad_fonts_chinese_regular_2\", target = \"makepad_fonts_chinese_regular_2\" },\n    { src = \".\u002Fdist\u002Fresources\u002Fmakepad_fonts_emoji\", target = \"makepad_fonts_emoji\" },\n    { src = \".\u002Fdist\u002Fresources\u002Fmy-makepad-app\", target = \"my-makepad-app\" },\n]\n\nbefore-each-package-command = \"\"\"\nrobius-packaging-commands before-each-package \\\n    --force-makepad \\\n    --binary-name my-makepad-app \\\n    --path-to-binary .\u002Ftarget\u002Frelease\u002Fmy-makepad-app\n\"\"\"\n\n[package.metadata.packager.deb]\ndepends = \".\u002Fdist\u002Fdepends_deb.txt\"\nsection = \"utils\"\n\n[package.metadata.packager.macos]\nminimum_system_version = \"11.0\"\n\n[package.metadata.packager.nsis]\nappdata_paths = [\"$LOCALAPPDATA\u002F$PRODUCTNAME\"]\n```\n\n---\n\n## Quick Reference\n\n| Task | Command |\n|------|---------|\n| Install desktop packager | `cargo install cargo-packager --locked` |\n| Install resource helper | `cargo install --version 0.2.1 --locked --git https:\u002F\u002Fgithub.com\u002Fproject-robius\u002Frobius-packaging-commands.git robius-packaging-commands` |\n| Install mobile packager | `cargo install --force --git https:\u002F\u002Fgithub.com\u002Fmakepad\u002Fmakepad.git --branch dev cargo-makepad` |\n| GitHub Actions packaging | `uses: Project-Robius-China\u002Fmakepad-packaging-action@v1` |\n| Package for Linux | `cargo packager --release` |\n| Package for Windows | `cargo packager --release --formats nsis` |\n| Package for macOS | `cargo packager --release` |\n| Build Android APK | `cargo makepad android build -p app --release` |\n| Build iOS (Simulator) | `cargo makepad apple ios --org=x --app=y run-sim -p app --release` |\n| Build iOS (Device) | `cargo makepad apple ios --org=x --app=y --profile=... --cert=... run-device -p app --release` |\n| Build Wasm | `cargo makepad wasm run -p app --release` |\n\n---\n\n## Troubleshooting\n\n### Missing Resources\n\nIf app crashes with missing resources:\n1. Check `resources` array in Cargo.toml includes all Makepad resources\n2. Verify `before-packaging-command` runs successfully\n3. Check `.\u002Fdist\u002Fresources\u002F` contains expected files\n\n### iOS Provisioning\n\nFor iOS device deployment:\n1. Create empty app in Xcode with same org\u002Fapp identifiers\n2. Run on physical device once to generate provisioning profile\n3. Note the profile path, certificate fingerprint\n4. Use `--profile`, `--cert`, `--device` flags\n\n### Android SDK Issues\n\n```bash\n# Reinstall toolchain with full NDK\ncargo makepad android install-toolchain --full-ndk\n```\n\n## Reference Files\n\n- `references\u002Fplatform-troubleshooting.md` - Platform-specific deployment issues\n- `references\u002Fmakepad-packaging-action.md` - GitHub Actions packaging reference\n- `community\u002Fdora-studio-package-workflow.md` - Dora Studio CI packaging example\n\n## External References\n\n- [cargo-packager docs](https:\u002F\u002Fdocs.crabnebula.dev\u002Fpackager\u002F)\n- [robius-packaging-commands](https:\u002F\u002Fgithub.com\u002Fproject-robius\u002Frobius-packaging-commands)\n- [cargo-makepad](https:\u002F\u002Fgithub.com\u002Fmakepad\u002Fmakepad)\n- [makepad-packaging-action](https:\u002F\u002Fgithub.com\u002Fmarketplace\u002Factions\u002Fmakepad-packaging-action)\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.\n","","imported","https:\u002F\u002Fgithub.com\u002Fsickn33\u002Fantigravity-awesome-skills","user_system_seed","SkillOPIC",true,126,382,"2026-05-16 13:27:34",{"id":8,"name":21,"slug":22,"icon":23,"description":24,"sort":25,"createdAt":26},"编程开发","coding","mdi-code-braces","代码生成、调试、审查，提升开发效率",2,"2026-05-16 12:53:40",{"id":7,"name":28,"slug":29,"icon":30,"description":31,"moduleId":8,"sort":32,"skillCount":33,"createdAt":26},"DevOps","devops","mdi-cog-outline","CI\u002FCD、容器化、部署运维",3,162,[35],{"id":36,"skillId":4,"version":37,"fileName":38,"fileSize":39,"filePath":40,"fileHash":41,"manifest":42,"createdAt":19},"425dea2b-4cc2-4a75-9a72-cc4e51f55afd","1.0.0","makepad-deployment.zip",3901,"uploads\u002Fskills\u002Ffc59c9b0-0251-4807-9476-573865b301dd\u002Fmakepad-deployment.zip","cb8fa8fa516342625c3dc054304af97440b292e18bf5bf08965452aa385189a0","[{\"path\":\"SKILL.md\",\"isDirectory\":false,\"size\":12089}]",{"code":44,"message":45,"data":46},200,"success",{"items":47,"stats":48,"page":51},[],{"averageRating":49,"totalRatings":49,"ratingCounts":50},0,[49,49,49,49,49],{"limit":52,"offset":49,"hasMore":53,"nextOffset":52,"ratedOnly":16},15,false]