diff --git a/.github/workflows/tauri-build.yml b/.github/workflows/tauri-build.yml index f70e85cfc0..48d2a83e1b 100644 --- a/.github/workflows/tauri-build.yml +++ b/.github/workflows/tauri-build.yml @@ -86,7 +86,7 @@ jobs: # ARM64: NSIS only (WiX MSI has no arm64 support in Tauri) and no JPDFium # natives yet - flip jpdfium_platforms to windows-arm64 once JPDFium ships it. WINDOWS_ARM64='{"platform":"windows-11-arm","args":"--target aarch64-pc-windows-msvc --bundles nsis","name":"windows-arm64","jpdfium_platforms":"none"}' - MACOS='{"platform":"macos-26","args":"--target universal-apple-darwin --verbose","name":"macos-universal","jpdfium_platforms":"darwin-arm64,darwin-x64"}' + MACOS='{"platform":"macos-26","args":"--target universal-apple-darwin","name":"macos-universal","jpdfium_platforms":"darwin-arm64,darwin-x64"}' LINUX='{"platform":"ubuntu-22.04","args":"","name":"linux-x86_64","jpdfium_platforms":"linux-x64"}' case "$PLATFORM" in @@ -178,27 +178,6 @@ jobs: xcodebuild -version command -v actool - # TEMPORARY DIAGNOSTIC - hidden vs visible parent directory. - # Tauri compiles from tempfile::tempdir(), which defaults to a ".tmp" - # prefix. If actool skips hidden paths, that is an upstream bug. - - name: PROBE hidden parent directory - if: runner.os == 'macOS' - continue-on-error: true - shell: bash - run: | - try_dir() { - local dir="$1" label="$2" - rm -rf "$dir"; mkdir -p "$dir/out" - cp -R frontend/editor/src-tauri/icons/macos/app.icon "$dir/Icon.icon" - echo "########## $label -> $dir" - actool "$dir/Icon.icon" --compile "$dir/out" --output-format human-readable-text --notices --warnings --output-partial-info-plist "$dir/out/assetcatalog_generated_info.plist" --app-icon Icon --include-all-app-icons --accent-color AccentColor --enable-on-demand-resources NO --development-region en --target-device mac --minimum-deployment-target 26.0 --platform macosx 2>&1 | tail -6 - echo "########## $label exit=${PIPESTATUS[0]} car=$(ls -1 "$dir/out/Assets.car" 2>/dev/null || echo NONE)" - } - T="${TMPDIR%/}" - try_dir "$T/visible-parent" VISIBLE - try_dir "$T/.tmpHIDDEN1" HIDDEN - try_dir "$T/.hidden-parent/nested" HIDDEN-ANCESTOR - - name: Setup Rust uses: dtolnay/rust-toolchain@4be9e76fd7c4901c61fb841f559994984270fce7 # stable with: diff --git a/.gitignore b/.gitignore index 4b34350f67..58ca1938e5 100644 --- a/.gitignore +++ b/.gitignore @@ -305,3 +305,6 @@ docs/type3/signatures/ # Local screenshot artifacts from *-screenshots.spec.ts frontend/editor/screenshots/ + +# Compiled by `task desktop:assets-car` from icons/macos/app.icon +frontend/editor/src-tauri/icons/macos/Assets.car diff --git a/.taskfiles/desktop.yml b/.taskfiles/desktop.yml index 555e252a4e..536573389b 100644 --- a/.taskfiles/desktop.yml +++ b/.taskfiles/desktop.yml @@ -35,6 +35,29 @@ tasks: - task: ":frontend:prepare" vars: { MODE: desktop } - provisioner + - assets-car + + assets-car: + desc: "Compile the macOS Liquid Glass app icon" + platforms: [darwin] + cmds: + # Tauri can compile icons/macos/app.icon itself, but its own actool call + # fails inside the bundler; compiling here and handing it the finished + # Assets.car takes the supported prebuilt-.car path instead. + - cmd: | + set -eu + ICONS=frontend/editor/src-tauri/icons/macos + WORK=$(mktemp -d)/build + mkdir -p "$WORK/out" + cp -R "$ICONS/app.icon" "$WORK/Icon.icon" + actool "$WORK/Icon.icon" --compile "$WORK/out" \ + --output-format human-readable-text --notices --warnings \ + --output-partial-info-plist "$WORK/out/assetcatalog_generated_info.plist" \ + --app-icon Icon --include-all-app-icons \ + --enable-on-demand-resources NO --development-region en \ + --target-device mac --minimum-deployment-target 26.0 --platform macosx + cp "$WORK/out/Assets.car" "$ICONS/Assets.car" + echo "Compiled $ICONS/Assets.car ($(wc -c < "$ICONS/Assets.car") bytes)" provisioner: desc: "Build installer provisioner" diff --git a/frontend/editor/src-tauri/tauri.conf.json b/frontend/editor/src-tauri/tauri.conf.json index 7a6afe26c4..cdd29e708f 100644 --- a/frontend/editor/src-tauri/tauri.conf.json +++ b/frontend/editor/src-tauri/tauri.conf.json @@ -31,7 +31,6 @@ "icon": [ "icons/windows/app.ico", "icons/macos/app.icns", - "icons/macos/app.icon", "icons/macos/app-512.png" ], "resources": ["libs/*.jar", "runtime/jre/**/*"], diff --git a/frontend/editor/src-tauri/tauri.macos.conf.json b/frontend/editor/src-tauri/tauri.macos.conf.json new file mode 100644 index 0000000000..6e56a5284b --- /dev/null +++ b/frontend/editor/src-tauri/tauri.macos.conf.json @@ -0,0 +1,9 @@ +{ + "bundle": { + "icon": [ + "icons/macos/app.icns", + "icons/macos/app-512.png", + "icons/macos/Assets.car" + ] + } +}