クラウド統合を統合する際のクラッシュとエラーを見つけるためのわずか2つのステップ-iOSの記事
Rongyun iOS SDKを統合すると、多少の問題が発生します。クラッシュまたは関数インターフェイスエラーのコールバックである可能性があります。SDKを初めて使用する開発者にとっては、必然的に途方に暮れます。これが迅速な方法です。問題を特定します。2つの手順が必要です〜
#####この方法の中心的な考え方は、「ログをすばやく取得し、ログを分析して問題を特定する」ことです。
#####ステップ1:
次のコードを追加して、サンドボックスにログを書き込みます
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//重定向 log 到本地问题
//在 info.plist 中打开 Application supports iTunes file sharing
if (![[[UIDevice currentDevice] model] isEqualToString:@"iPhone Simulator"]) {
[self redirectNSlogToDocumentFolder];
}
//设置Log级别,开发阶段打印详细log
[RCIMClient sharedRCIMClient].logLevel = RC_Log_Level_Info;
}
- (void)redirectNSlogToDocumentFolder {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString *documentDirectory = [paths objectAtIndex:0];
NSDate *currentDate = [NSDate date];
NSDateFormatter *dateformatter = [[NSDateFormatter alloc] init];
[dateformatter setDateFormat:@"MMddHHmmss"];
NSString *formattedDate = [dateformatter stringFromDate:currentDate];
NSString *fileName = [NSString stringWithFormat:@"rc%@.log", formattedDate];
NSString *logFilePath = [documentDirectory stringByAppendingPathComponent:fileName];
freopen([logFilePath cStringUsingEncoding:NSASCIIStringEncoding], "a+", stdout);
freopen([logFilePath cStringUsingEncoding:NSASCIIStringEncoding], "a+", stderr);
}
#####ステップ2:
手順1でコードを追加した後、プロジェクトを実行します。問題を再現した後、「サンドボックス/ドキュメント」パスからrcで始まるログファイルをエクスポートし、テキスト編集ツールでファイルを開きます。
-
クラッシュの場合、対応するクラッシュ情報がログに表示されます。次に例を示します。
- インスタンスに送信されたメソッド認識されないセレクターが見つかりません
- 範囲外の配列[__NSArrayMobjectAtIndex:]:index4beyond bounds [0..1]など。
-
SDK関数インターフェースエラーの場合は、ログでエラーコードを検索できます。Rongyunのエラーコードは基本的に「3」で始まる5桁です。例:
- 31004:「トークンが無効です」、使用されているトークンがアプリキーと一致しません。
- 33001:「SDKが初期化されていません」。他のインターフェイスを呼び出す前にSDKを初期化する必要があります。
- 33003:「開発者インターフェースの呼び出し時に渡されたパラメーターが間違っている」とは、インターフェースの呼び出し時に渡されたパラメーターが間違っていることを意味し、オブジェクトが空になる可能性が高くなります。
その他のエラーコードリンク:https://docs.rongcloud.cn/v4/views/im/ui/code/ios.html
要約すると、上記の2つの簡単な手順でほとんどの問題を見つけることができますが、エラーコードの説明が十分に明確でない場合は、チケットを要求する必要がありますが、通信コストの一部を節約することもできます。チケットを作成し、ログを記録する体の近くにいると、問題を解決するために的を絞った応答を得る効率がはるかに高くなります。今日の共有がすべての人に役立つことを願っています。