使用Xcode 在模擬器運行的時候,可以直接通過xcode 查看log,但是真機測試的時候,xcode 卻無法獲取到,對于日志輸出,可以先保存到真機上,之后通過iTunes導出即可修改源碼
此函數(shù)要在
-? ? (BOOL)application:(UIApplication *)application? ? didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
中調用,這個函數(shù)在AppDelegate.m中實現(xiàn)的。
// 將NSlog打印信息保存到Document目錄下的文件中
- (void)redirectNSlogToDocumentFolder
{
NSArray *paths =? ? NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,? ? YES);
NSString *documentDirectory? ? = [paths objectAtIndex:0];
NSString *fileName = [NSString? ? stringWithFormat:@"dr.log"];// 注意不是NSData!
NSString *logFilePath =? ? [documentDirectory stringByAppendingPathComponent:fileName];
// 先刪除已經(jīng)存在的文件
NSFileManager *defaultManager =? ? [NSFileManager defaultManager];
[defaultManager? ? removeItemAtPath:logFilePath error:nil];
// 將log輸入到文件
freopen([logFilePath ?cStringUsingEncoding:NSASCIIStringEncoding],"a+", stdout);
freopen([logFilePath ? cStringUsingEncoding:NSASCIIStringEncoding],"a+", stderr);
}
/*******************************************************************************/
// 當真機連接Mac調試的時候把這些注釋掉,否則log只會輸入到文件中,而不能從xcode的監(jiān)視器中看到。
// 如果是真機就保存到Document目錄下的drm.log文件中
UIDevice *device = [UIDevice? ? currentDevice];
if(![[device model] isEqualToString:@"iPad Simulator"]) {
// 開始保存日志文件
[self? ? redirectNSlogToDocumentFolder];
}
/*******************************************************************************/
修改AppDelegate.m
,添加如上,這樣設置log的輸出位置,或在xcode的監(jiān)視器,或者在真機上的文件中
修改配置文件
修改項目下的Info.plist ,
添加UIFileSharingEnabled鍵,并將鍵值設置為YES,添加之后,
添加之后會變成 Application supports
iTunes file sharing YES
連接真機設備,連接iTunes,導出log 即可
連接真機設備之后,從應用程序里面找到dr.log 然后導出就可以了
可以參考:
http://www.cnblogs.com/ThankForYou/archive/2012/09/12/2681739.html