Skip to content

Commit 8ccc265

Browse files
authored
fix: resolve issues with macOS-15 runners (#2607)
* Update iOS support packages to use new-style Xcode runner. * Explicitly set the Xcode version for macOS runners. * Correct a download URL. * Minor tweak to re-trigger CI.
1 parent c0c1dea commit 8ccc265

File tree

3 files changed

+13
-10
lines changed

3 files changed

+13
-10
lines changed

.github/workflows/test.yml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ jobs:
7676
- os: macos-15-intel
7777
python_version: '3.13'
7878
test_select: ios
79-
- os: macos-14 # See https://github.com/actions/runner-images/issues/12777
79+
- os: macos-15
8080
python_version: '3.13'
8181
test_select: ios
8282
- os: macos-15-intel
@@ -110,6 +110,12 @@ jobs:
110110
if: runner.os == 'Linux'
111111
uses: docker/setup-qemu-action@v3
112112

113+
- name: Set up Xcode
114+
if: ${{ startsWith(matrix.os, 'macos-15') }}
115+
run: |
116+
# GitHub recommends explicitly selecting the desired Xcode version
117+
sudo xcode-select --switch /Applications/Xcode_16.4.app
118+
113119
- name: Install dependencies
114120
run: |
115121
uv sync --no-dev --group test

cibuildwheel/resources/build-platforms.toml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -239,10 +239,10 @@ python_configurations = [
239239

240240
[ios]
241241
python_configurations = [
242-
{ identifier = "cp313-ios_arm64_iphoneos", version = "3.13", url = "https://github.com/beeware/Python-Apple-support/releases/download/3.13-b10/Python-3.13-iOS-support.b10.tar.gz" },
243-
{ identifier = "cp313-ios_x86_64_iphonesimulator", version = "3.13", url = "https://github.com/beeware/Python-Apple-support/releases/download/3.13-b10/Python-3.13-iOS-support.b10.tar.gz" },
244-
{ identifier = "cp313-ios_arm64_iphonesimulator", version = "3.13", url = "https://github.com/beeware/Python-Apple-support/releases/download/3.13-b10/Python-3.13-iOS-support.b10.tar.gz" },
245-
{ identifier = "cp314-ios_arm64_iphoneos", version = "3.14", url = "https://github.com/beeware/Python-Apple-support/releases/download/3.14-b6/Python-3.14-iOS-support.b6.tar.gz" },
246-
{ identifier = "cp314-ios_x86_64_iphonesimulator", version = "3.14", url = "https://github.com/beeware/Python-Apple-support/releases/download/3.14-b6/Python-3.14-iOS-support.b6.tar.gz" },
247-
{ identifier = "cp314-ios_arm64_iphonesimulator", version = "3.14", url = "https://github.com/beeware/Python-Apple-support/releases/download/3.14-b6/Python-3.14-iOS-support.b6.tar.gz" },
242+
{ identifier = "cp313-ios_arm64_iphoneos", version = "3.13", url = "https://github.com/beeware/Python-Apple-support/releases/download/3.13-b11/Python-3.13-iOS-support.b11.tar.gz" },
243+
{ identifier = "cp313-ios_x86_64_iphonesimulator", version = "3.13", url = "https://github.com/beeware/Python-Apple-support/releases/download/3.13-b11/Python-3.13-iOS-support.b11.tar.gz" },
244+
{ identifier = "cp313-ios_arm64_iphonesimulator", version = "3.13", url = "https://github.com/beeware/Python-Apple-support/releases/download/3.13-b11/Python-3.13-iOS-support.b11.tar.gz" },
245+
{ identifier = "cp314-ios_arm64_iphoneos", version = "3.14", url = "https://github.com/beeware/Python-Apple-support/releases/download/3.14-b7/Python-3.14-iOS-support.b7.tar.gz" },
246+
{ identifier = "cp314-ios_x86_64_iphonesimulator", version = "3.14", url = "https://github.com/beeware/Python-Apple-support/releases/download/3.14-b7/Python-3.14-iOS-support.b7.tar.gz" },
247+
{ identifier = "cp314-ios_arm64_iphonesimulator", version = "3.14", url = "https://github.com/beeware/Python-Apple-support/releases/download/3.14-b7/Python-3.14-iOS-support.b7.tar.gz" },
248248
]

docs/platforms.md

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -262,9 +262,6 @@ You must be building on a macOS machine, with Xcode installed. The Xcode install
262262

263263
Building iOS wheels also requires a working macOS Python installation. See the notes on [macOS builds](#macos) for details about configuration of the macOS environment.
264264

265-
!!! note
266-
If you are running cibuildwheel on GitHub Actions or Azure runners, you should avoid the `macos-15` and `macos-latest` images. The [20250811 image update](https://github.com/actions/runner-images/releases/tag/macos-15-arm64%2F20250811.2170) made some [significant changes](https://github.com/actions/runner-images/issues/12541) that are [incompatible with CPython's iOS test runner](https://github.com/actions/runner-images/issues/12777). At this time, Microsoft's advice is to use the `macos-14` image instead.
267-
268265
### Specifying an iOS build
269266

270267
iOS is effectively 2 platforms - physical devices, and simulators. While the API for these two platforms are identical, the ABI is not compatible, even when dealing with a device and simulator with the same CPU architecture. For this reason, the architecture specification for iOS builds includes *both* the CPU architecture *and* the ABI that is being targeted. There are three possible values for architecture on iOS; the values match those used by `sys.implementation._multiarch` when running on iOS (with hyphens replaced with underscores, matching wheel filename normalization):

0 commit comments

Comments
 (0)