メインコンテンツまでスキップ

アクティベーション

サンプルコード

SDK のスキャン機能を使う前に、SDK を使用するデバイスでライセンスのアクティベーションを行う必要があります。 アクティベーションはそのデバイスで初めて SDK を使うときのみ必要で、オンライン環境で行います。

警告
  • Android: デバイスのファクトリーリセットを行うと、再度のアクティベーションが必要になり、別デバイスとして登録されます。
  • iOS: アプリを削除して再インストールすると、再度のアクティベーションが必要になり、別デバイスとして登録されます。

1. NefrockLicenseAPI の初期化

ライセンスキーを使って NefrockLicenseAPI を初期化します。

import EdgeOCRSwift

let licenseAPI = try LicenseBuilder()
.withLicenseKey("YOUR_LICENSE_KEY")
.build()
  • "YOUR_LICENSE_KEY" にはお客様のライセンスキーを設定してください。
  • Android では第一引数にアプリの Context を渡します。

2. アクティベーションの実行

activate メソッドを呼び出してデバイスを登録します。

do {
let license = try await licenseAPI.activate()
// アクティベーション成功
} catch {
// アクティベーション失敗
print(error.localizedDescription)
}

一度アクティベーションを行うと、ライセンス情報がファイルに保存されるため、次回以降のアプリ起動時に再度アクティベーションを行う必要はありません。

3. アクティベーション状態の確認

isActivated メソッドで、デバイスがすでにアクティベーション済みかを確認できます。

do {
let license = try await licenseAPI.isActivated()
// アクティベーション済み
} catch {
// 未アクティベーション
}

このメソッドはまずローカルのライセンスファイルを確認し、見つからない場合はサーバーに問い合わせます。 新しいデバイスとして登録されることはありません。

推奨パターン

アプリ起動時にまず isActivated で確認し、未アクティベーションの場合のみ activate を呼び出すようにしてください。

func tryActivation(key: String) async -> String? {
let licenseAPI: NefrockLicenseAPI
do {
licenseAPI = try LicenseBuilder().withLicenseKey(key).build()
} catch {
return error.localizedDescription
}

do {
_ = try await licenseAPI.isActivated()
} catch {
// 未アクティベーションなので activate を実行
do {
_ = try await licenseAPI.activate()
} catch {
return error.localizedDescription
}
}

return nil // 成功
}

サンプルアプリでは EdgeOCRSample/Models/Activation/ActivationModel.swift に実装されています。

4. アクティベーションの解除

deactivate メソッドでアクティベーションを解除できます。 デバイスに保存されているライセンス情報が削除され、サーバー側の登録も解除されます。

do {
try await licenseAPI.deactivate()
// ディアクティベーション成功
} catch {
// ディアクティベーション失敗
print(error.localizedDescription)
}