π¨ feat(icon): ship the Icon Composer source so iOS 26 gets the glass icon - #48
Merged
Conversation
β¦icon The icon was authored in Icon Composer, but only its exported PNGs made it into the project β so the app shipped flat renderings and none of the layered Liquid Glass treatment iOS 26 draws from the source. Add `AppIcon.icon` (foreground glyph + light/dark backgrounds). It has to carry the same name as `AppIcon.appiconset`, which is what lets the asset compiler pair the two: the icon stack serves iOS 26, the catalog serves our iOS 18.4 minimum. `--enable-icon-stack-fallback-generation=disabled` stops it from also auto-generating a fallback from the stack and shadowing that catalog. Also drop three PNGs the catalog never referenced β Icon Composer exports six appearances and `.appiconset` only has three slots, which is what the "AppIcon has 3 unassigned children" build warning was pointing at. The tinted slot keeps the greyscale artwork it already had; iOS applies the user's tint to it. Verified in the built bundle: Assets.car now carries AppIcon.iconstack with its three layer groups alongside the Any/Dark/Tintable 1024 renditions, and the build is warning-free. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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.
The app icon was authored in Icon Composer, but only its exported PNGs ever made it into the project β so we shipped flat renderings and none of the layered Liquid Glass treatment iOS 26 draws from the source. The
.iconfile itself was sitting outside the repo, in aDownloads/Corbeille/folder, one cleanup away from being lost.Changes
AppIcon.iconadded β foreground glyph plus light and dark backgrounds. It is deliberately named to matchAppIcon.appiconset: that pairing is what lets the asset compiler serve the icon stack to iOS 26 and the catalog to our iOS 18.4 minimum.Two build settings on the app target, both configurations:
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YESβ embed both setsASSETCATALOG_OTHER_FLAGS = --enable-icon-stack-fallback-generation=disabledβ stop Xcode from generating its own fallback from the stack, which would shadow the catalogAppIcon.appiconsetkept as the iOS 18 fallback, minus three PNGs it never referenced. Icon Composer exports six appearances and.appiconsethas three slots; those orphans were what theAppIcon has 3 unassigned childrenwarning pointed at. The tinted slot keeps its greyscale artwork β iOS applies the user's tint to it, so a pre-tinted export would be wrong there.Verification
Clean build succeeds with no icon warning.
Assets.carin the built bundle carries both paths:Worth knowing
Resource presence was verified in the binary; the glass rendering itself has not been eyeballed on an iOS 26 simulator. This approach also has a history of App Store validation rejections on earlier Xcode 26 betas β the method used here is the one reported as resolved and approved, but the next TestFlight upload is its real test.
git revertrestores the previous icon setup if it fails.π€ Generated with Claude Code