對於那些做後端開發的工程師來說,看log解bug應該是理所當然的事,但我接觸到的移動應用開發的工程師裡面,很多人並沒有這個意識,查bug時總是一遍一遍的試圖重現,試圖除錯,特別是對一些不太容易重現的bug經常焦頭爛額。而且ios的異常機制比較複雜,objective-c的語言駕馭也需要一定的功力,做出來的應用有時候挺容易產生崩潰閃退。一遍一遍的用xcode取應用崩潰記錄、解析符號,通常不勝其煩,有時還對著解析出來的呼叫棧發呆,因為程式當時的內部狀態常常難以看明白,只能去猜測。
對於真機,日誌沒法儲存,不好分析問題。所以有必要將日誌儲存到應用的docunment目錄下,並設定成共享檔案,這樣才能取出分析。
匯入第三方:afnetworkinng
最終效果:
小技巧:ios - 將控制台log日誌轉為輸出為文字檔案
?12 3
4 56 7
8 910 11
12 13
14 15
16 - (void)redirectnslogtodocumentfolder
nsarray *paths = nssearchpathfordirectoriesindomains(nsdocumentdirectory, nsuserdomainmask, yes);
nsstring *documentdirectory = [paths objectatindex:0];
nsstring *filename = [nsstring stringwithformat:@mrnslog.txt];// 注意不是nsdata!
// 先刪除已經存在的檔案
nsfilemanager *defaultmanager = [nsfilemanager defaultmanager];
[defaultmanager removeitematpath:logfilepath error:nil];
// 將log輸入到檔案
freopen([logfilepath cstringusingencoding:nsasciistringencoding], a+, stdout);
freopen([logfilepath cstringusingencoding:nsasciistringencoding], a+, stderr);
2.在didfinishlaunchingwithoptions中呼叫 :
[self redirectnslogtodocumentfolder];
最後配置共享資料夾:
iOS中 加強日誌輸出 開發技術總結
對於那些做後端開發的工程師來說,看log解bug應該是理所當然的事,但我接觸到的移動應用開發的工程師裡面,很多人並沒有這個意識,查bug時總是一遍一遍的試圖重現,試圖除錯,特別是對一些不太容易重現的bug經常焦頭爛額。而且ios的異常機制比較複雜,objective c的語言駕馭也需要一定的功力,做...
ios開發中,加入Google Analytics
直接挑乾的來!標頭檔案需要加入的東西 add header file import gai.h import gaifields.h import gaidictionarybuilder.h add member id m tracker mm檔案需要加入的東西 void viewdidload ...
IOS 除錯日誌輸出
void logmessagebyuuid nsstring uuid 這樣就會吧debug寫入乙個檔案,在測試過程中出現bug 把手機中得日誌倒出來就可以檢視日誌了。這樣就可以除錯了。對於stderr 檔案的解釋來自 為某個外部附件開發應用程式的情況下,開發者無法用 xcode 進行除錯或者用 g...