Skip to content

chore: pin geofence native SDK versions and example test wiring#609

Open
mrehan27 wants to merge 2 commits into
feature/geofence-on-devicefrom
mbl-1785-geofence-final
Open

chore: pin geofence native SDK versions and example test wiring#609
mrehan27 wants to merge 2 commits into
feature/geofence-on-devicefrom
mbl-1785-geofence-final

Conversation

@mrehan27

@mrehan27 mrehan27 commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

Summary

Wires the geofence feature up to the native SDK versions that will ship it, and makes the example app buildable/testable against the pre-release native builds in the meantime.

Targets feature/geofence-on-device, not main. Nothing is being released here. This keeps the geofence integration green and testable on the feature branch until the native SDKs are published.

⚠️ Read this first — two commits, one is temporary

This PR is intentionally two commits that must not be squashed:

Commit 1 — the real change we keep. Pins the native SDK versions that will contain geofence:

  • android/gradle.properties: cioSDKVersionAndroid 4.18.2 → 4.19.0
  • package.json: cioNativeiOSSdkVersion = 4.5.3 → = 4.6.0

These versions aren't published yet, which is why Commit 2 exists.

Commit 2 — temporary scaffolding so CI and reviewers can build/test the example against pre-release native code. It only touches the example app + the iOS version pin:

  • example/android/build.gradle: snapshot Maven repo s01.oss.sonatype.orgcentral.sonatype.com/repository/maven-snapshots (where the feature builds are published)
  • example/android/gradle.properties: example uses cioSDKVersionAndroid=feature-geofence-on-device-SNAPSHOT
  • example/ios/Podfile: load the geofence-aware CocoaPods override from the feature branch, build the app target against the customerio-ios feature/geofence-on-device branch, and add an explicit CustomerIO/LocationGeofence git pod (the umbrella subspec isn't on the released trunk spec yet)
  • package.json: temporarily pins cioNativeiOSSdkVersion back to = 4.5.3 (the feature branch's podspec version) so CocoaPods can resolve — this deliberately undoes Commit 1's iOS bump for testing only

Reverting Commit 2 restores Commit 1's production state exactly (package.json returns to = 4.6.0).

Note for reviewers

Commit 2 is temporary test-only scaffolding and is reverted before this PR is merged. Please don't flag its changes as defects — they never reach the feature branch.

Verified locally

  • Android: example builds against the feature-branch snapshot (debug APK produced).
  • iOS: example app target builds against the feature branch (geofence pods resolve and compile).

Merge plan

Commit 2 exists only so CI can build and anyone can test the CI builds while this PR is open. Before this PR is merged, Commit 2 is reverted, so only Commit 1 lands on feature/geofence-on-device — Commit 2 never reaches the feature branch.

Ticket

MBL-1785 — React Native: add geofencing support

PR stack

  1. chore: add geofence module base #605 — geofence module base
  2. chore: register geofence module and treat geofence as implying location #606 — register geofence module + geofence implies Location
  3. chore: add iOS allowBackgroundDelivery config for geofence #607 — iOS allowBackgroundDelivery config
  4. chore: enable geofence in the example app #608 — enable geofence in the example app
  5. 👉 This PR — native SDK version pins + temporary feature-build wiring

🤖 Generated with Claude Code


Note

Low Risk
Changes are build/version pins and example-only temporary dependency overrides; no runtime library logic or auth/data paths are modified, and temp wiring is not meant to merge.

Overview
Bumps the library’s default Android native SDK pin in android/gradle.properties from 4.18.2 → 4.19.0 so the React Native package targets the release that will ship geofencing.

Adds temporary example-app scaffolding so CI and local builds can run against pre-release native geofence builds: Android points the example at feature-geofence-on-device-SNAPSHOT and switches the snapshot Maven repo to Sonatype Central snapshots; iOS loads the geofence CocoaPods override from feature/geofence-on-device, installs the non-production iOS SDK from that branch, and adds an explicit CustomerIO/LocationGeofence git pod until the umbrella subspec is on the released spec.

Per the PR plan, the example/Podfile snapshot wiring is reverted before merge; only the version pin change is intended to land on the feature branch long term.

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

mrehan27 and others added 2 commits June 30, 2026 02:56
iOS 4.6.0, Android 4.19.0.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Point the example at pre-release native builds so geofence can be tested
before the native SDKs are released. Revert this commit once they ship.

- Android: example uses the feature-branch snapshot + the central snapshot repo.
- iOS: load the geofence-aware CocoaPods override from the feature branch,
  build against the customerio-ios feature branch, and pin the native iOS SDK
  back to 4.5.3 (the branch version) so pods resolve until 4.6.0 is released.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@mrehan27 mrehan27 requested a review from a team as a code owner June 30, 2026 21:54
@mrehan27 mrehan27 self-assigned this Jun 30, 2026
@github-actions

github-actions Bot commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

Sample app builds 📱

Below you will find the list of the latest versions of the sample apps. It's recommended to always download the latest builds of the sample apps to accurately test the pull request.


  • iOS FCM: 609.2.0 (29714274)
  • iOS APN: 609.2.0 (29714274)
  • iOS APN: 609.2.0 (29715024)
  • Android APN: 609.2.0 (29715024)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant