DioxusLabs/dioxus · error · anyhow::Error
ditto failed to create zip for notarization
Error message
ditto failed to create zip for notarization
What it means
The macOS bundler ran `ditto -c -k` to zip the .app for notarization and the command reported failure. The zip artifact is required by Apple's notary service, so the bundling step aborts when ditto exits unsuccessfully.
Source
Thrown at packages/cli/src/bundler/macos.rs:221
if should_notarize {
let zip_path = output_dir.join(format!("{bundle_name}.zip"));
tracing::info!("Creating zip for notarization: {}", zip_path.display());
let status = Command::new("ditto")
.args([
"-c",
"-k",
"--sequesterRsrc",
"--keepParent",
&app_dir.display().to_string(),
&zip_path.display().to_string(),
])
.status()
.await
.context("Failed to run ditto for zip creation")?;
if !status.success() {
bail!("ditto failed to create zip for notarization");
}
match notarize(&zip_path, &app_dir).await {
Ok(()) => {
let _ = fs::remove_file(&zip_path);
}
Err(e) => {
let _ = fs::remove_file(&zip_path);
return Err(e.context("Notarization failed"));
}
}
}
} else {
tracing::debug!("No signing identity found; skipping code signing");
}
Ok(vec![app_dir])
}View on GitHub (pinned to 24f6a829df)
Solutions
- ditto could not create the notarization zip. Verify the .app path exists and the destination is writable.
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at packages/cli/src/bundler/macos.rs:221 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of DioxusLabs/dioxus@24f6a829df (2026-08-23).
Data as JSON: /api/errors/ec66c458002a9bc0.
Report an issue: GitHub.