最新在寫推送時,點選獲取推送傳遞的擴充套件欄位,在程式啟用狀態下,可以通過xcode控制檯檢視NSLog資訊,但是在程式退出狀態下,想獲取推送通知傳遞的欄位,這時就是頭疼的問題。
【1】真機除錯
在程式殺死時,失去xcode連結,沒有辦法獲取列印資訊,這時可以在 AppDelegate
中 的宣告如下方法,用來把NSLog
的資訊列印到手機磁碟檔案中
- (void)redirectNSlogToDocumentFolder
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentDirectory = [paths objectAtIndex:0];
NSString *fileName = [NSString stringWithFormat:@"dr.txt"];// 注意不是NSData!
NSString *logFilePath = [documentDirectory stringByAppendingPathComponent:fileName];
// 先刪除已經存在的檔案
NSFileManager *defaultManager = [NSFileManager defaultManager];
[defaultManager removeItemAtPath:logFilePath error:nil];
// 將log輸入到檔案
freopen([logFilePath cStringUsingEncoding:NSASCIIStringEncoding], "a+", stdout);
freopen([logFilePath cStringUsingEncoding:NSASCIIStringEncoding], "a+", stderr);
}
複製程式碼
在didFinishLaunchingWithOptions
方法中呼叫上面方法,同時在Info.plist檔案中新增一行UIFileSharingEnabled
設定為YES
,允許app同坐iTunes連結時,設定改app問共享性,這時就能獲取到該app所在磁碟資料夾的檔案,點選儲存,到Mac桌面雙擊即可檢視(示例中儲存的txt格式檔案),這時就能檢視,程式的NSLog
資訊和xcode控制檯列印的一樣。
【2】模擬器除錯
方法如果真機除錯一樣,宣告方法,然後呼叫,在連結xcode時列印paths
路徑,複製,然後在Mac中右鍵Finder->前往資料夾,貼上路徑,這時就可以找到日誌檔案。