Expand description
Generated Apple host projects, iOS Simulator builds, and artifact validation.
The user application remains Rust-only. This crate emits deterministic Xcode
metadata below target/ferry/, cross-compiles the requested Rust binary, and
lets Xcode assemble and ad-hoc sign the simulator bundle without a team or running device.
Structs§
- Apple
Discovery - Complete, read-only Apple development inventory.
- Apple
Discovery Options - Explicit, read-only inputs for Apple toolchain discovery.
- Apple
Doctor Check - One stable, machine-readable Apple doctor finding.
- Apple
Doctor Options - Apple doctor inputs.
- Apple
Doctor Report - Complete Apple doctor report. Generating it never installs or changes tools.
- Apple
Host Tools - Host executables relevant to Apple builds and diagnostics.
- Apple
Toolchain - Selected tools and SDK used by one iOS Simulator build.
- Command
Output - Captured output from a successful external command.
- Command
Spec - One safely tokenized external command.
- Generated
Apple Project - Deterministic generated files, keyed by paths relative to a generated root.
- IosArtifact
Expectation - Independent validation inputs for a built iOS application.
- IosArtifact
Validation - Evidence collected from a successfully validated
.app. - IosAsset
Catalog Validation - Evidence that the app consumes the generated asset catalog.
- IosBuild
Outcome - Build result. Dry-run results deliberately contain no artifact or validation claim.
- IosBuild
Plan - Complete, serializable simulator command and generated-file plan.
- IosCode
Signature Validation - Validated ad-hoc code-signature metadata.
- IosDevice
Archive Outcome - Result of an unsigned physical-device archive operation.
- IosDevice
Archive Plan - Complete serializable plan for an unsigned physical-device Xcode archive.
- IosDevice
Archive Request - Inputs for an unsigned physical-iPhone compilation and Xcode archive.
- IosDevice
MachO Validation - Evidence that an archived executable is arm64 physical-iOS code.
- IosDevice
MachO Validation Plan - Commands and invariants used to reject Simulator Mach-O output.
- IosDevice
Sdk - Installed physical-iPhone SDK selected by Xcode.
- IosDevice
Toolchain - Selected tools and SDK for one physical-iPhone build.
- IosExtension
Expectation - Expected embedded app extension.
- IosExtension
Validation - Validated embedded extension metadata.
- IosProject
Spec - Inputs for deterministic hidden Xcode project generation.
- IosRuntime
Bridge Validation - Validated generated native runtime framework metadata.
- IosSdk
Only Asset Validation - Evidence for the runtime-free, SDK-only image resource fallback.
- IosSimulator
Build Request - Inputs for a build-only iOS Simulator application.
- Manual
Signing Assets Input - Secret, bounded inputs for one manual-signing identity and profile.
- Manual
Signing Identity Input - Secret, bounded PKCS#12 identity input retained for one remote upload.
- Planned
Copy - One internal file copy represented explicitly in a dry-run plan.
- Simulator
Runtime - One
CoreSimulatorruntime reported bysimctl. - Simulator
Sdk - Installed iPhone Simulator SDK selected by Xcode.
- Validated
Manual Signing Assets - Public metadata proven by PKCS#12, X.509, CMS, and profile validation.
Enums§
- Apple
Build Profile - Cargo/Xcode build profile.
- Apple
Error - Failure while discovering, generating, building, or validating an Apple artifact.
- Doctor
Status - Severity and result of one Apple doctor check.
- Extension
Kind - Apple extension family generated as a native Xcode target.
- IosAsset
Packaging - How generated iOS image assets are packaged into a Simulator application.
- IosDevice
Artifact Disposition - Installation status of a physical-device build product.
- IosProject
Platform - Apple SDK and signing behavior encoded in a generated Xcode project.
- Manual
Signing Asset Error - Secret-free manual-signing asset validation failure.
- Manual
Signing Asset Field - One secret input field rejected before cryptographic parsing.
- Manual
Signing Asset Input Error - Structural reason an input was rejected before cryptographic parsing.
Constants§
- APPLE_
ROOT_ CA_ G2_ SHA256 - SHA-256 fingerprint of Apple Root CA - G2.
- APPLE_
ROOT_ CA_ G3_ SHA256 - SHA-256 fingerprint of Apple Root CA - G3.
- APPLE_
ROOT_ CA_ SHA256 - SHA-256 fingerprint of Apple’s original Apple Root CA.
- DEFAULT_
COMMAND_ TIMEOUT - Default deadline for one external Apple build-tool invocation.
- IOS_
DEVICE_ TARGET - Rust target used for physical iPhone artifacts.
- IOS_
SIMULATOR_ TARGET - Rust target used for Apple Silicon iOS Simulator artifacts.
- MAX_
MANUAL_ SIGNING_ PASSWORD_ BYTES - Maximum accepted PKCS#12 password size.
- MAX_
MANUAL_ SIGNING_ PKCS12_ BYTES - Maximum accepted PKCS#12 archive size.
- MAX_
MANUAL_ SIGNING_ PROFILE_ BYTES - Maximum accepted CMS provisioning-profile size.
Functions§
- build_
ios_ device_ unsigned - Cross-compile, archive without signing, and prove the main Mach-O targets physical iOS.
- build_
ios_ simulator - Cross-compile the Rust executable, assemble a real
.app, and validate it. - derive_
ios_ device_ product_ expectation - Derive the complete client-owned product identity for a physical-iPhone request.
- discover_
apple - Inspect Xcode, the Simulator SDK/runtimes, and Rust targets without changing the host.
- doctor_
apple - Inspect every iOS Simulator build prerequisite without modifying the system.
- generate_
ios_ project - Render an Xcode app target and any requested extension target without touching disk.
- generate_
ios_ project_ for_ platform - Render an Xcode app target for an explicit simulator or physical-device platform.
- plan_
ios_ device_ unsigned - Produce a deterministic, side-effect-free unsigned device archive plan.
- plan_
ios_ simulator - Produce a deterministic, side-effect-free command plan using an already selected toolchain.
- run_
command - Run one command without a shell, capture both streams, enforce a timeout, and optionally log it.
- validate_
ios_ app - Validate plist metadata, executable identity/architecture, resources, libraries, and extensions.
- validate_
ios_ extension - Validate one standalone generated
.appexproduct. - validate_
manual_ signing_ assets - Validate a PKCS#12 signing identity and Apple CMS provisioning profile.
- validate_
manual_ signing_ identity - Validate one PKCS#12 identity without provisioning-profile bytes.
- validate_
manual_ signing_ profile - Validate one CMS provisioning profile against an already validated identity.
- with_
command_ cancellation - Run a closure with cooperative cancellation enabled for Apple commands on this thread.
- write_
ios_ project - Write generated files below an internal root, rejecting absolute paths, traversal, and symlinks.