Releases: google-ar/arcore-ios-sdk
ARCore SDK for iOS v1.37.0
New APIs and capabilities
Streetscape Geometry
Streetscape Geometry is a new ARCore Geospatial API that provides the geometry of buildings and terrain in an area around the user when the Geospatial API is enabled.
See Streetscape Geometry Developer Guide (iOS) for more information. Additionally, the GeospatialExample app has been updated to include Streetscape Geometry.
GARStreetscapeGeometry
:GARStreetscapeGeometry.mesh
provides 3D meshes.GARStreetscapeGeometry.meshTransform
provides the origin transform of the geometry relative to the session's world space.GARStreetscapeGeometry.trackingState
maintains the tracking state.GARStreetscapeGeometry.type
indicates if it is terrain or building geometry.GARStreetscapeGeometry.quality
provides the quality of geometry.GARStreetscapeGeometry.identifier
provides the unique identifier for the geometry.
GARSession.createAnchorOnStreetscapeGeometry:transform:error:
creates an anchor at the specified location and orientation.GARSession.raycastStreetscapeGeometry:direction:error:
performs a raycast against Streetscape Geometry loaded in the scene.
Rooftop anchors
Rooftop anchors are a new Geospatial anchor type that helps you anchor content to a rooftop.
See Geospatial anchors (iOS) for more information. Additionally, the GeospatialExample app has been updated to include Rooftop anchors.
GARSession.createAnchorWithCoordinate:altitudeAboveRooftop:eastUpSouthQAnchor:completionHandler:error:
creates a Rooftop anchor at the specified location, altitude above the rooftop in meters and orientation relative to the Earth.GARCreateAnchorOnRooftopFuture
holds the asynchronous state of resolving a Rooftop anchor.GARRooftopAnchorState
describes the state of resolving a Rooftop anchor.
ARCore async APIs
This release introduces new ARCore async APIs to improve ergonomics when working with asynchronous operations, following the Future paradigm.
- Resolving Terrain anchors: Use
GARSession.createAnchorWithCoordinate:altitudeAboveTerrain:eastUpSouthQAnchor:completionHandler:error:
to obtain aGARCreateAnchorOnTerrainFuture
. The old symbolGARSession.createAnchorWithCoordinate:altitudeAboveTerrain:eastUpSouthQAnchor:error:
has been deprecated and may be removed in a later version of ARCore. - Resolving Cloud anchors: Use
GARSession.resolveCloudAnchorWithIdentifier:completionHandler:error:
to obtain aGARResolveCloudAnchorFuture
. The old symbolGARSession.resolveCloudAnchorWithIdentifier:error:
has been deprecated and may be removed in a later version of ARCore. - Hosting Cloud anchors: Use
GARSession.hostCloudAnchor:TTLDays:completionHandler:error:
to obtain aGARHostCloudAnchorFuture
. The old symbolsGARSession.hostCloudAnchor:error:
andGARSession.hostCloudAnchor:TTLDays:error:
have been deprecated and may be removed in a later version of ARCore.
Deprecations
- With the addition of asynchronous Cloud Anchor and Terrain Anchor methods, the following are now obsolete and deprecated:
GARAnchor(Geospatial)
GARAnchor.terrainState
GARTerrainAnchorStateTaskInProgress
GARAnchor(CloudAnchors)
GARAnchor.cloudIdentifier
GARAnchor.cloudState
GARCloudAnchorStateTaskInProgress
GARSession.hostCloudAnchor:error:
GARSession.hostCloudAnchor:TTLDays:error:
GARSession.resolveCloudAnchorWithIdentifier:error:
GARSessionDelegate
GARSessionDelegate.session:didFailToHostAnchor:
GARSessionDelegate.session:didHostAnchor:
GARSessionDelegate.session:didFailToResolveAnchor:
GARSessionDelegate.session:didResolveAnchor:
GARSession.delegate
GARSession.delegateQueue
GARSession.createAnchorWithCoordinate:altitudeAboveTerrain:eastUpSouthQAnchor:error:
Other changes
GARFuture
is a new base type for async operations with propertyGARFuture.state
and methodGARFuture.cancel
.GARVPSAvailabilityFuture
now extendsGARFuture
.
ARCore SDK for iOS v1.36.0
Other Changes
- The ARCore iOS SDK now officially supports Swift Package Manager. See Enable AR in your iOS app for instructions on how to integrate with ARCore using Swift Package Manager.
- Adds copyright statements added to files that were inadvertently missing them previously.
Bug fixes
- Various bug fixes and performance improvements.
ARCore SDK for iOS v1.35.0
New APIs and capabilities
- All Geospatial transforms now expose their orientation accuracy of the Yaw rotation, replacing heading accuracy.
GARGeospatialTransform.orientationYawAccuracy
Deprecations
GARGeospatialTransform.heading
has been deprecated. Please useGARGeospatialTransform.eastUpSouthQTarget
instead.GARGeospatialTransform.headingAccuracy
has been deprecated. Please useGARGeospatialTransform.orientationYawAccuracy
instead.
Other changes
- ARCore Geospatial API
checkVPSAvailabilityAtCoordinate:completionHandler
will continue to retry silently in the background if it is unable to establish a connection to the ARCore service for 5 seconds.
ARCore SDK for iOS v1.34.0
New APIs and capabilities
- A new ARCore Geospatial API has been added to check for Visual Positioning System (VPS) availability at a specified horizontal position at runtime. This API can be used without an active AR session, for example, to present an "Enter AR" button only when VPS is available. See Check VPS Availability for more information and a usage example.
GARSession.checkVPSAvailabilityAtCoordinate:completionHandler:
- Geospatial transforms now expose their orientation in 3D space.
GARGeospatialTransform.eastUpSouthQTarget
GARSession.geospatialTransformFromTransform:error:
GARSession.transformFromGeospatialCoordinate:altitude:eastUpSouthQTarget:error:
. Note that Geospatial poses obtained from these functions have a heading value set to zero. Instead, useGARGeospatialTransform.eastUpSouthQTarget
.
Deprecations
None.
Bug fixes
- Fixed a bug where the Geospatial API would return auth errors when using Signed JWT authentication.
ARCore SDK for iOS v1.33.0
Breaking & behavioral changes
To use Cloud Anchors, you must now enable the ARCore API instead of the older ARCore Cloud Anchor API, which is now deprecated. To support older app versions, you may enable both while making the transition. Apps built with ARCore SDK 1.32.0 and lower will target the older API, while apps built with ARCore SDK 1.33.0 and higher will target the new API. Note the following:
- The new API uses the domain name
arcore.googleapis.com
instead ofarcorecloudanchor.googleapis.com
. - If you are using Signed JWTs to authenticate, you will need to change the
audience
claim tohttps://arcore.googleapis.com/
for apps built with ARCore SDK 1.33.0 and higher. - If you are using an API Key which is restricted by API, you must allow the ARCore API.
- If you send requests to the ARCore Cloud Anchor Management API from your backend, you must also change the domain name to
arcore.googleapis.com
, after enabling the ARCore API. - The old API/endpoint will continue to be supported through August 2023.
- See ARCore 1.33 Cloud Anchor endpoint changes for more details.
New APIs and capabilities
ARCore Geospatial Terrain anchor API creates an anchor at a specified horizontal position and altitude relative to the horizontal position's terrain.
GARAnchor.terrainState
describes the current Terrain anchor state of GARAnchor.GARSession.createAnchorWithCoordinate:altitudeAboveTerrain:eastUpSouthQAnchor:error:
creates a Geospatial Terrain anchor at the specified location and altitude above the terrain in meters and orientation relative to the Earth.
Deprecations
None.
Other changes
- Updates for Xcode 14 - see Xcode 14 Release Notes:
- SDK binaries no longer contain bitcode, as Apple has deprecated bitcode.
- SDK binaries no longer contain 32-bit architectures, as Xcode 14 does not support these.
- The SDK no longer supports deployment targets < 11.0, as Xcode 14 does not support these.
- SDK binaries now contain the arm64 simulator architecture for Macs with Apple Silicon.
- SDK binaries are now packaged as XCFrameworks.
- The SDK now includes Beta support for Swift Package Manager. See README.md for how to integrate with ARCore using Swift Package Manager.
Bug fixes
- Various bug fixes and performance improvements.
ARCore SDK for iOS v1.32.0
Breaking & behavioral changes
None.
New APIs and capabilities
None.
Deprecations
None.
Other changes
None.
Bug fixes
- Various bug fixes and performance improvements.
ARCore SDK for iOS v1.31.0
Anchors (or the new Geospatial API; see below). See the new
GARSessionConfiguration
class (and its categories) as well as the new method
GARSession#setConfiguration:error:
.
New APIs and capabilities
The new
ARCore Geospatial API
utilizes data from Google Earth 3D models and Street View image data from Google
Maps to enable your app for immersive, global-scale, location-based augmented
reality experiences. This functionality is included in the new Geospatial
podspec.
GAREarth
Provides Earth-relative localization.GAREarth.earthState
manages error states and conditions.GAREarth.trackingState
maintains the tracking state, required for geospatial data.
GARGeospatialTransform
A representation of a global transform including location, heading, altitude,
and accuracy estimates.GARSession.createAnchorWithCoordinate:altitude:eastUpSouthQAnchor:error:
Creates a Geospatial anchor at the specified location and orientation
relative to the Earth.
Deprecations
None.
Other changes
None.
Bug fixes
- Various bug fixes and performance improvements.
ARCore SDK for iOS v1.30.0
New APIs and capabilities
None.
Deprecations
None.
Other changes
None.
Bug fixes
- Various bug fixes and performance improvements.
ARCore SDK for iOS v1.29.0
New APIs and capabilities
None.
Deprecations
None.
Other changes
None.
Bug fixes
- Various bug fixes and performance improvements.
ARCore SDK for iOS v1.28.0
New APIs and capabilities
None.
Deprecations
None.
Other changes
None.
Bug fixes
- Various bug fixes and performance improvements.