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
Represents a code signing certificate with private key and metadata
Parser and manipulator for Mach-O executable files
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
}
Show Common error variants
Error returned by Apple’s Developer API with HTTP status code and error message
Authentication error with error code and descriptive message
Additional authentication step required (e.g., two-factor authentication)
The provided two-factor authentication code was invalid
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