mirror of
https://github.com/RevenueCat/purchases-ios
synced 2026-11-09 22:35:56 +05:45
* ci: conditionally bump SDK deployment targets for Xcode 27 SDK Add [sdk=*27*] conditional deployment-target overrides to RevenueCat.xcodeproj so Carthage from-source builds compile at the Xcode-27-required floors (iOS 15 / macOS 12 / tvOS 15 / watchOS 8) while older Xcode keeps building at iOS 13. Lets integrators get the right floor automatically based on their Xcode. Co-authored-by: Cursor <cursoragent@cursor.com> * ci: bump watchOS Xcode 27 SDK override to 9.0 Xcode 27 requires a watchOS deployment target of at least 9.0 (and drops the deprecated armv7k arch at that floor), so raise the [sdk=watch*27*] conditional override from 8.0 to 9.0. Co-authored-by: Cursor <cursoragent@cursor.com> * ci: add Carthage installation test job on Xcode 27 Add installation-tests-carthage-xcode-27 and extract the shared steps into a reusable run-carthage-installation-tests command. Declare conditional [sdk=*27*] deployment targets on the Carthage consumer app to match the SDK project so the from-source build works on Xcode 27. Co-authored-by: Cursor <cursoragent@cursor.com> * ci: unify Carthage installation tests into a parameterized job Replace the duplicated installation-tests-carthage and installation-tests-carthage-xcode-27 jobs (and the shared command) with a single parameterized job invoked twice via a `name` override, and teach the on-demand generator to emit the parameterized invocation for the Xcode 27 variant. Co-authored-by: Cursor <cursoragent@cursor.com> * ci: don't require Xcode 27 Carthage job for releases Xcode 27 is still beta, so the installation-tests-carthage-xcode-27 job still runs on release branches but no longer blocks the all-tests-succeeded gate. Co-authored-by: Cursor <cursoragent@cursor.com> * ci: run automatic Carthage installation tests on Xcode 26 Xcode 26 still builds RevenueCat.xcodeproj at its declared deployment targets (its SDK floors are iOS 12 / macOS 10.13 / tvOS 12 / watchOS 4 / visionOS 1), so the from-source build needs no overrides there. Move the automatic installation-tests-carthage job from Xcode 16 to Xcode 26, which is a current App-Store-valid toolchain. The Xcode-27-only floor bump (iOS 15 / macOS 12 / tvOS 15 / watchOS 9) remains covered by the [sdk=*27*] overrides, and the installation-tests-carthage-xcode-27 variant stays available as a manual-only on-demand job instead of running automatically in CI. Co-authored-by: Cursor <cursoragent@cursor.com> * ci: run Carthage installation tests on iOS 26 simulator fastlane scan was defaulting to the pre-installed iOS 18.6 simulator, whose networking hangs under Xcode 26.5's CoreSimulator, causing testCanFetchCustomerInfo to deterministically time out. Pin the device to iPhone 17 to force an iOS 26.x runtime. Co-authored-by: Cursor <cursoragent@cursor.com> * ci: only pin Carthage test simulator on Xcode 26 Scope the iPhone 17 device override to Xcode 26 (whose CI image otherwise defaults scan to a stale iOS 18 simulator with broken networking); newer Xcodes already auto-select a matching runtime. Co-authored-by: Cursor <cursoragent@cursor.com> * feat: support Xcode 27 in Tuist-generated projects Add SDK-conditional [sdk=*27*] deployment-target overrides to Tuist manifests so the generated workspace builds on Xcode 27 (which enforces iOS 15 / tvOS 15 / watchOS 9 / macOS 12 minimums) while leaving the base deployment targets untouched for every other SDK. No environment flag, mirroring the RevenueCat.xcodeproj mechanism. Co-authored-by: Cursor <cursoragent@cursor.com> * feat: cover remaining sub-floor Tuist projects for Xcode 27 Apply the Xcode 27 SDK-conditional deployment-target overrides to the remaining workspace projects with sub-floor minimums: APITesters, BinarySizeTest, PurchaseTester and XCFrameworkInstallationTests. Co-authored-by: Cursor <cursoragent@cursor.com> * refactor: drop version from Xcode deployment-target override naming Rename addingXcode27DeploymentTargetOverrides to addingXcodeDeploymentTargetOverrides (and related identifiers/file) so the helper can accumulate future Xcode SDK floors without renaming. Co-authored-by: Cursor <cursoragent@cursor.com> * refactor: derive dependency lists from a single source in Package.swift Write the wrapped test dependency names once and derive both productTypes and the deployment-target targetSettings from it, instead of repeating the list in two places. Co-authored-by: Cursor <cursoragent@cursor.com> * docs: clarify productType grouping and trim override doc comment Co-authored-by: Cursor <cursoragent@cursor.com> * fix: scope iOS deployment floor to macOS SDK for Mac Catalyst Mac Catalyst builds against the macOS SDK but derive their minimum from the iOS deployment target (ignoring MACOSX_DEPLOYMENT_TARGET), so the Xcode 27 iOS floor must also be scoped to [sdk=macosx27*] for the Catalyst build validation. Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Cursor <cursoragent@cursor.com>