Repository navigation
ci(react-native-plugin): build CocoaPods lanes on Xcode 26 - #5226
Conversation
…s Surveys trait The plugin disables native surveys (React Native surveys are rendered in JS), so its Swift package depends on posthog-ios with only the SessionReplay and CrashReporting traits. The manifest moves to tools 6.2, which posthog-ios 4.0 requires anyway and which package traits need. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
dustinbyrne
left a comment
There was a problem hiding this comment.
Looks good—the trait selection preserves native replay and crash reporting while leaving surveys to JS. One non-blocking CocoaPods CI toolchain coverage note below. The posthog-ios 4.0 publication prerequisite is already documented.
AI-assisted review.
| # Used by both the SPM and CocoaPods resolution paths below; bump this | ||
| # line when picking up a new posthog-ios release. | ||
| posthog_ios_version = '3.88.2' | ||
| posthog_ios_version = '4.0.0' |
There was a problem hiding this comment.
[P2] Align CocoaPods CI with the newly announced toolchain
This dependency bump introduces an announced Xcode 26 requirement, but the iOS and macOS CocoaPods CI lanes still select Xcode 16.2.0.
The new changeset and proposed upstream requirement specify Xcode 26+. However, the unchanged native workflow uses macos-14-xlarge with latest-stable for both CocoaPods lanes. Existing head-associated iOS and macOS logs explicitly report:
Xcode is set to 16.2.0 (16C5032a)
These lanes covered the old dependency, but publication of v4 alone will not make them cover the newly announced CocoaPods toolchain. This affects assurance for ordinary iOS/macOS CocoaPods consumers of @posthog/react-native-plugin.
Impact limit: This is a supported-toolchain coverage mismatch, not a demonstrated consumer compilation failure. CocoaPods does not enforce the SwiftPM tools-version requirement, and the current jobs fail earlier because v4 is unpublished.
Consider moving both CocoaPods lanes to runners providing Xcode 26+ and explicitly selecting/verifying that toolchain.
Verification sketch — not executed: Add a selected-toolchain assertion before the existing CocoaPods build steps:
version="$(xcodebuild -version | awk '/^Xcode / {print $2}')"
test "${version%%.*}" -ge 26The current logged selection implies failure with 16.2; a supported selection should pass. After v4 publication, retain normal dependency resolution and iOS/macOS compilation/linkage without local overrides. An application regression test is not appropriate for this CI configuration finding.
There was a problem hiding this comment.
Fixed in f7d7dfa — both CocoaPods lanes now run on macos-26 with an xcodebuild -version assertion (≥ 26) before the build. The RN 0.79.6 example already builds via CocoaPods on Xcode 26.4.1 locally, so the runner move shouldn't break the build itself; the lanes still fail at pod install until posthog-ios 4.0 is published.
posthog-ios 4.0 isn't released yet; this PR keeps only the Xcode 26 CI lanes.
📝 No Changeset FoundThis PR doesn't include a changeset. A changeset is required to release a new version. How to add a changesetRun this command and follow the prompts: pnpm changesetRemember: Never use |
Problem
The plugin's iOS and macOS CocoaPods CI lanes still run on
macos-14-xlargewith Xcode 16.2. Apps can't ship with that: App Store uploads need Xcode 26 since April 2026, and posthog-ios 4.0 (#5237) requires it too. Moving the lanes now tests the toolchain users actually build with, and they're ready when the 4.0 pin lands.The posthog-ios 4.0 pin and the
Surveystrait change moved to #5237, which waits for posthog-ios 4.0 to be released.Changes
macos-26.Release info Sub-libraries affected
Libraries affected
Checklist
If releasing new changes
pnpm changesetto generate a changeset file (not needed: CI only)🤖 Agent context
Autonomy: Human-driven (agent-assisted)
Made with Claude Code. This PR first also bumped the pin to posthog-ios 4.0. Since 4.0 isn't released, those builds could only fail, so that part moved to #5237 and this PR keeps the CI change that can pass and merge now. The RN 0.79.6 example already builds via CocoaPods on Xcode 26.4.1 locally.
🤖 Generated with Claude Code