Skip to content

Update some CI jobs to Xcode 26.5#6555

Merged
ajpallares merged 18 commits into
mainfrom
pallares/update-ci-to-xcode-26.4
Jun 5, 2026
Merged

Update some CI jobs to Xcode 26.5#6555
ajpallares merged 18 commits into
mainfrom
pallares/update-ci-to-xcode-26.4

Conversation

@ajpallares

@ajpallares ajpallares commented Apr 6, 2026

Copy link
Copy Markdown
Member

Summary

Update most Xcode 26.3 CI jobs to use Xcode 26.5 and iOS 26.5 simulators.

Also fixes FallbackComponentTests assertions for the new DecodingError.debugDescription format introduced by SE-0489 in Swift 6.3.

Swift interface files need to be regenerated for Xcode 26.5.

Important

run-test-ios-26 was not updated to Xcode 26.5 due to FB22500243 (Xcode 26.3+ breaks this job).


Note

Low Risk
Changes are CI versions, brittle test string matching for DecodingError, and a regenerated binary interface—not SDK purchase or paywall runtime logic.

Overview
Bumps most CircleCI macOS jobs from Xcode 26.3 to 26.5 and simulator runs from iOS 26.2 to 26.5 (AdMob, RevenueCatUI/snapshots, Maestro E2E, Purchase Tester / RCT deploys, swiftinterface anchor). run-test-ios-26 stays on 26.3 because of Apple feedback FB22500243.

FallbackComponentTests now accepts either legacy or Swift 6.3 (SE-0489) DecodingError debugDescription strings so paywall fallback decoding tests pass on the new toolchain.

revenuecat-api-ios-simulator.swiftinterface is regenerated for Swift 6.3.2 (fewer #if compiler … $NonescapableTypes wrappers in the public surface).

Reviewed by Cursor Bugbot for commit a7c73b8. Bugbot is set up for automated code reviews on this repo. Configure here.

@ajpallares ajpallares requested a review from a team as a code owner April 6, 2026 07:31
@ajpallares

Copy link
Copy Markdown
Member Author

@RCGitBot please test

RCGitBot and others added 2 commits April 6, 2026 10:10
# Conflicts:
#	api/revenuecat-api-ios-simulator.swiftinterface
#	api/revenuecat-api-ios.swiftinterface
#	api/revenuecat-api-macos.swiftinterface
#	api/revenuecat-api-tvos-simulator.swiftinterface
#	api/revenuecat-api-tvos.swiftinterface
#	api/revenuecat-api-visionos-simulator.swiftinterface
#	api/revenuecat-api-visionos.swiftinterface
#	api/revenuecat-api-watchos-simulator.swiftinterface
#	api/revenuecat-api-watchos.swiftinterface
@ajpallares ajpallares requested a review from a team as a code owner April 13, 2026 11:12
@JZDesign

Copy link
Copy Markdown
Contributor

My one question is: Was the removal of all those # if checks right?

@ajpallares

ajpallares commented Apr 13, 2026

Copy link
Copy Markdown
Member Author

My one question is: Was the removal of all those # if checks right?

@JZDesign This was completely generated by Xcode 26.4, so if we migrate the CI to use Xcode 26.4, we'll need those removed for api checks to pass.

As to why these are being removed in Xcode 26.4, I can't be sure. The Nonescapable Types proposal was experimental until this PR promoted it to a LANGUAGE_FEATURE, released with Swift 6.2.

My guess is that this is Xcode 26.4 catching up to that, as the #if check is now redundant

@ajpallares

Copy link
Copy Markdown
Member Author

Turns out that there's a known issue in iOS 26.3 and 26.4 that prevents SKTestSession from working as expected.

The reason we haven't encountered this issue before is because Xcode 26.3 bundled the iOS 26.2 simulator, where this issue is not happening.

So, for the time being, we shouldn't be updating the CI to Xcode 26.4. I've tested locally Xcode 26.5 Beta 1 and SKTestSession still fails for iOS 26.3 and 26.4, while it works correctly with iOS 26.2.

Will convert this PR back to draft because it contains other changes that will be needed to start using Xcode 26.5 (e.g. swift interface files or 398635d)

@ajpallares ajpallares marked this pull request as draft April 13, 2026 15:17
…-xcode-26.4

Made-with: Cursor

# Conflicts:
#	.circleci/config.yml
#	api/revenuecat-api-ios-simulator.swiftinterface
#	api/revenuecat-api-ios.swiftinterface
#	api/revenuecat-api-macos.swiftinterface
#	api/revenuecat-api-tvos-simulator.swiftinterface
#	api/revenuecat-api-tvos.swiftinterface
#	api/revenuecat-api-visionos-simulator.swiftinterface
#	api/revenuecat-api-visionos.swiftinterface
#	api/revenuecat-api-watchos-simulator.swiftinterface
#	api/revenuecat-api-watchos.swiftinterface
Made-with: Cursor
@ajpallares ajpallares changed the title Update CI to Xcode 26.4 Update CI to Xcode 26.4.1 Apr 27, 2026
@ajpallares ajpallares force-pushed the pallares/update-ci-to-xcode-26.4 branch 2 times, most recently from a3575c2 to 0303865 Compare April 27, 2026 09:51
xcodebuild destinations require the three-component version (26.4.1)
while fastlane scan uses the two-component runtime version (26.4).

Made-with: Cursor
@ajpallares ajpallares force-pushed the pallares/update-ci-to-xcode-26.4 branch from 0303865 to 770f91c Compare April 27, 2026 10:02
@ajpallares

Copy link
Copy Markdown
Member Author

Turns out that there's a known issue in iOS 26.3 and 26.4 that prevents SKTestSession from working as expected.

The reason we haven't encountered this issue before is because Xcode 26.3 bundled the iOS 26.2 simulator, where this issue is not happening.

So, for the time being, we shouldn't be updating the CI to Xcode 26.4. I've tested locally Xcode 26.5 Beta 1 and SKTestSession still fails for iOS 26.3 and 26.4, while it works correctly with iOS 26.2.

Will convert this PR back to draft because it contains other changes that will be needed to start using Xcode 26.5 (e.g. swift interface files or 398635d)

I just tried with Xcode 26.4.1 and the issue still persists...

…-xcode-26.4

Made-with: Cursor

# Conflicts:
#	api/revenuecat-api-ios-simulator.swiftinterface
#	api/revenuecat-api-ios.swiftinterface
#	api/revenuecat-api-macos.swiftinterface
#	api/revenuecat-api-tvos-simulator.swiftinterface
#	api/revenuecat-api-tvos.swiftinterface
#	api/revenuecat-api-visionos-simulator.swiftinterface
#	api/revenuecat-api-visionos.swiftinterface
#	api/revenuecat-api-watchos-simulator.swiftinterface
#	api/revenuecat-api-watchos.swiftinterface
@ajpallares

ajpallares commented Apr 29, 2026

Copy link
Copy Markdown
Member Author

Turns out that there's a known issue in iOS 26.3 and 26.4 that prevents SKTestSession from working as expected.

The reason we haven't encountered this issue before is because Xcode 26.3 bundled the iOS 26.2 simulator, where this issue is not happening.

So, for the time being, we shouldn't be updating the CI to Xcode 26.4. I've tested locally Xcode 26.5 Beta 1 and SKTestSession still fails for iOS 26.3 and 26.4, while it works correctly with iOS 26.2.

Will convert this PR back to draft because it contains other changes that will be needed to start using Xcode 26.5 (e.g. swift interface files or 398635d)

Still happening with Xcode 26.5 Beta 3 (which uses iOS 26.5 Beta 4) 😞

@ajpallares ajpallares changed the title Update CI to Xcode 26.4.1 Update CI to Xcode 26.5 May 11, 2026
ajpallares and others added 2 commits June 3, 2026 10:10
# Conflicts:
#	api/revenuecat-api-ios-simulator.swiftinterface
#	api/revenuecat-api-ios.swiftinterface
#	api/revenuecat-api-macos.swiftinterface
#	api/revenuecat-api-tvos-simulator.swiftinterface
#	api/revenuecat-api-tvos.swiftinterface
#	api/revenuecat-api-visionos-simulator.swiftinterface
#	api/revenuecat-api-visionos.swiftinterface
#	api/revenuecat-api-watchos-simulator.swiftinterface
#	api/revenuecat-api-watchos.swiftinterface
Co-authored-by: Cursor <cursoragent@cursor.com>
@ajpallares ajpallares changed the title Update CI to Xcode 26.5 Update some CI jobs to Xcode 26.5 Jun 3, 2026
@ajpallares ajpallares marked this pull request as ready for review June 3, 2026 11:27
@ajpallares ajpallares requested review from a team and rickvdl June 3, 2026 11:27
# Conflicts:
#	api/revenuecat-api-ios-simulator.swiftinterface
#	api/revenuecat-api-ios.swiftinterface
#	api/revenuecat-api-macos.swiftinterface
#	api/revenuecat-api-tvos-simulator.swiftinterface
#	api/revenuecat-api-tvos.swiftinterface
#	api/revenuecat-api-visionos-simulator.swiftinterface
#	api/revenuecat-api-visionos.swiftinterface
#	api/revenuecat-api-watchos-simulator.swiftinterface
#	api/revenuecat-api-watchos.swiftinterface

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 0596b50. Configure here.

Comment thread .circleci/default_config.yml
@ajpallares ajpallares enabled auto-merge (squash) June 5, 2026 12:02
@ajpallares ajpallares merged commit 405146a into main Jun 5, 2026
18 of 20 checks passed
@ajpallares ajpallares deleted the pallares/update-ci-to-xcode-26.4 branch June 5, 2026 12:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants