Skip to content

Add Xcode 27 Preview to CI & Update tvOS Tests - #973

Open
w-goog wants to merge 15 commits into
masterfrom
chore/ci-xcode-27-preview-job
Open

Add Xcode 27 Preview to CI & Update tvOS Tests#973
w-goog wants to merge 15 commits into
masterfrom
chore/ci-xcode-27-preview-job

Conversation

@w-goog

@w-goog w-goog commented Aug 12, 2026

Copy link
Copy Markdown
Collaborator

This PR adds a non-blocking Xcode 27 job to the CI, to ensure that future changes don't break on that version.

w-goog added 15 commits August 12, 2026 10:35
The raised deployment targets (iOS 15, macOS 12, tvOS 15, watchOS 9) put
+archivedDataWithRootObject: and +unarchiveObjectWithData: past their
deprecation points on macOS and tvOS, and the project builds with -Werror.

The @available(iOS 12.0, macOS 10.13, tvOS 11.0, watchOS 4.0) guards in the
NSSecureCoding tests are now always true, so the legacy fallback branches they
guarded are dead code; remove the guards and the branches. The AppAuthTV tests
called the legacy APIs unconditionally, so convert those call sites to
+archivedDataWithRootObject:requiringSecureCoding:error: and
+unarchivedObjectOfClass:fromData:error:.
CI pins Xcode 16.4 on macos-15, so it cannot see Xcode 27 breakage at all --
which is why the deployment-target floors went unnoticed until a release
testing session.

Xcode 27 is available on the preview 'xcode-27' runner image, where Xcode 27
beta is the only (and default) Xcode and the simulator runtimes are the 27.0
generation. Add a job that runs the existing six-scheme matrix there. The
image is preview, so the job is continue-on-error and cannot gate a merge; no
existing job is touched.
The xcode-27 preview image ships no simulator called plain "Apple TV" --
its only tvOS 27.0 devices are "Apple TV 4K (3rd generation)" and the
1080p variant -- so all three tvOS entries in the Xcode 27 job failed to
resolve a destination. Name the 4K device.

The xcode-project-test job keeps name=Apple TV: that device does exist on
macos-15, where it runs.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant