ArcGIS Maps SDK for Swift (バージョン 200.x) を使用して開発したアプリケーションを配布する場合に必要なライセンス認証の手順を説明します。
ArcGIS Location Platform のロケーションサービスを使用する場合は、アプリで API キーを設定する必要があります。API キーの詳細はAPI キーの取得を、APIキーの設定方法はアプリの作成のAPI キーを設定するをご覧ください。
開発したアプリケーションのライセンス認証のステップは以下の通りです。
ArcGIS Maps SDK for Swift には Lite、Basic、Standard の 3 つのライセンス レベルと Analysis エクステンションがあります。開発したアプリケーションが使用する機能に応じて、適切なライセンス レベルを選択してください。
各ライセンスで利用可能な機能の概要は以下の表をご参照ください。
ライセンス | 利用できる機能 |
---|---|
Lite | ・地図表示(2D/3D) ・フィーチャの表示/検索 ・フィーチャのオンライン/オフライン編集(ArcGIS Online/ArcGIS Enterprise のパブリックなフィーチャ サービス、ArcGIS Location Platform のフィーチャサービス) ・ルート検索/到達圏解析/最寄り施設検索 ・住所検索/リバース ジオコーディング ・ユーティリティ ネットワークのトレース |
Basic | ・Lite ライセンスで利用できるすべての機能 ・フィーチャのオンライン/オフライン編集(ArcGIS Online/ArcGIS Enterprise のセキュアなフィーチャ サービス) ・モバイル ジオデータベースの編集 |
Standard | ・Basic ライセンスで利用できるすべての機能 ・シェープファイルの表示/編集 ・GeoPackage の表示/編集 ・KML(ローカル ファイル)の表示/編集 ・ラスター データの表示/解析 ・航海用電子海図(ENC)の表示 ・3D 解析 |
Analysis Extension | ・Standard ライセンスで利用可能なエクステンション・オフラインでの到達圏解析/最寄り施設検索 |
Advanced Editing Extension | ・Basic ライセンス以上で利用可能なエクステンション・ブランチ バージョン ジオデータベースに新しいバージョンの作成・ブランチ バージョン ジオデータベースのバージョンのフィーチャ/テーブルの編集・ユーティリティ ネットワークのネットワーク フィーチャの編集・ユーティリティ ネットワークのトポロジーの検証 |
ライセンスの詳細はESRIジャパン製品ページをご参照ください。
ライセンスの認証は次の2つの方法があります。
ライセンスキーを使用した認証
指定ユーザーによるアカウント認証
ArcGIS Online のユーザータイプの場合
ユーザータイプ | ライセンスレベル |
---|---|
Viewer | Lite |
Contributor / Mobile Worker | Basic |
Creator | Standard |
Professional / Professional Plus | Advanced ※1 |
ArcGIS Enterprise のユーザータイプの場合
ユーザータイプ | ライセンスレベル |
---|---|
Viewer | Lite |
Editor / Mobile Worker | Basic |
Creator / GIS Professional Basic | Standard |
GIS Professional Standard / GIS Professional Advanced | Advanced ※1 |
※1 ArcGIS Maps SDK for Swift には Advanced ライセンスはありません。
ライセンスキーを使用した認証
ArcGIS Online / Portal for ArcGIS へのログインによる認証
ライセンスキーを使用した認証
ArcGIS Online / Portal for ArcGIS へのログインによる認証
ライセンスキーを使用した認証
ArcGIS Online / Portal for ArcGIS へのログインによる認証
注意:この認証は、Portal for ArcGIS をご利用の場合は、ArcGIS Enterprise 10.7 以前のバージョンでは使用できません。
ライセンスキーを使用した認証
ArcGIS Online / Portal for ArcGIS へのログインによる認証
注意:この認証は、Portal for ArcGIS をご利用の場合は、ArcGIS Enterprise 10.7 以前のバージョンでは使用できません。
ライセンスキーを使用した認証
Portal for ArcGIS へのログインによる認証
注意:この認証は、ArcGIS Enterprise 11.1 以前のバージョンでは使用できません。
以下の認証に応じた作業を行ってください。
ArcGIS Runtime Lite のライセンスキーを Esri Developer のサイトから取得し、取得したライセンスキーを利用して、アプリケーションを Lite ライセンスで認証することができます。 最初に以下の手順で Lite レベルのライセンスキーを取得します。
Get a license ページにアクセスします
表示されたライセンスキーをコピーします。
次に、アプリケーションのコードにおいて SDK の機能が呼び出される前に、以下のコードを使用してアプリケーションにコピーしたライセンスキーを設定します。
// 取得したライセンス文字列でアプリのライセンスを設定します
guard let licenseKey = LicenseKey("runtimelite,1000,rud#########,none,####################") else { return }
do {
let result = try ArcGISEnvironment.setLicense(with: licenseKey)
print("License Result : \(result.licenseStatus)")
} catch {
print(error)
}
ArcGIS Runtime の配布パックを購入し、取得したライセンスキーを利用して、アプリケーションを認証することができます。
ArcGIS Runtime の配布パックの購入についてはESRIジャパンにお問合せください。ArcGIS Runtime の配布パックをご購入頂いた場合、ESRIジャパンよりライセンスキーをメールにてお送りします。
アプリケーションのコードにおいて SDK の機能が呼び出される前に、以下のコードを使用して配布パックのライセンスキーを設定します。
// 取得したライセンス文字列でアプリのライセンスを設定します
guard let licenseKey = LicenseKey("runtimestandard,1000,rud#########,day-month-year,####################") else { return }
do {
let result = try ArcGISEnvironment.setLicense(with: licenseKey)
print("License Result : \(result.licenseStatus)")
} catch {
print(error)
}
Extension ライセンスを認証する場合は以下のコードを使用します。
// 基本ライセンスとエクステンション ライセンスのリストを設定します
let licenseKey = LicenseKey("runtimestandard,1000,rud#########,day-month-year,####################")!
let extensions = [
LicenseKey("runtimeanalysis,1000,rud#########,day-month-year,####################")!
]
do {
let result = try ArcGISEnvironment.setLicense(
with: licenseKey,
extensions: extensions
)
} catch {
print(error)
}
アプリケーションの実行時に、アプリケーションを利用するユーザーが保有する ArcGIS Online 組織向けプランもしくは Portal for ArcGIS の指定ユーザー アカウントを使用して ArcGIS Online / Portal for ArcGIS にログインすることで、ライセンスを取得することができます。
アプリケーションのコードにおいて SDK の機能が呼び出される前に、ライセンスを取得・設定します。以下のコードは、ArcGIS Online の指定ユーザーのライセンスを取得する方法を示しています。
認証方法の詳細については、「How to use named user login in your app(英語)」や「Security and authentication(英語)」も併せてご覧ください。
// Portal クラスを構築し、指定ユーザーが認証情報を提供することを確認します。
let url = URL(string: "https://myportal.com")!
// 指定ユーザーが認証情報でログインすることを要求します。
let portal = Portal(url: url, connection: .authenticated)
// ポータルをロードします。
do {
try await portal.load()
// ポータルからユーザーのライセンス情報を取得します。
let licenseInfo = try await portal.licenseInfo
// 指定ユーザーの licenseInfo を使用してライセンスを設定します。
let result = try ArcGISEnvironment.setLicense(from: licenseInfo)
// これでアプリはライセンス認証されました。
// キーチェーン アイテムを作成し、ライセンス情報を保存して、アプリをオフラインで起動してライセンスを取得できるようにします。
let licenseInfoData = licenseInfo.toJSON().data(using: .utf8)!
let label = "com.your_org.your_app_name".data(using: .utf8)!
let keychainItem: [String: Any] = [kSecClass as String: kSecClassKey,
kSecAttrLabel as String: label,
kSecValueData as String: licenseInfoData,
kSecUseDataProtectionKeychain as String: true]
let status = SecItemAdd(keychainItem as CFDictionary, nil)
} catch {
print(error)
}