Fix iOS 26 deprecations in SignUpDemo + bulk copyright update#6
Merged
Conversation
iOS 26 deprecations fixed in the example app: * `@main` on `UIApplicationDelegate` — `AppDelegate` now only routes scene-config requests; the actual `UIWindow` setup moved into a new `SceneDelegate`. * `UIWindow.init(frame:)` — `SceneDelegate.scene(_:willConnectTo:options:)` builds the window via `UIWindow(windowScene:)`. * `UIScreen.main` — gone with the move to scene-based setup. * `UIRequiresFullScreen` — dropped (deprecated in iOS 26.0). `project.yml` adds a single-scene `UIApplicationSceneManifest` pointing at the new `SceneDelegate`. Result: example app builds with zero deprecation warnings on iOS 26. Bulk copyright update across 84 source/test/markdown files: `Open Zesame` → `Alexander Cyon (github.com/sajjon)`. The `LICENSE` file's mention of Open Zesame stays — it's the historical attribution about Zhip's origin, which is factually correct. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
`project.yml` now sets `info.path: Generated.plist`, which makes XcodeGen emit a fresh Info.plist next to the .xcodeproj on every `just example-gen` run. Match the existing `.xcodeproj` rule and gitignore the generated plist too. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #6 +/- ##
=======================================
Coverage 87.77% 87.77%
=======================================
Files 30 30
Lines 1562 1562
=======================================
Hits 1371 1371
Misses 191 191 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
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
The example app surfaced three iOS 26 deprecation warnings in Xcode 17:
'UIRequiresFullScreen' has been deprecated starting in iOS 26.0…'init(frame:)' was deprecated in iOS 26.0: Use init(windowScene:) instead.'main' was deprecated in iOS 26.0: Use a UIScreen instance found through context instead.All three traced to the pre-iOS-13-style
@main-on-AppDelegateshortcut the example used. Migrated to scene-based lifecycle:What changed
SceneDelegate.swift— owns theUIWindowsetup. Builds the window viaUIWindow(windowScene:)(the modern initialiser); noUIScreen.mainaccess; noinit(frame:).AppDelegate.swiftshrunk to a single method (application(_:configurationForConnecting:options:)) that points the system at the scene config registered inInfo.plist. No more direct window setup, no more direct coordinator wiring.project.yml— drops the deprecatedINFOPLIST_KEY_UIRequiresFullScreen: "YES"and adds an inlineUIApplicationSceneManifestpointing at the newSceneDelegate.info.path: Generated.plistlets XcodeGen merge the manifest into the auto-generated plist; the resultingGenerated.plistis gitignored alongside the existing.xcodeprojignore.Bulk copyright update
Open Zesame→Alexander Cyon (github.com/sajjon)across 84 source / test / markdown files. TheLICENSEfile's mention of Open Zesame stays — it's the historical attribution about the code's origin in the Zhip wallet, which is factually correct.Test plan
just example-gen && just example-build—Build Succeeded, zero deprecation warningsjust test— all 75 tests passswiftformat --lint+swiftlint --strict(via pre-commit + pre-push hooks) — cleanjust example-runon iPhone 17 / iOS 26.1 simulator — confirm the demo still launches and the SignUp → Home flow still works end-to-end🤖 Generated with Claude Code