-
Notifications
You must be signed in to change notification settings - Fork 63
Fix the Settings bundle on iOS 18+ #200
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
WalkthroughThe iOS settings bundle configuration file was updated to fix resolution settings visibility on iOS 18. The "Screen Settings" group specifier was removed, the resolution specifier was renamed to "Screen Resolution", and an empty text field entry was deleted. Changes
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 minutes
Poem
Pre-merge checks and finishing touches✅ Passed checks (5 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (1)
app/iEinstein/Settings.bundle/Root.plist (1)
11-18: Title rename may affect localization becauseStringsTableis set toRootWith
<key>StringsTable</key><string>Root</string>, eachTitleis used as a lookup key inRoot.strings. Renaming"Resolution"→"Screen Resolution"is fine functionally, but it can break existing translations unlessRoot.stringsentries are updated to match the new key.If you rely on localized titles, please confirm the corresponding entry exists (or update/create it) so this specifier doesn’t silently fall back to the literal English string.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
app/iEinstein/Settings.bundle/Root.plist(1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: Codacy Static Code Analysis
🔇 Additional comments (1)
app/iEinstein/Settings.bundle/Root.plist (1)
55-74: EmptyPSTextFieldSpecifierremoval aligns with iOS 18 behavior; consider scanning for any remaining empty keysThe removal of the empty
PSTextFieldSpecifierunder/around the “Paper Size” section is the right fix to prevent the Settings bundle from failing to load on iOS 18+, where emptyKeyvalues are no longer tolerated.To ensure there are no other latent issues across the Settings bundle, you might want to scan all plist files in
Settings.bundlefor<key>Key</key>followed by an empty<string>:#!/bin/bash # From repo root: scan Settings bundle for specifiers with an empty Key fd 'Settings\.bundle' -t d -x rg -nP '<key>Key</key>\s*<string>\s*</string>' {}This should return no matches after your changes.
It seems that in iOS 18, empty
Keyvalues forPSTextFieldSpecifierwill cause the Settings bundle not to load, instead of being ignored. I don't know if this is documented anywhere or if Apple simply made parsing more strict in iOS 18.Either way, this fixes #191 and restores the Settings bundle for the iOS app:
Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.