Skip to content

feat(bundler): add configurable detach retries for DMG creation#15212

Open
muratclk wants to merge 1 commit intotauri-apps:devfrom
muratclk:feat/dmg-detach-retries
Open

feat(bundler): add configurable detach retries for DMG creation#15212
muratclk wants to merge 1 commit intotauri-apps:devfrom
muratclk:feat/dmg-detach-retries

Conversation

@muratclk
Copy link
Copy Markdown

@muratclk muratclk commented Apr 9, 2026

Summary

Adds a detachRetries configuration option to DmgConfig that controls the maximum number of attempts to detach (unmount) the disk image during DMG creation. This addresses the hdiutil: detach: timeout for DiskArbitration expired errors that occur in CI environments when building large apps (~400MB+ DMGs).

Changes

  • Added detachRetries field to DmgConfig (tauri-utils) with a default of 3 (preserving current behavior)
  • Added corresponding detach_retries field to DmgSettings (tauri-bundler)
  • Mapped config through CLI interface (rust.rs)
  • Modified bundle_dmg shell script to read TAURI_DMG_DETACH_RETRIES env var instead of hardcoded value
  • Passed the env var from Rust when invoking the bundle script
  • Updated all three JSON schema files with the new property

Configuration

Users can set this in tauri.conf.json:

{
  "bundle": {
    "macOS": {
      "dmg": {
        "detachRetries": 10
      }
    }
  }
}

The default value of 3 preserves backward compatibility. Users experiencing timeout issues (especially in CI with large apps) can increase this value.

Closes #14686

Add `detachRetries` config option to `DmgConfig` that controls the
maximum number of attempts to detach (unmount) the disk image during
DMG creation. This helps users with large apps experiencing
"hdiutil: detach: timeout" errors in CI environments.

The value defaults to 3 (preserving current behavior) and can be
configured via `tauri.conf.json` under `bundle.macOS.dmg.detachRetries`.

Closes tauri-apps#14686

Co-Authored-By: Paperclip <noreply@paperclip.ing>
@muratclk muratclk requested a review from a team as a code owner April 9, 2026 06:25
@github-project-automation github-project-automation bot moved this to 📬Proposal in Roadmap Apr 9, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 9, 2026

Package Changes Through edcad49

There are 10 changes which include tauri with minor, @tauri-apps/api with minor, tauri-macos-sign with patch, tauri-build with patch, tauri-runtime with minor, tauri-runtime-wry with minor, tauri-bundler with minor, tauri-cli with minor, @tauri-apps/cli with minor, tauri-utils with minor

Planned Package Versions

The following package releases are the planned based on the context of changes in this pull request.

package current next
@tauri-apps/api 2.10.1 2.11.0
tauri-utils 2.8.3 2.9.0
tauri-macos-sign 2.3.3 2.3.4
tauri-bundler 2.8.1 2.9.0
tauri-runtime 2.10.1 2.11.0
tauri-runtime-wry 2.10.1 2.11.0
tauri-codegen 2.5.5 2.5.6
tauri-macros 2.5.5 2.5.6
tauri-plugin 2.5.4 2.5.5
tauri-build 2.5.6 2.5.7
tauri 2.10.3 2.11.0
@tauri-apps/cli 2.10.1 2.11.0
tauri-cli 2.10.1 2.11.0

Add another change file through the GitHub UI by following this link.


Read about change files or the docs at github.com/jbolda/covector

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: 📬Proposal

Development

Successfully merging this pull request may close these issues.

Consider allowing the user to customize the detach attempts / time

1 participant