Skip to main content
The plume_core crate provides the foundational functionality for interacting with Apple’s authentication and developer services. It handles Apple ID authentication, certificate management, and communication with Apple’s Developer API.

Overview

This crate contains two primary modules:
  • auth - Apple ID authentication and token management
  • developer - Apple Developer API client for managing apps, devices, and provisioning

Re-exports

The crate re-exports commonly used types from dependencies:
pub use apple_codesign::{
    AppleCodesignError,
    SettingsScope,
    SigningSettings,
    UnifiedSigner
};

pub use omnisette::AnisetteConfiguration;

Utility types

CertificateIdentity
struct
Represents a code signing certificate with private key and metadata
MachO
struct
Parser and manipulator for Mach-O executable files
MobileProvision
struct
Parser for Apple provisioning profiles (.mobileprovision files)

Error type

All operations return Result<T, plume_core::Error> where the error type is defined as:
pub enum Error {
    BundleExecutableMissing,
    ProvisioningEntitlementsUnknown,
    CertificatePemMissing,
    Certificate(String),
    DeveloperApi {
        url: String,
        result_code: i64,
        http_code: Option<u16>,
        message: String,
    },
    DeveloperSessionRequestFailed,
    AuthSrpWithMessage(i64, String),
    ExtraStep(String),
    Bad2faCode,
    Parse,
    Io(std::io::Error),
    Plist(plist::Error),
    Codesign(AppleCodesignError),
    // ... and more
}

HTTP client

pub fn client() -> Result<reqwest::Client, Error>
Creates a configured HTTP client with Apple’s root certificate for secure communication with Apple services.
use plume_core::client;

let http_client = client()?;

Next steps

Authentication

Learn about Apple ID authentication

Developer API

Manage apps and provisioning profiles

Build docs developers (and LLMs) love