Integrate Classic sign-in recovery and SDK 26 UI compatibility - #1786
Open
ahmed-raza-shaikh wants to merge 2 commits into
Open
Integrate Classic sign-in recovery and SDK 26 UI compatibility#1786ahmed-raza-shaikh wants to merge 2 commits into
ahmed-raza-shaikh wants to merge 2 commits into
Conversation
ahmed-raza-shaikh
marked this pull request as ready for review
September 9, 2026 04:07
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.
Summary
This draft integrates a tested recovery for the recent Classic Apple ID sign-in/refresh failures reported in #1782 and #1776, where an HTML response from GrandSlam surfaces as
NSCocoaErrorDomain 3840. It updates the shared AltSign dependency for both AltServer and the iPhone app, and opts the existing Classic interface into Apple's UI compatibility mode when built with the iOS 26 SDK. The reporter has confirmed the resulting recovery build opens, signs in, installs apps, and refreshes apps on the tested iPhone.Dependency: AltSign #53. This is a draft until maintainers decide how to integrate the AltSign work and validate the current Classic release build. The submodule URL remains the upstream
rileytestut/AltSignURL; the proposed gitlink is530e44aee968da15f8efe8d8eef829f3944ee318. If the dependency is rebased or squash-merged, the gitlink must be updated before merging this PR.Background
Scope and attribution
The target is
classic, not the default Marketplace branch. The contribution does not claim to have discovered the outage or to fix every error that appears during Apple ID authentication.It builds on:
The contribution adds an explicit exchange deadline, preserved structured Apple responses, body-free error reporting, reproducible tests, and an end-to-end recovery record. It is intended to complement or consolidate the existing proposals; it should not obscure their authorship.
What failed
The visible authentication error included:
The decisive response metadata from a failed installation was:
The parser error was a consequence of trying to parse an HTML error page as a property list. It was not evidence that the user had mistyped a password. A later 503 occurred even after using a separate session per request, so session isolation alone was insufficient on this setup.
The initial connection-reuse behavior was also reproduced by a credential-free local HTTP/1.1 fixture: two valid responses on one connection, then HTML 503. The old production method failed on exchange three; the isolated version used three connections and completed all exchanges. This validates the client-side mechanism without asserting a fixed global request limit or undocumented details of Apple's backend.
Why both applications must change
The phone asks AltServer for anisette data, then invokes
ALTAppleAPI.authenticateitself. AltServer returns that data; it does not perform the phone's SRP exchanges on the phone's behalf. Consequently:This is why the PR uses the shared AltSign gitlink rather than a Mac-only transport workaround.
Changes
1. Shared authentication dependency
The linked AltSign contribution changes only the GsService2 transport and its User-Agent:
SRP cryptography, request parameters, anisette generation, two-factor code submission, and developer-portal operations are preserved. The 20-second limit is an operational choice for review, not a documented anisette lifetime.
2. Classic UI compatibility
The local rebuild used the iOS 26.5 SDK. After signing was corrected, the app reached permission prompts but aborted during UIKit safe-area/layout updates. Two reports agreed on a
swift_abortRetainUnowned/swift_unknownObjectUnownedLoadStrongstack inside UIKitCore, followed by UIView layout frames.Adding
UIDesignRequiresCompatibility = YESwas the final isolated configuration change before the reporter confirmed the app worked. It restores the older UI mode for the existing Classic interface rather than attempting an unrelated UI redesign in this authentication recovery.Apple documents the key here. An Apple frameworks engineer clarifies that Xcode 26-built apps honor it on iOS 26 and 27. It is ignored when building with the iOS 27 SDK. This is therefore a temporary compatibility measure, not a permanent replacement for UI migration.
The exact UIKit ownership defect was not fully symbolicated or proven. The evidence supports the observed mitigation on the tested build; it does not establish that all startup crashes have this cause. This commit can be split out if maintainers prefer to review UI compatibility separately.
Investigation history: what worked and what did not
The recovery began from an older local checkout, so several additional failures were specific to that build path. They are documented here to prevent them being confused with the outage or copied into current source unnecessarily.
-80009errors have that cause.The AOSKit and ldid changes already exist in current upstream history and are not re-applied here. Relevant provenance includes the AOSKit implementation, AltSign's ldid update, and Apple's full hash-agility validation.
Testing
Executed checks
git diff --checkand staged-file security checksThe portable suite is included in the AltSign dependency:
It uses local HTTP fixtures and minimal Swift model/error shims around extracted production methods. It is not a live SRP test, does not validate every Apple error type's implementation, and does not contact Apple.
Reporter-confirmed device result
On September 8, 2026, the reporter explicitly confirmed: “Opens, signs in, and installs/refreshes apps.”
Tested setup:
6538a9d6.This is a successful end-to-end report on one setup, not a claim of validation across all affected users, Windows, macOS 27, all Apple account types, or long-term unattended refreshes. The individual User-Agent effect was not isolated from the final transport changes in the live account test.
Current integration-branch build limit
The code is proposed against current
classic(ad16c74c), not by publishing the modified historical checkout. A clean current-branch build was attempted, but package resolution stopped because the pinned IDevice package expectsDependencies/idevice/swift/IDevice.xcframework, which was absent from the initialized source checkout. That build did not pass, and no substitute binary was fabricated. The current branch needs its normal generated IDevice artifact before maintainers can complete an integration release build.The source changes have passing transport coverage and prior recovery-build/device evidence, but that does not substitute for a full current-branch release validation. This is one reason to keep the PR as a draft.
Additional Notes
How to integrate and validate
The local recovery did not require publishing or distributing a user's signing identity. No account passwords, tokens, certificates, provisioning profiles, UDIDs, raw crash reports, local installers, or IPA binaries are attached to this PR. Source and reproducible tests are provided; binary attachments can be considered separately if maintainers request them.
Review notes