build: macOS 打包脚本确保生成 DMG 安装包
根因:build_macos_pyinstaller.sh Step 3 显式指定 --bundles app,覆盖了
tauri.conf.json 里的 dmg target,只生成 .app 然后手动打 ZIP,完全没生成 DMG。
修复:
1. --bundles app → --bundles app,dmg(同时构建 .app 和 .dmg)
2. Step 4 增加 DMG 产物收集:从 bundle/dmg/*.dmg 复制到 dist/,
命名 YunOPC-Hub-{VERSION}-macOS.dmg,输出大小和路径
3. 构建完成摘要增加 DMG 路径
4. package.json 增加快捷脚本:tauri:dev / tauri:build /
tauri:build:mac / tauri:build:mac:debug
5. tauri.conf.json bundle.macOS.dmg 增加专业配置:
windowSize [640,440] + applicationFolder=true(DMG 内显示
/Applications 快捷方式,支持拖拽安装)
macOS DMG 打包依赖系统自带 hdiutil,无需额外安装。
This commit is contained in:
@@ -128,7 +128,7 @@ cd console
|
||||
echo "Building for macOS..."
|
||||
npm exec -- tauri build \
|
||||
--config src-tauri/tauri.version.conf.json \
|
||||
--bundles app
|
||||
--bundles app,dmg
|
||||
cd ..
|
||||
echo "Tauri app built"
|
||||
echo ""
|
||||
@@ -190,6 +190,22 @@ else
|
||||
fi
|
||||
echo ""
|
||||
|
||||
# Collect DMG disk image (Tauri dmg bundle target)
|
||||
DMG_GLOB="${BUNDLE_DIR}/dmg"/*.dmg
|
||||
DMG_FILES=(${DMG_GLOB})
|
||||
if [ ${#DMG_FILES[@]} -gt 0 ] && [ -f "${DMG_FILES[0]}" ]; then
|
||||
DMG_SRC="${DMG_FILES[0]}"
|
||||
DMG_NAME="YunOPC-Hub-${VERSION}-macOS.dmg"
|
||||
DMG_DEST="${DIST_ROOT}/${DMG_NAME}"
|
||||
cp -f "${DMG_SRC}" "${DMG_DEST}"
|
||||
DMG_SIZE=$(du -sh "${DMG_DEST}" | cut -f1)
|
||||
echo "Created ${DMG_DEST} (${DMG_SIZE})"
|
||||
else
|
||||
echo "WARNING: No DMG file found at ${BUNDLE_DIR}/dmg/*.dmg"
|
||||
echo " Tauri dmg bundle may have been skipped. Check that hdiutil is available."
|
||||
fi
|
||||
echo ""
|
||||
|
||||
UPDATER_NAME="${DIST_ROOT}/YunOPC-Hub-${VERSION}-macOS.app.tar.gz"
|
||||
case "$(uname -m)" in
|
||||
arm64 | aarch64) UPDATER_TARGET="darwin-aarch64" ;;
|
||||
@@ -215,6 +231,7 @@ echo "========================================="
|
||||
echo "App: ${APP_PATH}"
|
||||
echo "Distribution: ${DIST_DIR}"
|
||||
echo "Archive: ${ZIP_NAME}"
|
||||
echo "DMG: ${DMG_DEST:-not generated}"
|
||||
echo "Updater: ${UPDATER_NAME}"
|
||||
echo ""
|
||||
echo "Test: open \"${STAGED_APP_PATH}\""
|
||||
|
||||
Reference in New Issue
Block a user