chore: pin geofence native SDK versions and example test wiring#609
chore: pin geofence native SDK versions and example test wiring#609mrehan27 wants to merge 2 commits into
Conversation
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.
|
a3ee796 to
e83e720
Compare
iOS 4.7.0, Android 4.20.0. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2cb7b96 to
7d93b96
Compare
Point the example at pre-release native builds so geofence can be tested before the native SDKs are released, and publish this PR's sample builds to the feature-branch Firebase channel so subscribed peers can use them. Revert this commit once the native SDKs 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 to 4.6.0 (the branch version) so pods resolve until 4.7.0 is released. - CI: distribute this PR branch's sample builds to the feature-branch group. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
7d93b96 to
be8acc3
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit be8acc3. Configure here.
| # cioSDKVersionAndroid=local | ||
| # TEMP: geofence is not yet released; point at the feature-branch snapshot so the | ||
| # example can be built and tested. Revert once the native SDKs ship. | ||
| cioSDKVersionAndroid=feature-geofence-on-device-SNAPSHOT |
There was a problem hiding this comment.
Android snapshot property not applied
High Severity
The example app sets cioSDKVersionAndroid to the geofence snapshot, but the React Native Android module resolves the native SDK via getExtOrDefault('cioSDKVersionAndroid'), which only reads rootProject.ext.cioSDKVersionAndroid or customerio.reactnative.cioSDKVersionAndroid. The snapshot line is ignored, so Gradle keeps resolving 4.20.0 from the library defaults even though that artifact is not released yet.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit be8acc3. Configure here.


Summary
Wires the geofence feature to the native SDK versions that will ship it, and makes the example app buildable/testable against the pre-release native builds — including publishing this PR's sample builds to the
feature-branchdistribution channel so subscribed peers can test geofence before release.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.20.0package.json:cioNativeiOSSdkVersion→= 4.7.0These versions aren't published yet, which is why Commit 2 exists.
Commit 2 — temporary test/CI scaffolding, reverted when native goes live. It only touches the example app, the iOS version pin, and one CI line:
example/android/build.gradle: snapshot Maven repo →central.sonatype.com/repository/maven-snapshotsexample/android/gradle.properties: example usescioSDKVersionAndroid=feature-geofence-on-device-SNAPSHOTexample/ios/Podfile: load the geofence-aware CocoaPods override from the feature branch, build the app target against the customerio-iosfeature/geofence-on-devicebranch, and add an explicitCustomerIO/LocationGeofencegit pod (the umbrella subspec isn't on the released trunk spec yet)package.json: temporarily pinscioNativeiOSSdkVersionto= 4.6.0(the feature branch's current podspec version, now that iOS 4.6.0 has shipped) so CocoaPods can resolve — deliberately undoes Commit 1's iOS bump for testing only.github/workflows/build-sample-app.yml: publish this PR branch's sample builds to thefeature-branchFirebase channel (see below)Reverting Commit 2 restores Commit 1's production state exactly (
package.json→= 4.7.0, no example/CI scaffolding).Note for reviewers
Commit 2 is temporary test-only scaffolding — the downgraded iOS pin, the
-SNAPSHOTAndroid version, the snapshot repo, the git-branch pods, and the feature-channel CI line are all intentional and get reverted before this reachesmain. Please don't flag them as defects.Feature builds for peers 📱
Native geofence is still pre-release, so the released SDKs can't build the example and the normal
feature/*sample builds fail. This PR's CI builds against the pre-release native and pushes the sample apps to thefeature-branchFirebase channel — that's where peers subscribed to feature builds should get geofence test builds until native ships.Merge plan
This PR stays open while native geofence is pre-release — it's the source of feature-channel builds. When native iOS 4.7.0 / Android 4.20.0 are released, Commit 2 is reverted entirely and only Commit 1 is merged into
feature/geofence-on-device— Commit 2 never lands on the feature branch.Requires (native)
4.20.04.7.0Ticket
MBL-1785 — React Native: add geofencing support
PR stack
allowBackgroundDeliveryconfig🤖 Generated with Claude Code
Note
Low Risk
Changes are version pins plus example-app and CI test scaffolding; library consumers only see the Android SDK bump in
gradle.properties, with no auth or data-path changes.Overview
Pins the React Native wrapper to Android native
4.20.0(android/gradle.properties) ahead of the geofence release, and adds temporary scaffolding so the example app and CI can build against pre-release native geofence.The example app now resolves Android from Sonatype snapshots (
feature-geofence-on-device-SNAPSHOT) and iOS from thefeature/geofence-on-devicebranch (override script, non-production install helper, and an explicitCustomerIO/LocationGeofencegit pod).package.jsontemporarily setscioNativeiOSSdkVersionto= 4.6.0so CocoaPods can resolve while testing (intended to revert to the shipping iOS pin when native releases).Sample-app CI also publishes builds from PR head
mbl-1785-geofence-finalto thefeature-branchFirebase distribution group so peers can test before iOS 4.7.0 / Android 4.20.0 ship. Comments mark this wiring as revertible once native SDKs are live.Reviewed by Cursor Bugbot for commit be8acc3. Bugbot is set up for automated code reviews on this repo. Configure here.