Conversation
51d0a0f to
fcfdf56
Compare
Sample app builds 📱Below you will find the list of the latest versions of the sample apps. |
a49e9cd to
b875a76
Compare
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #1019 +/- ##
==========================================
- Coverage 68.86% 68.60% -0.27%
==========================================
Files 189 211 +22
Lines 10169 10944 +775
==========================================
+ Hits 7003 7508 +505
- Misses 3166 3436 +270 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
SDK binary size reports 📊SDK binary size of this PRSDK binary size diff report vs. main branch |
b875a76 to
f3950aa
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 2 potential issues.
Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.
| commonLogger.moduleInitStart(module.moduleName) | ||
| module.initialize() | ||
| commonLogger.moduleInitSuccess(module.moduleName) | ||
| } |
There was a problem hiding this comment.
Module init success logged even when initialization fails
Low Severity
moduleInitSuccess is logged unconditionally after calling module.initialize(), but LocationModule.initialize() silently returns without initializing when called off the main thread (it only logs an error). This produces a misleading "init success" log message when the module actually failed to initialize, making debugging harder.


Location enrichment feature, those are collection of approved PRs
Note
Medium Risk
Touches SDK initialization and DataPipeline identify/track flow by adding module initialization hooks and context enrichment, which could affect event payloads and startup behavior. Also adds new persisted location handling and sample app permissions/UI, increasing integration surface area.
Overview
Introduces a new optional
CioLocationmodule, including a publicCustomerIO.locationAPI, configurable tracking modes, persisted last-known location, and a guardrailed sync flow (24h + 1km) that tracks location updates only when a user is identified.Extends the core SDK to support pluggable modules via
SDKConfigBuilder.addModule(_:)and initializes them duringCustomerIO.initialize(withConfig:); adds a profile-enrichment system (registry + Identify plugin) so modules can inject primitive attributes into identify context and reset per-profile state.Updates distribution and samples to ship and exercise the new module: adds
CustomerIOLocationCocoaPod +CustomerIOsubspec and a SwiftPMLocationproduct/target/tests, wires the module into sample app initialization, adds a new Location Test screen and required location usage description, and updates CI/workflows and the Makefile to include the new pod/module.Written by Cursor Bugbot for commit f6ad0cf. This will update automatically on new commits. Configure here.