2 SDK のアクティベーション

2.1 ライセンス認証

  1. SDK はライセンスファイルに従って、アルゴリズムライブラリの権限をチェックします。通常、アクティベーションが完了した後にのみ、SDK の機能を使用できます。

  2. 認証方法にはオンライン認証とオフライン認証があります。 オンライン認証では、サーバにホストされているライセンス情報を取得する必要があります。オフライン認証では、ローカルライセンスを使用して検出することができます。

基本的にオフライン認証の提供となります。もしオンライン認証が必要な場合は、別途弊社までご連絡ください。

2.2 アクティベーションコードの認証

  1. ライセンスファイルのコンテンツを読み込みます。

  2. ローカルコンピューターに保存されたアクティベーションコードを取得します。

  3. 利用可能なアクティベーションコードがない場合は、生成します。

  4. checkActiveCode *コマンドを直接実行して、アクティベーションコードが有効であるかどうか確認します。

  5. 確認に失敗した場合、別のアクティベーションコードを生成します。生成に失敗した場合、エラーメッセージが表示されます。成功すると新しいアクティベーションコードが保存され、成功したことを示すメッセージが表示されます。

// SenseME.lic ファイルコンテンツを確認します
NSString *strLicensePath = [[NSBundle mainBundle] 
    pathForResource:@"SENSEME" ofType:@"lic"];
NSData *dataLicense = [NSData dataWithContentsOfFile:strLicensePath];
NSString *strKeySHA1 = @"SENSEME";
NSString *strKeyActiveCode = @"ACTIVE_CODE";
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
NSString *strStoredSHA1 = [userDefaults objectForKey:strKeySHA1];
NSString *strLicenseSHA1 = [self getSHA1StringWithData:dataLicense];
... ...

// 既存のアクティベーションコードを使用できるか確認します (2 種類の方法があります)
// ファイルを使用
iRet = st_mobile_check_activecode(
    strLicensePath.UTF8String,
    (const char *)[activeCodeData bytes]
);
//バッファーを使用
NSData *licenseData = [NSData dataWithContentsOfFile:strLicensePath];
iRet = st_mobile_check_activecode_from_buffer(
    [licenseData bytes],
    (int) [licenseData length],
    [activeCodeData bytes]
);

// 確認に失敗した場合は、新しいコードを生成してローカルのアクティベーションコードを更
// 新します。同様に、2 種類の方法を提供します。
// ファイルを使用
iRet = st_mobile_generate_activecode(
    strLicensePath.UTF8String,
    active_code,
    &active_code_len
);
//バッファーを使用
NSData *licenseData = [NSData dataWithContentsOfFile:strLicensePath];
iRet = st_mobile_generate_activecode_from_buffer(
    [licenseData bytes],
    (int)[licenseData length],
    active_code,
    &active_code_len
);
//ローカルに保存されたアクティベーションコードを更新します
NSData *activeCodeData = [NSData dataWithBytes:active_code
    length:active_code_len];
[userDefaults setObject:activeCodeData forKey:strKeyActiveCode];
[userDefaults setObject:strLicenseSHA1 forKey:strKeySHA1];
[userDefaults synchronize];

Last updated