Repository navigation
Add terminal Apple authentication and Xcode downloads for Linux - #358
Merged
Merged
Conversation
hyzyla
marked this pull request as ready for review
November 13, 2026 00:19
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Linux users can sign in from a terminal, download an exact Xcode release, and configure the SDK without first downloading the archive on a Mac:
sweetpad auth login --apple-id EMAIL sweetpad sdk download --xcode VERSION sweetpad setup --xcode VERSION sweetpad auth logoutPasswords and two-factor codes use hidden TTY input. The implementation follows XcodesLoginKit's SRP, hashcash, session-validation, and two-factor protocol using Python's standard library. The Swift reference cannot build directly on Linux because it unconditionally imports CommonCrypto and Apple's
osmodule; Linux compiler probes confirmed both missing modules.Sessions use private versioned JSON files.
--session-fileandSWEETPAD_APPLE_SESSION_FILEsupport non-interactive CI without password storage. Downloads use Apple's current catalog and authorization endpoint, handle gzip responses, validate resume ranges and entity validators, and verify cached archives against their local SHA-256 receipts.setup --sdkremains available. Documentation covers login, CI, cache permissions, and unsupported authentication methods.Validation:
Native ARM64 and x64 package CI passes, including clean-install checks for the embedded authentication/download helpers and non-interactive missing-session errors. Both native package binaries completed
setup --xcodeagainst the existing validated SDK/toolchain caches and built the packaged Mach-O ARM64 iPhone sample withiphoneos27.3/ Xcode build27C5020n. Both original SDK environment files were preserved; x64 doctor reports zero problems. A fresh SDK extraction was not repeated.All local validation and all 17 hosted checks pass. Xcode 26 hot reload passed after one isolated fresh-runner retry of the existing 120-second
simctl installtimeout.