iOS SDK

Prev Next

Classic/VPC環境で利用できます。

iOS SDKでは Effective Log Search & Analytics 2.0サービスで提供する iOS SDKの使用方法を説明します。

参考

iOS SDKは HTTPSプロトコルを利用してログを転送します。

SDKを使用する手順は、次の通りです。

1. 事前準備
2. SDKのインストール
3. SDKを使用する

1. 事前準備

iOS SDKをインストールするための事前準備事項は、次の通りです。

  1. NAVERクラウドプラットフォームコンソールで、プロジェクトを作成します。
  2. 作成したプロジェクト詳細情報画面で txtToken値を確認します。
  3. iOS用 SDKをダウンロードします。

2. iOS SDKのインストール

iOS SDKをインストールする方法は、次の通りです。

  1. ダウンロードした SDKファイルの圧縮を解凍します。
  2. SDKをインストールする iOSプロジェクトの Frameworks フォルダに SDKファイルを保存します。
    • Nelo2SDK.framework
    • CrashReporter.framework
  3. Xcodeを実行してプロジェクトを開きます。
  4. TARGETS でビルドするターゲットをクリックします。
  5. Build Phases を選択した後、Link Binary With Libraries 領域に以下のシステムフレームワークを追加します。
  • UIKit.framework
  • SystemConfiguration.framework
  • CoreTelephony.framework
  • Foundation.framework

3. SDKを使用する

以下の Effective Log Search & Analytics 2.0 iOS SDKを使用する実際のサンプルコードを参照し、プロジェクトにログを転送します。

NSString* appID = @"02b96c3d8bbe_elsa-test";
NSString* appVer= @"1.0.0";
NSString* serverAddr = @"elsa-v2-col.ncloud.com"; //Effective Log Search & Analytics収集サーバアドレス
NSString* userID = @"tester"; //ユーザー ID

// Nelo Init
[NeloLog init:serverAddr ofProjectName:appID withProjectVersion:appVer forUserId:userID];

// Neloログ転送
[NeloLog info:@"ErrorCode" withMessage:@"Message"];
[NeloLog error:@"ErrorCode" withMessage:@"Message" atLocation:@"test loc"];

iOS SDK APIの明細

iOS SDKは以下のような APIを提供します。

初期化 API

初期化する APIは、次の通りです。

// Default NeloLog init method
+ (bool) init:(NSString *)serverAddr ofProjectName:(NSString* )appName withProjectVersion:(NSString*)appVersion;
+ (bool) init:(NSString *)serverAddr ofProjectName:(NSString* )appName withProjectVersion:(NSString*)appVersion forUserId:(NSString* )userId;

各パラメータの説明は、次の通りです。

パラメータ 説明
serverAddr ログ収集サーバのアドレス
  • Collectorサーバアドレス: elsa-col.ncloud.com
appName プロジェクト ID
appVersion ログを転送するアプリのバージョン情報
  • このバージョンでシンボリケーション時に、シンボルファイルとマッピング
userId ユーザー ID
参考

SDK Version 0.32から onPort、byProtocolパラメータを削除しました。

例)

NSString* appID = @"02b96c3d8bbe_elsa-test";
NSString* appVer= @"1.0.0";
NSString* serverAddr = @"elsa-v2-col.ncloud.com"; //Effective Log Search & Analytics 2.0収集サーバアドレス
NSString* userID = @"tester"; //ユーザー ID

// Nelo Init
[NeloLog init:serverAddr ofProjectName:appID withProjectVersion:appVer forUserId:userID];

ログ転送 API

ログを転送する APIは、次の通りです。

// send log method
+ (void) debug:(NSString *)errorCode withMessage:(NSString* )message;
+ (void) error:(NSString *)errorCode withMessage:(NSString* )message;
+ (void) fatal:(NSString *)errorCode withMessage:(NSString* )message;
+ (void) info:(NSString *)errorCode withMessage:(NSString* )message;
+ (void) warn:(NSString *)errorCode withMessage:(NSString* )message;

+ (void) debug:(NSString *)errorCode withMessage:(NSString* )message atLocation:(NSString*)location;
+ (void) error:(NSString *)errorCode withMessage:(NSString* )message atLocation:(NSString*)location;
+ (void) fatal:(NSString *)errorCode withMessage:(NSString* )message atLocation:(NSString*)location;
+ (void) info:(NSString *)errorCode withMessage:(NSString* )message atLocation:(NSString*)location;
+ (void) warn:(NSString *)errorCode withMessage:(NSString* )message atLocation:(NSString*)location;

各パラメータの説明は、次の通りです。

パラメータ 説明
errorCode NELOの errorCodeフィールドにマッピングされる値(長さ制限: 128文字)
message NELOの body フィールドにマッピングされる値(長さ制限はないが、全体ログ容量の制限はある)
location NELOの location フィールドにマッピングされる値(errorが発生した場所を転送)

例)

[NeloLog info:@"ErrorCode" withMessage:@"Message"];

オプション設定 API

オプション設定 APIは、次の通りです。

ユーザー ID設定

ユーザー IDを設定する APIは、次の通りです。

+ (void) setUserId:(NSString*)userId;

各パラメータの説明は、次の通りです。

パラメータ 説明
userId ユーザー ID

ログタイプ設定

ログのタイプを設定する APIは、次の通りです。

+ (void) setLogType:(NSString*)logType;

各パラメータの説明は、次の通りです。

パラメータ 説明
logType ログタイプ(logType)の情報

クラッシュコールバック

クラッシュコールバック APIを使用してクラッシュ発生時に、クラッシュログを転送する前にユーザーが定義した関数を呼び出せます。クラッシュコールバック APIは、次の通りです。

+ (void) setCrashBlock:(void (^)(void))block;

各パラメータの説明は、次の通りです。

パラメータ 説明
block アプリクラッシュの発生時に、クラッシュを転送する方法を設定

例)

[NeloLog setCrashBlock:^{
    NSLog(@"crashed");
    [NeloLog setCustomField:@"MyValue" forKey:@"MyKey"];
}];

ログレベル(loglevel)設定

ログレベル(loglevel)以上のログのみ転送する APIは、次の通りです。

参考
  • ログレベル(logLevel)ごとに関数を使用します。
    • ログレベル(logLevel): Fatal、Error、Warn、Info、Debug
  • 値は以下の Constant値として定義されています。
    • NELO2_LOGLEVEL_DEBUG(デフォルト値)
    • NELO2_LOGLEVEL_INFO
    • NELO2_LOGLEVEL_WARN
    • NELO2_LOGLEVEL_ERROR
    • NELO2_LOGLEVEL_FATAL
+ (void) setLogLevelFilter:(NSString*)logLevelFilter;

各パラメータの説明は、次の通りです。

パラメータ 説明
logLevelFilter ログレベル以上のログのみ NELOに転送

例)

[NeloLog setLogLevelFilter:NELO2 _LOGLEVEL_ WARN];

ログ転送方法設定

ログ転送方法を設定する APIは、次の通りです。

+ (void) setNeloSendMode:(NSString*)sendMode;

各パラメータの説明は、次の通りです。

パラメータ 説明
sendMode ログ転送方法設定

パラメータの設定値によるネットワーク別のログ転送方法は、次の通りです。

  • ALL 設定時

    ネットワーク状態 転送方法
    3g 転送
    Wi-Fi 転送
    Not Connected 転送しない
  • WIFI 設定時

    ネットワーク状態 転送方法
    3g 転送しない
    Wi-Fi 転送
    Not Connected 転送しない

シンボリケーション実行設定

クライアントでのシンボリケーション(Symbolication)の実行有無を設定する APIは、次の通りです。

参考
  • SDKの基本設定値は、次の通りです。
    • iOS SDK: false(クライアントでシンボリケーションを行わない)
    • mac SDK: true(クライアントでシンボリケーションを行う)
    • クライアントでシンボリケーションを行うと、クラッシュの発生時にアプリが停止する場合、しばらく遅延が発生
+ (void) enableClientSideSymbolication:(bool)enable;

各パラメータの説明は、次の通りです。

パラメータ 説明
enable クライアントでのシンボリケーションの実行有無を設定