ci(ios): build and test with Xcode 27

The iPhone Duo layout uses UIHingeInteraction, which only exists in
the iOS 27.1 SDK. CI ran Xcode 16.4 (iOS 18.5 SDK) on macos-15, so the
app build failed: #available is a runtime check and cannot hide a
symbol the SDK lacks. ChatView's iOS 26/27 modifiers would have failed
next.

Both jobs now run on the xcode-27 runner image (Xcode 27.1 by default),
the toolchain releases are built with. The READMEs state Xcode 27.1 as
the minimum.

Swift 6.4 also timed out type-checking a long `+` chain in
MultipartEncoderTests, so `swift test` failed to build; the expected
body is now joined from an array.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
weishu
2026-10-28 19:25:18 +08:00
co-authored by Claude Opus 5.5
parent e733dffe10
commit 4b7a1cff90
4 changed files with 20 additions and 17 deletions
+3 -2
View File
@@ -19,8 +19,9 @@ concurrency:
cancel-in-progress: true
jobs:
# Xcode 27.1+ is required: the app uses iOS 27.1 SDK APIs (e.g. UIHingeInteraction).
package-tests:
runs-on: macos-15
runs-on: xcode-27
steps:
- uses: actions/checkout@v4
- name: Show toolchain versions
@@ -31,7 +32,7 @@ jobs:
run: swift test --package-path ios/Packages/HapiKit
app-build:
runs-on: macos-15
runs-on: xcode-27
steps:
- uses: actions/checkout@v4
- name: Show toolchain versions