diff --git a/.github/workflows/build-desktop.yml b/.github/workflows/build-desktop.yml index 8742d10..d498cf1 100644 --- a/.github/workflows/build-desktop.yml +++ b/.github/workflows/build-desktop.yml @@ -83,13 +83,21 @@ jobs: - name: 构建安装包 working-directory: apps/desktop env: - TARP_CODESIGN: ${{ inputs.sign && secrets.MAC_DEVELOPER_ID != '' && matrix.platform == 'mac' && '1' || '0' }} + TARP_CODESIGN: ${{ matrix.platform == 'mac' && '1' || '0' }} TARP_NOTARIZE: ${{ inputs.sign && secrets.MAC_DEVELOPER_ID != '' && secrets.APPLE_ID != '' && matrix.platform == 'mac' && '1' || '0' }} - ELECTROBUN_DEVELOPER_ID: ${{ matrix.platform == 'mac' && secrets.MAC_DEVELOPER_ID || '' }} + ELECTROBUN_DEVELOPER_ID: ${{ matrix.platform == 'mac' && (inputs.sign && secrets.MAC_DEVELOPER_ID || '-') || '' }} ELECTROBUN_APPLEID: ${{ matrix.platform == 'mac' && secrets.APPLE_ID || '' }} ELECTROBUN_APPLEIDPASS: ${{ matrix.platform == 'mac' && secrets.APPLE_APP_SPECIFIC_PASSWORD || '' }} ELECTROBUN_TEAMID: ${{ matrix.platform == 'mac' && secrets.APPLE_TEAM_ID || '' }} run: bun run dist + - name: 校验 macOS DMG 与内部安装器签名 + if: runner.os == 'macOS' + run: | + codesign --verify --strict --verbose=2 apps/desktop/release/macos-arm64-TARP.dmg + TARP_DMG_MOUNT=$(mktemp -d "$RUNNER_TEMP/tarp-dmg.XXXXXX") + hdiutil attach apps/desktop/release/macos-arm64-TARP.dmg -readonly -nobrowse -mountpoint "$TARP_DMG_MOUNT" + trap 'hdiutil detach "$TARP_DMG_MOUNT"; rmdir "$TARP_DMG_MOUNT"' EXIT + codesign --verify --deep --strict --verbose=2 "$TARP_DMG_MOUNT/TARP.app" - name: 验证打包后的 Bun、CLI、模组、Wasm 和 SQLite run: bun scripts/release/smoke.ts desktop - uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2 diff --git a/apps/desktop/src/renderer/src/components/SidebarToggle.tsx b/apps/desktop/src/renderer/src/components/SidebarToggle.tsx index c79b23c..181e9c6 100644 --- a/apps/desktop/src/renderer/src/components/SidebarToggle.tsx +++ b/apps/desktop/src/renderer/src/components/SidebarToggle.tsx @@ -8,16 +8,20 @@ interface SidebarToggleProps { readonly className?: string; } -/** 把窗口操作放在原生交通灯旁,避免再拼出一条独立的自定义标题栏。 */ +/** macOS 按钮放在交通灯旁;Windows 保留原生标题栏,按钮贴近内容区左侧。 */ export function SidebarToggle({ collapsed, onToggle, className }: SidebarToggleProps) { + const isWindows = navigator.userAgent.includes("Windows"); + return ( <> -
+ {!isWindows ? ( + + ) : null}