ArcGIS Runtime SDK for iOS: AGSLicense Class Reference
ArcGIS Runtime SDK for iOS  100.15
AGSLicense Class Reference

Description

The application's license details.

Instances of this class represent the current state of the application's license as returned by AGSRuntimeEnvironment::license.

Until an app is licensed, it runs at the Developer license level. All functionality is available, but the map display is watermarked and the API logs messages stating that the app is in developer mode.

A deployed app needs to be run at minimum with the Lite license level to disable the map watermark. The Lite, Basic, Standard, or Advanced license level is set by calling setLicenseKey:error: (AGSArcGISRuntimeEnvironment) with a license string obtained from the ArcGIS for Developers website or Esri Customer Service. With the varying license levels, a subset of functionality is available. Any attempt to use licensed functionality that is not available at the current license level will log or emit error messages.

To get Lite, Basic, Standard, or Advanced license level functionality, a user app is licensed in one of two ways:

  • With license information retrieved after logging in to a portal (Lite and Basic levels).
  • With a license string acquired from the ArcGIS for Developers website or Esri Customer Service.

To license with a license string, call setLicenseKey:error: (AGSArcGISRuntimeEnvironment).

To validate with information from a portal, you need an AGSLicenseInfo instance. You can get one by calling AGSPortalInfo::licenseInfo. Pass the AGSLicenseInfo to setLicenseInfo:error: (AGSArcGISRuntimeEnvironment).

Both of these methods return an AGSLicenseResult that reports the status of the license. Note that there is a 30-day timeout when using AGSLicenseInfo. If the app is licensed using this method, the user must log in to the portal again before licensing the app. When this period has expired, calling setLicenseInfo:error: (AGSArcGISRuntimeEnvironment) returns an AGSLicenseResult which contains license status of AGSLicenseStatusLoginRequired, and the app continues to run at the current license level (default is AGSLicenseLevelDeveloper).

Since
100
Inheritance diagram for AGSLicense:
AGSObject

Properties

NSDate * expiry
 
NSArray< AGSExtensionLicense * > * extensions
 
AGSLicenseLevel licenseLevel
 
AGSLicenseStatus licenseStatus
 
AGSLicenseType licenseType
 
BOOL permanent
 

Property Documentation

◆ expiry

- (NSDate*) expiry
readnonatomicstrong

License expiry date.

This is either the expiry date of a license set with setLicenseKey:error: (AGSArcGISRuntimeEnvironment) or the portal subscription expiry when using setLicenseInfo:error: (AGSArcGISRuntimeEnvironment).

Since
100

◆ extensions

- (NSArray<AGSExtensionLicense*>*) extensions
readnonatomiccopy

An array of the extension licenses for the app.

For valid extension license keys supplied when calling setLicenseKey:extensions:error: (AGSArcGISRuntimeEnvironment), this array is populated with information about the extension licenses. Use this function to iterate extension licenses available for the app.

Note that, although this array is empty when running an app in developer mode, all extension licensed functionality will be available.

Since
100

◆ licenseLevel

- (AGSLicenseLevel) licenseLevel
readnonatomicassign

The current license level set in the app. See AGSLicenseLevel for available levels.

By default, unless a deployment license is provided, apps run with an AGSLicenseLevelDeveloper license.

Since
100

◆ licenseStatus

- (AGSLicenseStatus) licenseStatus
readnonatomicassign

Current status of the application's license.

Since
100

◆ licenseType

- (AGSLicenseType) licenseType
readnonatomicassign

The license type of the current license.

In developer mode, this property is AGSLicenseTypeDeveloper. Otherwise, it is AGSLicenseTypeNamedUser if the app was licensed by logging in to a portal and acquiring an AGSLicenseInfo, or AGSLicenseTypeLicenseKey if the app was licensed from a license string. The license type can change while an app runs. For instance, the app may start running licensed with a Lite license key (AGSLicenseTypeLicenseKey) and later become licensed from AGSLicenseInfo (AGSLicenseTypeNamedUser).

Since
100

◆ permanent

- (BOOL) permanent
readnonatomicassign

YES if a license is perpetual, NO otherwise.

Since
100.7