2 SDK のアクティベーション
2.1 ライセンス認証
SDK はライセンスファイルに従って、アルゴリズムライブラリの権限をチェックします。通常、アクティベーションが完了した後にのみ、SDK の機能を使用できます。
認証方法にはオンライン認証とオフライン認証があります。 オンライン認証では、サーバにホストされているライセンス情報を取得する必要があります。オフライン認証では、ローカルライセンスを使用して検出することができます。
2.2 アクティベーションコードの認証
ライセンスファイルのコンテンツを読み込みます。
ローカルコンピューターに保存されたアクティベーションコードを取得します。
利用可能なアクティベーションコードがない場合は、生成します。
checkActiveCode *
コマンドを直接実行して、アクティベーションコードが有効であるかどうか確認します。確認に失敗した場合、別のアクティベーションコードを生成します。生成に失敗した場合、エラーメッセージが表示されます。成功すると新しいアクティベーションコードが保存され、成功したことを示すメッセージが表示されます。
// 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
Was this helpful?