Service | Cocoapods Pod Name | Framework | Dependency | Build Settings |
---|---|---|---|---|
Log & Crash | NHNCloudLogger | NHNCloudLogger.framework | [External & Optional] * CrashReporter.framework (NHNCloud) |
|
Mandatory | NHNCloudCore NHNCloudCommon |
NHNCloudCore.framework NHNCloudCommon.framework |
OTHER_LDFLAGS = ( "-ObjC", "-lc++" ); |
platform :ios, '11.0'
use_frameworks!
target '{YOUR PROJECT TARGET NAME}' do
pod 'NHNCloudLogger'
end
Build SettingsのOther Linker Flagsに-lc++と-ObjC項目を追加します。
CrashReporter.frameworkを直接ダウンロードするか、ビルドした場合はBuild SettingsのEnable Bitcodeの値をNOに変更する必要があります。
NHN CloudのDownloadsページでダウンロードしたCrashReporter.frameworkは、bitCodeをサポートします。
if [ "${CONFIGURATION}" = "Debug" ]; then
${PODS_ROOT}/NHNCloudSymbolUploader/nhncloud.ios.sdk-*/run --app-key LOG_N_CRASH_SEARCH_DEV_APPKEY
fi
USAGE: symbol-uploader -ak <ak> -pv <pv> [-sz <sz>] <path> [--verbose]
ARGUMENTS:
<path> dSYM file path is must be entered.
OPTIONS:
-ak, --app-key <ak> [Log&Crash Search]'s AppKey must be entered.
-pv, --project-version <pv>
Project version must be entered.
-sz, --service-zone <sz>
You can choose between real, alpha, and demo. (default: real)
--verbose Show more debugging information
-h, --help Show help information.
./SymbolUploader --app-key {APP_KEY} --project-version {CFBundleShortVersionString || MARKETING_VERSION} {symbol path(~/Project.dSYM)}
同じバージョンのSymbolがすでにアップロードされている場合、SymbolUploaderはアップロードされているSymbolを削除してアップロードを実行します。
この時、2つのSymbolファイルのファイル名が異なる場合、アップロードされていたSymbolは削除されません。
Log & Crash SearchコンソールからアップロードされているSymbolを削除する必要があります。 https://console.nhncloud.com/→組織選択→プロジェクト選択→ Anaytics → Log & Crash Search →設定→シンボルファイル
// 初期化
+ (void)initWithConfiguration:(NHNCloudLoggerConfiguration *)configuration;
NHNCloudLoggerConfiguration *configuration = [NHNCloudLoggerConfiguration configurationWithAppKey:@"YOUR_APP_KEY"];
[NHNCloudLogger initWithConfiguration:configuration];
// DEBUG Level log
+ (void)debug:(NSString *)message;
// INFO Level log
+ (void)info:(NSString *)message;
// WARN Level log
+ (void)warn:(NSString *)message;
// ERROR Level log
+ (void)error:(NSString *)message;
// FATAL Level log
+ (void)fatal:(NSString *)message;
[NHNCloudLogger info:@"NHN Cloud Log & Crash Search!"];
// ユーザー定義フィールド追加
+ (void)setUserFieldWithValue:(NSString *)value forKey:(NSString *)key;
// ユーザー定義フィールド追加
[NHNCloudLogger setUserFieldWithValue:@"USER_VALUE" forKey:@"USER_KEY"];
UserIDが設定されている場合、Log &Crash Searchコンソールの
Crash User
セクションでユーザー固有のクラッシュ体験を確認できます。 UserIDの設定は[開始する](./getting-started-ios/#UserID設定)で確認できます。
// CrashReporter Enable Configuration
NHNCloudLoggerConfiguration *configuration = [NHNCloudLoggerConfiguration configurationWithAppKey:@"YOUR_APP_KEY" enableCrashReporter:YES];
[NHNCloudLogger initWithConfiguration:configuration];
// CrashReporter Disable Configuration
NHNCloudLoggerConfiguration *configuration = [NHNCloudLoggerConfiguration configurationWithAppKey:@"YOUR_APP_KEY" enableCrashReporter:NO];
[NHNCloudLogger initWithConfiguration:configuration];
+ (void)setShouldReportCrashHandler:(void (^)(void))handler;
[NHNCloudLogger setShouldReportCrashHandler:^{
// ユーザー定義フィールドを通してCrashが発生した状況から得たい情報を一緒に送信
// ユーザー定義フィールド追加
[NHNCloudLogger setUserFieldWithValue:@"USER_VALUE" forKey:@"USER_KEY"];
}];
+ (void)setDelegate:(id<NHNCloudLoggerDelegate>) delegate;
@protocol NHNCloudLoggerDelegate <NSObject>
@optional
// ログ送信成功
- (void)nhnCloudLogDidSuccess:(NHNCloudLog *)log;
// ログ送信失敗
- (void)nhnCloudLogDidFail:(NHNCloudLog *)log error:(NSError *)error;
// ネットワーク切断などの理由でログの送信に失敗した場合、再送信のためにSDK内部保存
- (void)nhnCloudLogDidSave:(NHNCloudLog *)log;
// ログフィルタリング
- (void)nhnCloudLogDidFilter:(NHNCloudLog *)log logFilter:(NHNCloudLogFilter *)logFilter;
@end
#import <NHNCloudLogger/NHNCloudLogger.h>
@interface AppDelegate () <UIApplicationDelegate, NHNCloudLoggerLoggerDelegate>
@end
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// ...
// 初期化
NHNCloudLoggerConfiguration *configuration = [NHNCloudLoggerConfiguration configurationWithAppKey:@"YOUR_APP_KEY" enableCrashReporter:YES];
[NHNCloudLogger initWithConfiguration:configuration];
// Delegate設定
[[NHNCloudLogger setDelegate:self];
return YES;
}
#pragma mark - NHNCloudLoggerDelegate
// ログ送信成功
- (void)nhnCloudLogDidSuccess:(NHNCloudLog *)log {
// ...
}
// ログ送信失敗
- (void)nhnCloudLogDidFail:(NHNCloudLog *)log error:(NSError *)error {
// ...
}
// ネットワーク切断などの理由でログ送信に失敗した場合、再送信のためにSDK内部保存
- (void)nhnCloudLogDidSave:(NHNCloudLog *)log {
// ...
}
// ログフィルタリング
- (void)nhnCloudLogDidFilter:(NHNCloudLog *)log logFilter:(NHNCloudLogFilter *)logFilter {
// ...
}
@end
コンソールからNetwork Insights機能を有効にすると、NHN Cloud Loggerを初期化する時、コンソールに登録したURLで1回要請します。
typedef NS_ENUM(NSInteger, NHNCloudEnvironment) {
NHNCloudEnvironmentPublic = 0,
NHNCloudEnvironmentGovernment = 1,
};
@property (nonatomic) NHNCloudEnvironment cloudEnvironment;
NHNCloudEnvironmentPublic
です。 NHNCloudLoggerConfiguration *configuration = [NHNCloudLoggerConfiguration configurationWithAppKey:@"YOUR_APP_KEY"];
[configuration setCloudEnvironment:NHNCloudEnvironmentGovernment];
[NHNCloudLogger initWithConfiguration:configuration];