{"record":{"id":"9c429869ff8e91a0","repo":"tauri-apps/tauri","slug":"arch-specified-by-xcode-was-invalid-arch-isn-t","errorCode":null,"errorMessage":"Arch specified by Xcode was invalid. {arch} isn't a known arch","messagePattern":"Arch specified by Xcode was invalid\\. (.+?) isn't a known arch","errorType":"exception","errorClass":"tauri_cli::error::Error","httpStatus":null,"severity":"error","filePath":"crates/tauri-cli/src/mobile/ios/xcode_script.rs","lineNumber":225,"sourceCode":"    } else {\n      \"x86_64\"\n    }\n    .to_string()]\n  } else {\n    options.arches\n  };\n\n  let installed_targets =\n    crate::interface::rust::installation::installed_targets().unwrap_or_default();\n\n  for arch in arches {\n    // Set target-specific flags\n    let (env_triple, rust_triple) = match arch.as_str() {\n      \"arm64\" if !simulator => (\"aarch64_apple_ios\", \"aarch64-apple-ios\"),\n      \"arm64\" if simulator => (\"aarch64_apple_ios_sim\", \"aarch64-apple-ios-sim\"),\n      \"x86_64\" => (\"x86_64_apple_ios\", \"x86_64-apple-ios\"),\n      _ => {\n        crate::error::bail!(\"Arch specified by Xcode was invalid. {arch} isn't a known arch\")\n      }\n    };\n\n    let interface = AppInterface::new(&tauri_config, Some(rust_triple.into()), dirs.tauri)?;\n\n    let cflags = format!(\"CFLAGS_{env_triple}\");\n    let cxxflags = format!(\"CFLAGS_{env_triple}\");\n    let objc_include_path = format!(\"OBJC_INCLUDE_PATH_{env_triple}\");\n    let mut target_env = host_env.clone();\n    target_env.insert(cflags.as_ref(), isysroot.as_ref());\n    target_env.insert(cxxflags.as_ref(), isysroot.as_ref());\n    target_env.insert(objc_include_path.as_ref(), include_dir.as_ref());\n\n    let target = if macos {\n      &macos_target\n    } else {\n      Target::for_arch(if arch == \"arm64\" && simulator {\n        \"arm64-sim\"","sourceCodeStart":207,"sourceCodeEnd":243,"githubUrl":"https://github.com/tauri-apps/tauri/blob/52e4b6e71d8632a7e648f866c442e287ecddee34/crates/tauri-cli/src/mobile/ios/xcode_script.rs#L207-L243","documentation":"The Xcode script helper maps each architecture Xcode asks it to build (from ARCHS) onto a Rust target triple: arm64 on device -> aarch64-apple-ios, arm64 on simulator -> aarch64-apple-ios-sim, x86_64 -> x86_64-apple-ios. Any other value in ARCHS falls through to this bail, meaning Xcode requested an architecture Tauri cannot compile for.","triggerScenarios":"The ARCHS build setting (or a value derived from it, e.g. in a Universal build or after filtering by EXCLUDED_ARCHS) contains something other than arm64/x86_64 — such as arm64e, armv7, arm64_32, i386, or a malformed value. Also occurs when building a watchOS-adjacent scheme against the iOS project.","commonSituations":"Manually setting ARCHS in Build Settings; third-party xcconfig files injecting extra architectures; Xcode's 'Standard Architectures' resolving unexpectedly on unusual SDKs; fat/universal build scripts that forward ARCHS verbatim.","solutions":["In the target's Build Settings set ARCHS to exactly `arm64` (device/simulator) and/or `x86_64` (Intel simulator); delete custom ARCHS entries so the default applies.","Use EXCLUDED_ARCHS to remove unwanted arches (e.g. EXCLUDED_ARCHS[sdk=iphonesimulator*] = i386) instead of rewriting ARCHS.","If a script forwards ARCHS to the tauri xcode-script phase, sanitize it to the supported set first.","Verify with `xcodebuild -showBuildSettings -scheme <scheme> | grep ARCHS`."],"exampleFix":"// before (Build Settings)\nARCHS = armv7 arm64\n// error: Arch specified by Xcode was invalid. armv7 isn't a known arch\n\n// after\nARCHS = arm64\nEXCLUDED_ARCHS[sdk=iphonesimulator*] = i386","handlingStrategy":"validation","validationCode":"# In a pre-build script, validate ARCHS forwarded to the tauri phase\nfor a in $ARCHS; do\n  case \"$a\" in arm64|x86_64) ;; *) echo \"unsupported ARCHS entry: $a\"; exit 1;; esac\ndone","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Leave ARCHS at Xcode defaults; use EXCLUDED_ARCHS to trim architectures.","Audit xcconfig files from third-party SDKs for ARCHS overrides.","Check `xcodebuild -showBuildSettings | grep ARCHS` when adding new dependencies."],"tags":["tauri-cli","ios","architecture","xcode","rust-target"],"backgroundTag":"unsupported-architecture","analyzedSha":"52e4b6e71d8632a7e648f866c442e287ecddee34","analyzedAt":"2026-08-20T13:59:20.734Z","schemaVersion":2},"datasetVersion":"2026-08-31T22:30:34.772Z"}