Skip to content

ci: build the example app for iOS Simulator on PRs - #72

Merged
mikemilla merged 1 commit into
mainfrom
ci/ios-simulator-build
Oct 1, 2026
Merged

mikemilla merged 1 commit into
mainfrom
ci/ios-simulator-build

Conversation

@mikemilla

Copy link
Copy Markdown
Collaborator

Why

No CI job compiled the Swift bridge in ios/. The Courier_iOS 5.8.6 → 5.9.0 bump (#68) went green, but courierDevice ?? CourierDevice() in putUserToken stopped compiling, because 5.9.0 made the zero-arg CourierDevice() init @MainActor. The fix had to be made by hand.

What

  • New build-ios job (macos-15, Xcode 16.4, the same toolchain as courier-ios CI). It runs bundle exec pod update Courier_iOS in example-085/ios, checks that the resolved Courier_iOS matches the courier-react-native.podspec pin, then builds the example with xcodebuild -destination 'generic/platform=iOS Simulator' CODE_SIGNING_ALLOWED=NO.
    • Uses pod update Courier_iOS rather than pod install because bump PRs (bump-courier-ios-*) change the podspec without touching Podfile.lock.
    • Build-only: no secrets and no signing. A Debug simulator build skips JS bundling, so Env.tsx isn't needed.
    • Caches the CocoaPods download and spec caches. node_modules use the existing setup action's cache.
    • concurrency cancels superseded runs to save macOS minutes.
  • Example Podfile: removed pod 'Courier_iOS', :git => …, :tag => '5.8.3'. It overrode the podspec pin, so the example never built against the version the library ships with. Refreshed Podfile.lock (now 5.8.6 from trunk).

Testing

  • I couldn't run the RN build locally because the disk is too full. This PR's build-ios run is the first real check.
  • I ran the same steps locally in the Flutter sibling PR. With the unfixed 5.9.0 bump, the build fails with call to main actor-isolated initializer … in a synchronous nonisolated context, which is the error this job is meant to catch.

🤖 Generated with Claude Code

Nothing in CI compiled the Swift bridge in ios/, so the Courier_iOS 5.9.0
bump (#68) went green while putUserToken no longer compiled. The new
build-ios job runs on macos-15, resolves Courier_iOS from the podspec pin,
and builds example-085 for the iOS Simulator with signing disabled.

The example Podfile also pinned Courier_iOS to git tag 5.8.3, which
overrode the podspec pin; drop it so the build uses the pinned version.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@mikemilla
mikemilla force-pushed the ci/ios-simulator-build branch from 2d3047f to fdec988 Compare October 1, 2026 19:25
@mikemilla
mikemilla merged commit af379c7 into main Oct 1, 2026
4 checks passed
@mikemilla
mikemilla deleted the ci/ios-simulator-build branch October 1, 2026 22:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant