Skip to main content

rustferry_apple/
lib.rs

1//! Generated Apple host projects, iOS Simulator builds, and artifact validation.
2//!
3//! The user application remains Rust-only. This crate emits deterministic Xcode
4//! metadata below `target/ferry/`, cross-compiles the requested Rust binary, and
5//! lets Xcode assemble and ad-hoc sign the simulator bundle without a team or running device.
6
7mod artifact;
8mod build;
9mod command;
10mod device;
11mod discovery;
12mod doctor;
13mod error;
14mod project;
15mod signing_assets;
16
17pub use artifact::{
18    IosArtifactExpectation, IosArtifactValidation, IosAssetCatalogValidation,
19    IosCodeSignatureValidation, IosExtensionExpectation, IosExtensionValidation,
20    IosRuntimeBridgeValidation, IosSdkOnlyAssetValidation, validate_ios_app,
21    validate_ios_extension,
22};
23pub use build::{
24    AppleBuildProfile, ExtensionKind, IosBuildOutcome, IosBuildPlan, IosSimulatorBuildRequest,
25    PlannedCopy, build_ios_simulator, plan_ios_simulator,
26};
27pub use command::{
28    CommandOutput, CommandSpec, DEFAULT_COMMAND_TIMEOUT, run_command, with_command_cancellation,
29};
30pub use device::{
31    IosDeviceArchiveOutcome, IosDeviceArchivePlan, IosDeviceArchiveRequest,
32    IosDeviceArtifactDisposition, IosDeviceMachOValidation, IosDeviceMachOValidationPlan,
33    build_ios_device_unsigned, derive_ios_device_product_expectation, plan_ios_device_unsigned,
34};
35pub use discovery::{
36    AppleDiscovery, AppleDiscoveryOptions, AppleHostTools, AppleToolchain, IosDeviceSdk,
37    IosDeviceToolchain, SimulatorRuntime, SimulatorSdk, discover_apple,
38};
39pub use doctor::{
40    AppleDoctorCheck, AppleDoctorOptions, AppleDoctorReport, DoctorStatus, doctor_apple,
41};
42pub use error::AppleError;
43pub use project::{
44    GeneratedAppleProject, IosAssetPackaging, IosProjectPlatform, IosProjectSpec,
45    generate_ios_project, generate_ios_project_for_platform, write_ios_project,
46};
47pub use signing_assets::{
48    APPLE_ROOT_CA_G2_SHA256, APPLE_ROOT_CA_G3_SHA256, APPLE_ROOT_CA_SHA256,
49    MAX_MANUAL_SIGNING_PASSWORD_BYTES, MAX_MANUAL_SIGNING_PKCS12_BYTES,
50    MAX_MANUAL_SIGNING_PROFILE_BYTES, ManualSigningAssetError, ManualSigningAssetField,
51    ManualSigningAssetInputError, ManualSigningAssetsInput, ManualSigningIdentityInput,
52    ValidatedManualSigningAssets, validate_manual_signing_assets, validate_manual_signing_identity,
53    validate_manual_signing_profile,
54};
55
56/// Rust target used for physical iPhone artifacts.
57pub const IOS_DEVICE_TARGET: &str = "aarch64-apple-ios";
58
59/// Rust target used for Apple Silicon iOS Simulator artifacts.
60pub const IOS_SIMULATOR_TARGET: &str = "aarch64-apple-ios-sim";