None.
None.
None.
None.
None.
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 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.This release introduces new ARCore async APIs to improve ergonomics when working with asynchronous operations, following the Future paradigm.
GARSession.createAnchorWithCoordinate:altitudeAboveTerrain:eastUpSouthQAnchor:completionHandler:error:
] to obtain a [GARCreateAnchorOnTerrainFuture
]. The old symbol [GARSession.createAnchorWithCoordinate:altitudeAboveTerrain:eastUpSouthQAnchor:error:
] has been deprecated and may be removed in a later version of ARCore.GARSession.resolveCloudAnchorWithIdentifier:completionHandler:error:
] to obtain a [GARResolveCloudAnchorFuture
]. The old symbol [GARSession.resolveCloudAnchorWithIdentifier:error:
] has been deprecated and may be removed in a later version of ARCore.GARSession.hostCloudAnchor:TTLDays:completionHandler:error:
] to obtain a [GARHostCloudAnchorFuture
]. The old symbols [GARSession.hostCloudAnchor:error:
] and [GARSession.hostCloudAnchor:TTLDays:error:
] have been deprecated and may be removed in a later version of ARCore.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:
GARFuture
is a new base type for async operations with property GARFuture.state
and method GARFuture.cancel
. GARVPSAvailabilityFuture
now extends GARFuture
.None.
None.
None.
None.
None.
GARGeospatialTransform.heading
has been deprecated. Please use GARGeospatialTransform.eastUpSouthQTarget
instead.GARGeospatialTransform.headingAccuracy
has been deprecated. Please use GARGeospatialTransform.orientationYawAccuracy
instead.None.
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.None.
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, use GARGeospatialTransform.eastUpSouthQTarget
.None.
GARGeospatialTransform
now exposes orientation data in 3D space through GARGeospatialTransform.eastUpSouthQTarget
. The heading components of a Geospatial transform are now only valid for Geospatial transforms obtained from cameraGeospatialTransform
; other Geospatial transforms should use the 3D orientation instead.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:
arcore.googleapis.com
instead ofarcorecloudanchor.googleapis.com
.audience
claim to https://arcore.googleapis.com/
for apps built withARCore Geospatial Terrain anchor API creates an anchor at a specified horizontal position and altitude relative to the horizontal position’s terrain.
GARAnchor.terrainState
GARSession.createAnchorWithCoordinate:altitudeAboveTerrain:eastUpSouthQAnchor:error:
None.
None.
None.
None.
None.
With this release, you must now configure the GARSession
before using Cloud
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:
.
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
GAREarth.trackingState
GARGeospatialTransform
GARSession.createAnchorWithCoordinate:altitude:eastUpSouthQAnchor:error:
None.
None.
None.
None.
None.
None.
None.
None.
None.
None.
None.
None.
None.
None.
None.
None.
None.
None.
None.
None.
None.
None.
None.
None.
None.
None.
currentFrame
propertyGARAugmentedFaceSession
.None.
None.
None.
None.
Increased the minimum deployment target to iOS 10.0 (from iOS 9.0).
AR-enabled apps built using ARCore SDK 1.11.0 or earlier are no longer able to host or resolve Cloud Anchors. Specifically, Cloud Anchors returned by hostCloudAnchor:error:
and resolveCloudAnchorWithIdentifier:error:
will always have the state GARCloudAnchorStateErrorInternal
.
Apps built with ARCore SDK 1.12.0 or later are unaffected. Their use of Cloud Anchors APIs is covered by the Cloud Anchors deprecation policy.
None.
None.
Beginning in January 2021, AR-enabled apps built using ARCore SDK 1.11.0 or earlier will no longer be able to host or resolve Cloud Anchors. Specifically, Cloud Anchors returned by hostCloudAnchor:error:
and resolveCloudAnchorWithIdentifier:error:
will always have the state GARCloudAnchorStateErrorInternal
.
Apps built with ARCore SDK 1.12.0 or later are unaffected. Their use of Cloud Anchors APIs is covered by the Cloud Anchors deprecation policy.
None.
None.
None.
None.
Beginning in January 2021, AR-enabled apps built using ARCore SDK 1.11.0 or earlier will no longer be able to host or resolve Cloud Anchors. Specifically, Cloud Anchors returned by hostCloudAnchor:error:
and resolveCloudAnchorWithIdentifier:error:
will always have the state GARCloudAnchorStateErrorInternal
.
Apps built with ARCore SDK 1.12.0 or later are unaffected. Their use of Cloud Anchors APIs is covered by the Cloud Anchors deprecation policy.
None.
None.
None.
None.
sessionWithError:
to replace sessionWithAPIKey:
to create a Cloud Anchor with a TTL longer than 24 hours.setAuthToken:
passes a token (generated for Persistent Cloud Anchors) to your ARCore session.hostCloudAnchor:TTLDays:error:
assigns the number of days for a Cloud Anchor's lifetime.estimateFeatureMapQualityForHosting:
returns the estimated quality of the visual features seen by the camera in the preceding seconds.None.
None.
None.
GARSession.resolveCloudAnchor(withIdentifier:)
-> GARSession.resolveCloudAnchor(_:)
GARSessionDelegate.session(_:didHostAnchor:)
-> GARSessionDelegate.session(_:didHost:)
GARSessionDelegate.session(_:didFailToHostAnchor:)
-> GARSessionDelegate.session(_:didFailToHost:)
None.
None.
CloudAnchors
and AugmentedFaces
subspecs can now be used at the same time.None.
None.
None.
None.
None.
CloudAnchorExample
) sample app. The incorrect link now redirects to the correct link, so existing apps with the incorrect link don't need to be updated.None.
None.
None.
None.
None.
None.
None.
None.
None.
None.
Raised the required minimum iOS SDK version to 13.0.
pod try
will no longer work on the ARCore CocoaPod. It is still available under Examples
on the GitHub repository.None.
None.
None.
Decreased the minimum deployment target of AugmentedFaces
to iOS 9.0 (from 10.0).
Bug fixes and performance improvements.
The ARCore CocoaPod has been divided into two subspecs, CloudAnchors
and AugmentedFaces
. AugmentedFaces
is new for this release. (These libraries are not yet designed to work together.)
The AugmentedFaces
subspec allows you to implement ARCore's Augmented Faces feature on iOS. To read more about Augmented Faces, see https://developers.google.com/ar/develop/ios/augmented-faces/overview
The Cloud Anchors feature has changed as follows.
hostCloudAnchor:error:
and uploaded to the ARCore Cloud Anchor API service has changed. See https://developers.google.com/ar/develop/ios/cloud-anchors/overview#how-hosted to learn more.resolveCloudAnchorWithIdentifier:error:
will no longer time out or fail when the ARCore Cloud Anchor API service is unreachable or the anchor cannot be immediately resolved. Instead, the API continues to attempt to resolve the provided anchors until they are removed.ErrorResolvingLocalizationNoMatch
and ErrorServiceUnavailable
enums in GARCloudAnchorState
are now deprecated and will no longer be returned. For hosted anchors only, the new value ErrorHostingServiceUnavailable
may be returned.Increased the minimum deployment target to iOS 9.0 (from iOS 8.0).
Bug fixes and performance improvements.
Bug fixes and performance improvements.
Bug fixes and performance improvements.
ARCore is now robust to tracking resets.
Bug fixes and performance improvements.
Added the ability to target iOS versions prior to 11.0. The binary now contains
32-bit architectures, and the README documents three version numbers: minimum
deployment target, minimum base SDK, and minimum version for runtime support.
Added the ability for new devices to be supported without an SDK update.
Resolved Issues:
Resolved Issues:
Adds support for ARKit-compatible iPads. These include:
Resolved Issues:
GARCloudAnchorStateErrorInternal
. The error state will now be GARCloudAnchorStateErrorNotAuthorized
.Resolved Issues:
ARFaceAnchor
. The hostCloudAnchor:
implementation no longer checks that the passed in ARAnchor
is not an ARFaceAnchor
, and no longer forcibly exits with GARSessionErrorCodeAnchorNotSupportedForHosting
. However, use of ARFaceAnchor
s remains unsupported in this release.Initial release alongside ARCore 1.2 on Android.
Known Issues:
GARCloudAnchorStateErrorInternal
instead of GARCloudAnchorStateErrorNotAuthorized
. This is a known issue and will be fixed in an upcoming release.