Repository navigation
ci: keep the CocoaPods iOS build from blocking merges and releases - #155
Merged
Merged
Conversation
CocoaPods trunk is going read-only. Its announced plan is a test run that refuses every push from 1 to 7 November 2026, then a permanent switch on 2 December 2026; the post says the dates may move: https://blog.cocoapods.org/CocoaPods-Specs-Repo/ The plugin's podspec takes its mParticle-Apple-SDK floor from Package.swift. Once that floor names a version that never reached trunk, pod install in the CocoaPods iOS job fails. That job is a required check and the pub.dev release needs it, so it would block both merges and releases. The CocoaPods setup and build steps now continue on error, and a warning step names the failure. The example's flutter test step in the same job stays a hard check, and the single-copy check still runs whenever the CocoaPods build succeeds. The Swift Package Manager job is unchanged and keeps gating the change.
thomson-t
marked this pull request as ready for review
October 29, 2026 19:50
There was a problem hiding this comment.
Besides the inline finding, I checked the new step conditions. They correctly use outcome, not conclusion: with continue-on-error, outcome is still failure while conclusion becomes success. A skipped build step's outcome is skipped, so the linked-once check and the warning step each run only in the case they're meant for. The new comment, warning and summary text contain nothing internal or partner-identifying.
Extended reasoning...
I checked the step-condition semantics (outcome versus conclusion, and the skipped-step case) and the new text for internal or partner details, and found no further problems beyond the inline finding.
The previous commit let the whole CocoaPods build fail softly. For Flutter 3.10 to 3.40 that build is the only one that compiles the plugin's iOS sources, because the Swift Package Manager job needs Flutter 3.41 or later and removes the podspec. A compile error there must still fail the job. Split resolution from the build. Only "Resolve CocoaPods dependencies" (flutter build ios --config-only, which runs pod install) continues on error. The xcodebuild step and the single-copy check run whenever pods resolve and fail the job as before. "Switch example to CocoaPods" is local setup and fails the job again.
nickolas-dimitrakas
approved these changes
Oct 29, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Pull requests and releases of the Flutter plugin can soon be blocked for a reason unrelated to the change being made. CocoaPods, the older iOS package manager, is going read-only: its central repository plans to refuse uploads from 1 to 7 November 2026 as a test and permanently from 2 December 2026, dates the announcement says may move. The plugin's CocoaPods fallback takes its minimum iOS SDK version from the Swift Package Manager manifest, so once that minimum names a version that never reached CocoaPods, the CocoaPods build of the example app fails, and today that build blocks both merging and publishing to pub.dev. Once this lands, a CocoaPods dependency that cannot be resolved shows as a warning instead of failing the job. Compile errors in the CocoaPods build still fail it.
Programme
Standalone change, no programme.
What changes
pod installfails: the old build step is now two steps. A new step, "Resolve CocoaPods dependencies", runsflutter build ios --config-only, which is wherepod installhappens. When it fails, a warning step reports it, the CocoaPods build is skipped, and the job stays green.xcodebuildof the example app runs as a separate step and still fails the job on a compile error.flutter teststep still fail the job.Start reading at the "Resolve CocoaPods dependencies" step in
build-ios.yml.Linked work
None.
Rollout
Risks
flutter pub getandflutter build ios --config-only, including itspod install, so a podspec that does not resolve also only produces a warning.Risk class: low.
Who
Size
Hand-written: 18 lines added and 3 removed, in 1 file.
Generated: none.