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
- 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.