Skip to content
xcross
Documentation menu

Authentication

Sign in to Apple Developer Services with an Apple ID or an App Store Connect API key.

xcross auth saves the credentials xcross uses to talk to Apple’s Developer Services - certificates, device registration, and provisioning profiles. Pick one of two methods.

Apple ID

xcross auth --apple-id you@example.com

A free Apple account works; you do not need a paid Apple Developer Program membership. If you omit --apple-id, xcross prompts for it interactively.

FlagPurpose
--apple-id <email>Apple ID to sign in with. Prompted if omitted.
--password <password>Apple ID password. Prompted (hidden) if omitted.
--adi-library-dir <path>Directory containing libCoreADI.so and libstoreservicescore.so. Defaults to the adi-libs directory next to xcross’s config file. Apple ID login only.

The command prompts for your password and a 2FA code, performs the login handshake locally, and stores only the resulting Developer Services session - never your password. If the account has more than one active Developer Services team, xcross lists them and asks which one to use.

ADI machine attestation

Apple’s login flow requires machine attestation data (“anisette”), which xcross produces using the Android libCoreADI.so and libstoreservicescore.so libraries:

  • Windows x64 / Linux x86_64 - the matching libraries are downloaded automatically from the Apple Music APK into %APPDATA%\xcross\adi-libs (Windows) or ~/.config/xcross/adi-libs (Linux) the first time you sign in.
  • Other architectures - extract the matching APK slice yourself and point xcross at it with --adi-library-dir <path>.

App Store Connect API key

xcross auth --issuer-id <uuid> --key-id <id> --private-key /path/to/AuthKey.p8
FlagWhere it comes from
--issuer-id <uuid>The “Issuer ID” shown at the top of the Keys page in App Store Connect (one per team).
--key-id <id>The key’s “Key ID”, shown next to it on the same page.
--private-key <path>Path to the AuthKey_<keyId>.p8 file you downloaded when creating the key.

Provide all three flags together; xcross treats them as an alternative to Apple ID login, not a supplement to it.

Choosing a method

Both methods authorize the same Developer Services access.

Apple IDApp Store Connect API key
Account typeFree Apple account worksRequires an App Store Connect key
Interactive promptsPassword + 2FA codeNone once the key file exists
Good forLocal developmentCI and scripted setups

You cannot pass Apple ID flags and API key flags in the same xcross auth call, and --adi-library-dir is rejected alongside the API key flags.

Saving a new API key clears any previously saved Apple ID session, so the key is what xcross uses afterwards. The other direction is not symmetric: signing in with an Apple ID leaves a saved API key on disk, and a valid Apple ID session always wins over it. API keys are only consulted when there is no saved Apple ID session at all.

NoteSecurity: xcross auth never stores your Apple ID password. For Apple ID login it persists only the resulting Developer Services session token; for API keys it stores the issuer ID, key ID, and the path to your .p8 file.

Next steps

ESC