DioxusLabs/dioxus · error · anyhow::Error

IPA packaging requires a physical-device iOS target. Resolve

Error message

IPA packaging requires a physical-device iOS target. Resolved target was `{target}`.

What it means

validate_ios_ipa_target determined the current build does not target a physical iOS device: .ipa packaging requires the AArch64 device toolchain, but the resolved target contains a simulator triple (or the arch is not AArch64), so packaging bails.

Source

Thrown at packages/cli/src/bundler/ios.rs:97

        if output_path.exists() {
            std::fs::remove_file(&output_path)?;
        }
        zip_dir_recursive(staging_dir.path(), &output_path)?;

        tracing::info!("IPA created at {}", output_path.display());

        Ok(IosBundled {
            ipa: vec![output_path],
            app: synthesized_app_paths,
        })
    }
}

fn validate_ios_ipa_target(target: &str, arch: Arch) -> Result<()> {
    let is_device = arch == Arch::AArch64 && !target.contains("sim");
    if !is_device {
        bail!(
            "IPA packaging requires a physical-device iOS target. Resolved target was `{target}`."
        );
    }

    Ok(())
}

async fn verify_codesigned_app(app_path: &Path) -> Result<()> {
    verify_codesigned_app_with(Path::new("codesign"), app_path).await
}

async fn verify_codesigned_app_with(codesign: &Path, app_path: &Path) -> Result<()> {
    let output = Command::new(codesign)
        .args(["--verify", "--deep", "--strict"])
        .arg(app_path)
        .output()
        .await
        .with_context(|| format!("Failed to run `{}`", codesign.display()))?;

View on GitHub (pinned to 24f6a829df)

Solutions

  1. IPA packaging needs a physical-device build. Build for a device target (aarch64-apple-ios), not a simulator target.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at packages/cli/src/bundler/ios.rs:97 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/372b99fc0d1ebfeb. Report an issue: GitHub.