Subscribe to these release notes.
We will update this changelog with each new release of the Places SDK for iOS. The changelog will list releases by date and will include any new features, bug fixes or significant performance improvements.
For a guide to downloading the API and building your first app, see the getting-started guide.
Version 3.7.0 - December 2, 2019
- Autocomplete Predictions (GMSAutocompletePrediction.h) now return the
straight-line distance in meters from the optionally specified location
originproperty in the Autocomplete Filter (GMSAutocompleteFilter.h). Call
GMSAutocompletePredictioninstance to get this value. If the
originproperty is not set, no distance value will be returned.
Version 3.6.0 - October 29, 2019
- Added local caching for
loadPlacePhoto:callbacksuch that calling the method twice in a row returns the same
Version 3.5.0 - October 08, 2019
- <GooglePlaces/GooglePlaces.h> no longer transitively includes classes from GoogleMapsBase.h, so if you use the GMSCoordinateBounds class in your code, you must now #import <GoogleMapsBase/GoogleMapsBase.h> as well.
Version 3.4.0 - September 04, 2019
- Version bump, no changes. This version is functionally identical to v.3.3.0.
Version 3.3.0 - July 29, 2019
- Added a new field
GMSPlace, to represent the UTC offset in minutes for the timezone of the place.
- Added a new method
GMSPlace, to query whether the place is currently open.
- Added a new method
GMSPlace, to query whether the place is open at the specified date.
- Programmatic autocomplete now trims blank space from query text, as with the Autocomplete widget.
- Fixed an occasional scrolling glitch in the autocomplete results view (this would occur when the device orientation changed).
Version 3.2.0 - July 8, 2019
findAutocompletePredictionsFromQueryAPI now accepts a nil value for the
GMSAutocompleteSessionToken parameter, if the user does not want to be billed by session.
- Autocomplete widget no longer returns "no results" for leading whitespaces.
- Smaller binary sizes.
Version 3.1.0 - April 16, 2019
- Now returns an array of types associated with each address component.
- Deprecates the older singular type in favor of the new array of types.
Improved Error Handling
- Common error messages are now returned from the server back to clients.
- Fixed inaccurate references of Places API in public facing code.
Version 3.0.2 - January 31, 2019
- The GooglePlaces sample has been fixed.
Version 3.0.0 - January 29, 2019
- Added support for using fields to enable specifying the types of place data to return.
- The Place object can now return the total number of reviews for each place.
- The Place object now returns business opening hours.
- Added support for Plus codes. Plus codes are short codes that provide an address for every location in the world, even in areas where traditional street addresses don't exist.
- Place autocomplete now supports session-based billing.
- The Place Picker is deprecated as of January 29, 2019. This feature will be turned off on July 29, 2019, and will no longer be available after that date.
openNowStatusproperty is no longer supported, and should not be used.
Place Picker Old Style Removed - November 1, 2018
- Removed support for the old basemap style for the Place Picker. The opt-in and opt-out API options (see below) are no longer supported. This applies to all versions of the Places SDK for iOS. See the blog post for more information about the new style.
Place Picker New Style Default - June 28, 2018
Enabled the new basemap style for the Place Picker by default. You can still opt-out temporarily if you need time to modify your app to accommodate the new style. If you do, please follow Issue 72853629 which contains the timeline for end of support of the previous basemap style. We will be posting updates there as they are available.
To opt-out, use the code snippet below. The best place to do this in your app is right after providing your API key, via
GMSServices provideAPIKey. You must be using at least Version 2.6.0 in order to opt-out. If you had previously opted-in to the new basemap style, this should replace the code you added to opt-in. See the blog post for more information about the new style.
NSArray *options = @[@"B3H9HE845CFHYG"]; BOOL didSetApiOptions = [GMSServices provideAPIOptions:options]; NSLog(@“Options were set: %d”, didSetApiOptions);
Version 2.7.0 - April 2018
- Support for Xcode 8.0 has been dropped. The new minimum is Xcode 9.0.
Place Picker New Style Opt-In - February 2018
Enabled opt-in to the new basemap style for the Place Picker. To opt-in, use the code snippet below. The best place to do this in your app is right after providing your API key, via
GMSServices provideAPIKey. You must be using at least Version 2.6.0 in order to opt-in. See the blog post for more information about the new style.
NSArray *options = @[@"B3MWHUG2MR0DQW"]; BOOL didSetApiOptions = [GMSServices provideAPIOptions:options]; NSLog(@“Options were set: %d”, didSetApiOptions);
Version 2.6.0 - February 2018
- Updated the Place Picker default marker to match the new Google Maps marker.
Version 2.5.0 - October 2017
- Added boundsMode to the Autocomplete APIs to enable bounds restriction. (Issue 38188941.)
- Improved iOS 11 & iPhone X support.
- Fixed UI layout issues in the Place Picker when used on iOS 11.
- Fixed an issue where Xcode 9's Main Thread Checker warns that [UIApplication applicationState] is being called on a background thread. (Issue 64469528.)
Version 2.4 - August 2, 2017
Version 2.3.1 - June 19, 2017
- Fixed an issue resulting in a crash when receiving photos for certain places. (Issue 36575500.)
Version 2.3 - May 30, 2017
- Expanded the number of scenarios where you can use the place picker with the addition of GMSPlacePickerViewController. The old GMSPlacePicker is now deprecated.
- Dropped support for iOS 7, which enabled the use of modern core data threading models. This means that applications should be able to use -com.apple.CoreData.ConcurrencyDebug 1 when debugging with iOS 10 devices.
Version 2.2 - February 14, 2017
- Fixes an issue where the Place Picker viewport was not being centered correctly (Issue 11206.)
- Fixes an issue where the Autocomplete error delegate method was not called in all conditions.
Version 2.1.1 - November 8, 2016
- Fixes an issue which caused rotation of the place picker to move the marker.
- Reduces the timeout on calls to
currentPlace(callback:)to match Android (Issue 10563.)
Version 2.1 - September 22, 2016
- Added workaround for the
userEmailtriggering false positives during submission to the Apple app store (Issue 10508.)
- Errors returned from lookUpPlaceID(_:callback:) now have the correct error domain and codes.
- Small fixes to RTL support in the place picker.
- Minor reliability improvements for the autocomplete widget and place picker.
Version 2.0.1 - July 29, 2016
- Array properties are now correctly typed when accessed from Swift. (Issue 10183.)
Version 2.0.0 - July 26, 2016
- This release splits the Places API from the Maps SDK. Previously, if you wanted to use the Places API you had to include all of GoogleMaps. As a result of the split, the final size of the Places API binary is 70% smaller than the previous combined binary. If you are using only the Maps SDK you will not be affected unless you have pinned your dependency on GoogleMaps to a version earlier than 2.0. In this case, you should update this restriction in your Podfile. If you are using the Places API, see Migrating to Places SDK for iOS 2.0.
- Places SDK demos are now available separately from Maps demo apps.
- The Places framework is now available as a download for manual installation. For details, see Get Started. (Issue 8856.)
- The Places API no longer requests permission to access the user's location on behalf of the app. This means that existing code which calls GMSPlacesClient.currentPlaceWithCallback(_:) must be updated to ensure that the location permission has been granted beforehand.
Version 1.13.2 - May 12, 2016
- Added a workaround to avoid the false positive for the non-public API imageWithName: selector. (Issue 9704.)
Version 1.13.1 - May 02, 2016
- Fixed an application hang when using a UIView with autolayout enabled as an info window or as a marker iconView. (Issue 9525.)
- Changed lookUpPlaceID to not call its callback twice in error scenarios. (Issue 9310.)
Version 1.13.0 - March 29, 2016
- Autocomplete widgets in the Places API now provide options for custom styling.
- UIView based markers. Marker content can now show advanced animations by providing a custom view hierarchy to be displayed through the iconView property. See the documentation for details. (Issue 5203.)
- Info windows can now have their custom views animated. Set tracksInfoWindowChanges on the associated marker to YES to enable real-time updates. (Issue 5559.)
- Map rendering now defaults to 60fps on modern iOS devices. Set the new preferredFrameRate property on GMSMapView to revert to the old behavior (Conservative) or a new low frame rate option to save battery (PowerSave). (Issue 5066.)
- Added mapViewSnapshotReady: to GMSMapViewDelegate which fires when map content, including markers and other overlays, has been fully rendered.
- GMSAutocompleteViewController now works when used in a storyboard.
- Added missing Place Type constants. (Issue 8121.)
- GMSCoordinateBounds initWithVisibleRegion: now chooses correct bounds for large viewports.
- Added a workaround to avoid a graphical glitch in snapshots taken using pre iOS 7 methods when the My Location button is disabled. (Issue 9173.)
Version 1.12.3 - February 2016
- Fixed corruption in included bitcode that caused Xcode archive action to fail. (Issue 9368.)
- Added a workaround for a limitation in Xcode 6.4 which was failing to compile the included headers.
Version 1.12.2 - February 2016
- Added place photos to the Places API. (Issue 8202.)
- Added structured address components to GMSPlace objects. (Issue 8121.)
- SDK method signatures have been updated with generics and nullability annotations.
- GMSPlace objects now contain rating and price level where available.
- Minor bugfixes for the autocomplete widget UI.
- panoramaView:didMoveCamera: is no longer raised during the panoramaView delegate setter. (Issue 5630.)
- Old unused logo files have been removed from the SDK. (Issue 9148.)
- Tap events on polygons near the anti-meridian are more reliable.
- Resolved an issue resulting in unrecognized selector crashes when calling class methods on categories. (Issue 9000.)
Version 1.12.1 - February 2016
This version is exactly the same as 1.11.1. It was released to replace the removed 1.12.0 release.
Version 1.12.0 - February 2016
This version was removed because of errors in the framework and should not be used.
Version 1.11.1 - December 2015
- Modally presented Place Autocomplete widgets now correctly respect UINavigationBar appearance proxy settings.
- Resolved minor UI issues with the Place Autocomplete widgets.
- Updated GoogleMaps.bundle info.plist to avoid triggering checks in pre-submission verification. (Issue 8488.)
Version 1.11.0 - December 2015
- Bitcode is now included in the SDK binary for all device architectures. (Issue 8219.)
- Added Place Autocomplete widget classes.
- New events for long press on an info window, and closing an info window, have been added to GMSMapViewDelegate.
- GMSMapViewDelegate has new events to indicate when map tiles and labels are pending and finished rendering. (Issue 5430.)
- GMSPanoramaViewDelegate has new events to indicate when panorama tiles are pending and finished rendering. (Issue 5430.)
- GMSGroundOverlay now supports an alpha multiplier via the opacity property.
- Added a holes property to GMSPolygon to allow for the subtraction away from the filled area in order to create more complex shapes. (Issue 5464.)
- At zoom levels greater than 14, the maximum tilt has been increased. (Issue 5169.)
- Added an autocomplete screen to the Place Picker.
- Split autocomplete predictions into primary and secondary text fields.
- Added a country filter option to GMSAutocompleteFilter.
- Added a viewport field to GMSPlace.
- Correct handling of taps on overlapping markers. (Issue 7587, Issue 8591.)
- Address a race condition dependent crash which can happen when an application enters and leaves the background while showing a map. (Issue 7011.)
- Fix blank maps which can happen when launching an app into the background. (Issue 8510.)
- Workaround issues with core animation that caused markers to jump. (Issue 8451.)
- Updated to avoid subtle conflicts with applications which use google-toolbox-for-mac.
- Use the iPhone language instead of the region formatting language for Places API results (Issue 8536.)
Notes - Setting GMSMapView selectedMarker to a marker not on the map is now ignored, always set the marker's map property before attempting to select it.
Version 1.10.5 - October 2015
- Worked around an issue in the Swift compiler's handling of umbrella header module entries. (Issue 8524.)
Version 1.10.4 - October 2015
- Fixed a crash on iOS 9 when dismissing the place picker without a selection. (Issue 8672.)
- Fixed a crash when using both a GMSMapView and a UIWebView or WKWebView in the view hierarchy at the same time. (Issue 8343.)
- Recompiled with Xcode 7 to avoid raising failed to load optimized model log messages on iOS 9 devices. (Issue 8459.)
Version 1.10.3 - September 21, 2015
- Google logos have been updated.
- Framework now ships with the device version of bundles to pass Xcode 7 archive checks. (Issue 8568.)
Version 1.10.2 - August 25, 2015
- Fixed a crash releasing a map view while in background. (Issue 8200.)
- Resolved a conflict with apps using gtm-session-fetcher resumable downloads.
- Recompiled with Xcode 6.4 to avoid some bugs in Xcode 6.3 compiler.
- Updated GoogleMaps.bundle info.plist to avoid triggering new checks in pre-submission verification. (Issue 8488.)
Version 1.10.1 - June 10, 2015
- Fixed an issue where instantiating GMSPlacesClient triggered a request to the user to enable Bluetooth on the device.
- Miscellaneous improvements to the GMSPlacePicker UI.
Version 1.10.0 - May 28, 2015
This is the first fully-public release of the Places SDK for iOS.
Help your customers explore where they are and what’s around them:
- Use the built-in place picker UI widget, allowing users to select a place on an interactive map.
- Get the current place, that is, the place where the device is last known to be located.
- Retrieve and display rich information about a place.
- Store the unique place ID for one or more places, and use the ID to retrieve place information on demand.
- Make it easy to enter place names and addresses, by autocompleting your users' queries as they type.
- Add a place to Google's Places database, for retrieval immediately from within your own app and for visibility to other apps after moderation.
- Improve the map around you by reporting the presence of a device at a particular place.
Version 1.9.2 - March 2015
Initial public beta release.