Copy Xcode 13’s ist CFBundleVersion to Xcode 12.5’s ist. This means we could fool Launch Services into thinking Xcode 12.5 is fine, piggybacking the fact that Xcode 13 was validated. Apparently Launch Services work with the CFBundleIdentifier + CFBundleVersion pair. Thankfully, it’s possible to fool the Launch Services daemon into accepting the bundle. See issues #14037 and #14174 for the dirty details. This tool exists because bazel can work with multiple Xcode versions on a given system without relying on xcode-select. Now, it’s possible to launch the binary directly via Xcode-12.5.1.app/Contents/MacOS/Xcode, but this stopgap solution unfortunately doesn’t work with tools that rely on macOS’ Launch Services to figure out Xcode installations on the system, such as bazel’s xcode_locator, which relies on LSCopyApplicationURLsForBundleIdentifier. This is a rather sobering realisation if for some reason you’re still stuck with Xcode 12.5 (for instance you can’t or don’t want to update your app’s SDK). So macOS Monterey shipped with a rather annoying peculiarity: it can only run Xcode ≥13.0.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |