iOS日志收集

當你遠程開發(fā)的時候,你寫的程序在自己的手機上沒問題,在幾千公里外的測試手機上有問題,看現(xiàn)象也看不出來啥問題。那可以把日志寫到手機里,然后導出來供你排查。

還有就是,偶發(fā)的一些問題,數(shù)據(jù)異常也可以寫入到本地,排查。

1.第一步,允許手機共享文件 這個必須加,不然你連接iTunes 看不到應用程序,沒法導出日志

在info.plist文件里添加一項

Application supports iTunes file sharing??????? 值設置成 YES

這個是允許導出日志

2. 在appdelegate 里調(diào)用以下方法

- (void)redirectNSLogToDocumentFolder

{

? ? //如果已經(jīng)連接Xcode調(diào)試則不輸出到文件

? ? if(isatty(STDOUT_FILENO)) {

? ? ? ? return;

? ? }

? ? UIDevice *device = [UIDevice currentDevice];

? ? if([[device model] hasSuffix:@"Simulator"]){ //在模擬器不保存到文件中

? ? ? ? return;

? ? }


? ? NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

? ? ? NSString *documentDirectory = [paths objectAtIndex:0];

? ? ? NSString *fileName = [NSString stringWithFormat:@"apptest.log"];

? ? ? NSString *logFilePath = [documentDirectory stringByAppendingPathComponent:fileName];

? ? ? // Delete existing files

? ? ? NSFileManager *defaultManager = [NSFileManager defaultManager];

? ? ? [defaultManager removeItemAtPath:logFilePath error:nil];

? ? ? //Enter the log into the file

? ? ? freopen([logFilePath cStringUsingEncoding:NSASCIIStringEncoding], "a+", stdout);

? ? ? freopen([logFilePath cStringUsingEncoding:NSASCIIStringEncoding], "a+", stderr);

}

3.第三步,相應的地方用代碼 nslog 打印輸出。(當然也可以把項目閃退的異常拋錯也能寫進去)

4. 第四步,連上手機 打開iTunes 導數(shù)據(jù)

導出日志

結束。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容