Overview
The Radar iOS SDK follows semantic versioning. Major version updates may contain breaking changes, while minor and patch versions are backward compatible.Before upgrading, review the full MIGRATION.md file in the SDK repository for the most up-to-date migration information.
Latest Migrations
3.20.x to 3.21.x
Breaking Changes
Country Code Parameter Added ThesearchPlaces() method now requires an additional countryCodes parameter to filter search results by country.
Before (3.20.x)
After (3.21.x)
Update method calls
Add the
countryCodes parameter to all searchPlaces() calls. Use nil if you don’t want to filter by country.3.12.x to 3.13.x
Breaking Changes
Verified Tracking Return Type Changed ThetrackVerified() method now returns a RadarVerifiedLocationToken object that includes the JWT token, user data, events, and verification results. The separate trackVerifiedToken() method has been removed.
Before (3.12.x)
After (3.13.x)
Update completion handler parameters
Change
trackVerified() completion handlers to accept RadarVerifiedLocationToken instead of separate parameters.Update verification logic
Use
token?.passed property instead of checking individual fraud/country/state flags.Remove trackVerifiedToken() calls
Replace
trackVerifiedToken() with trackVerified() since it now returns the JWT token directly.3.11.x to 3.12.x
Breaking Changes
RadarDelegate Method Added A new required method has been added to theRadarDelegate protocol.
3.9.x to 3.10.x
Breaking Changes
Search Geofences Method Updated ThesearchGeofences() methods have been updated with new parameters for better control over results.
Before (3.9.x)
After (3.10.x)
3.8.x to 3.9.x
Breaking Changes
Autocomplete Method Parameter Changed TheexpandUnits parameter has been deprecated and replaced with mailable.
Before (3.8.x)
After (3.9.x)
Major Version Migrations
3.6.x to 3.7.x - Custom Events to Conversions
Breaking Changes
1. Method RenamingBefore (3.6.x)
After (3.7.x)
- Old:
(status, location, events, user) - New:
(status, event)
Before (3.6.x)
After (3.7.x)
Replace sendEvent() calls
Find all
Radar.sendEvent() calls and replace them with Radar.logConversion().Update completion handlers
Change completion handlers to accept
(RadarStatus, RadarEvent?) instead of (RadarStatus, CLLocation?, [RadarEvent]?, RadarUser?).3.1.x to 3.2.x - XCFramework and Naming Changes
Breaking Changes
1. Distribution Format The SDK is now distributed as.xcframework instead of .framework. This provides better support for different architectures.
2. Tracking Options Preset Naming
Before (3.1.x)
After (3.2.x)
Before (3.1.x)
After (3.2.x)
Before (3.1.x)
After (3.2.x)
3.0.x to 3.1.x - Trip and Beacon Updates
Breaking Changes
1. Track Once with BeaconsBefore (3.0.x)
After (3.1.x)
Before (3.0.x)
After (3.1.x)
2.1.x to 3.0.x - Major Tracking Overhaul
Breaking Changes
1. Start Tracking Requires OptionsBefore (2.1.x)
After (3.0.x)
Use
didUpdateClientLocation() for all location updates, or didUpdateLocation() for only server-synced updates with user state.Before (2.1.x)
After (3.0.x)
Before (2.1.x)
After (3.0.x)
Before (2.1.x)
After (3.0.x)
Choose tracking preset
Determine which preset matches your use case:
- presetContinuous: ~30 second updates, highest battery usage
- presetResponsive: ~2.5 minute updates when moving, shuts down when stopped (closest to v2 default)
- presetEfficient: Only updates on visits, lowest battery usage
Implement required delegate method
Add
didUpdateClientLocation() to your RadarDelegate implementation.Enable ad ID if needed
Call
Radar.setAdIdEnabled(true) after initialization if you need ad ID collection.Older Version Migrations
2.0.x to 2.1.x
This update introducedstartTrackingWithOptions: for advanced tracking configuration.
View details
View details
No breaking changes in this version. The new
startTrackingWithOptions: method provides additional configuration options while maintaining backward compatibility.1.3.x to 2.0.x
View details
View details
Breaking Changes:
- Location authorization helper methods removed
- Use
CLLocationManagerdirectly for permissions RadarStatusErrorUserIdandRadarStatusErrorPlacesremovedsetTrackingPriority:method removed
Before (1.3.x)
After (2.0.x)
1.2.x to 1.3.x
View details
View details
Breaking Changes:
userIdonRadarUseris now nullablereidentifyUserWithOldUserId:method removed
Before (1.2.x)
After (1.3.x)
Testing Your Migration
After migrating to a new version, test these critical paths:Location tracking
Location tracking
- Start and stop tracking
- Verify tracking presets work as expected
- Check that location updates are received
- Confirm battery usage is acceptable
Delegate callbacks
Delegate callbacks
- Test all delegate methods are called
- Verify events are received correctly
- Check error handling
- Confirm log messages appear
Trip tracking
Trip tracking
- Start, update, complete, and cancel trips
- Verify trip events are generated
- Check ETA calculations
- Test multi-destination trips if used
Location verification
Location verification
- Test verified tracking if enabled
- Verify token generation
- Check fraud detection results
- Confirm SSL pinning is working
Getting Help
If you encounter issues during migration:Documentation
Review the complete SDK documentation
Support
Contact Radar support at [email protected]
GitHub Issues
Report bugs or request features
Changelog
View detailed release notes