2016-09-27 159 views
2

是否可以登錄iPhone上的文件(或以某種方式獲取控制檯輸出)以便稍後閱讀或直接從手機中閱讀?iOS應用程序無需電纜調試

我需要調試使用線纜連接附件設備的應用程序,因此無法同時連接到XCode。

+0

考慮在文檔目錄中的文本文件中寫入日誌。稍後您可以隨時訪問它。 –

+0

我發現這個,但我不知道它是否仍然有效http://iphonedevwiki.net/index.php/Debugserver#Alternative_Instructions_.2864-bit_compatible.29 – Paulw11

回答

0

Kevin Xi的方法沒問題。你也可以的NSLog輸出AppDelegate中的didFinishLaunchingWithOptions方法使用下面的代碼重定向到文件:

NSArray *allPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [allPaths objectAtIndex:0]; 
NSString *pathForLog = [documentsDirectory stringByAppendingPathComponent:@"log.txt"]; 
freopen([pathForLog cStringUsingEncoding:NSASCIIStringEncoding],"a+", stderr); 
0

這真是太可惜了,蘋果不爲Xcode中提供無線網絡連接調試,但對於你的問題,答案是肯定的,你絕對可以重定向的NSLog到一個日誌文件,你可以試試這個方法:

// this will redirect all NSLog in your project, add it to PCH file. 
#define NSLog(args...) writeLog(__PRETTY_FUNCTION__, __LINE__, args) 

void writeLog(const char *function, int lineNumber, NSString *format, ...) { 

// basic log content. 
va_list ap; 
va_start (ap, format); 
NSString *msg = [[NSString alloc] initWithFormat:format arguments:ap]; 
va_end (ap); 

// add function name, and line number. 
NSString *log = [NSString stringWithFormat:@"%s line %d $ %@", function, lineNumber, msg]; 

// add your own code to write `log` into a text file. 
.... 
} 

注意:如果您使用的某些庫也將日誌寫入控制檯,則此宏不會將這些日誌重定向到日誌文件,它只會在您自己的源文件中使用NSLog

0

據我所知,這是不可能的。

您最終可以使用免費的優秀解決方案,如bugfender,這將允許您遠程獲取NSLog記錄的數據。這可以幫助你。

+1

它不可能寫一些東西到文本文件?我非常肯定它是。 –

+0

真的,我個人對這種情況的體驗是使用非常容易設置和使用的bugfender環境。它可以讓你在互聯網上獲得你所有的NSLog,並且當你不能使用調試器時監視/跟蹤你想要的任何東西。希望你成功。 –

1

您可以使用PonyDebugger

我一直在使用它來調試網絡和CoreData資源,但它也允許用PDLog記錄到控制檯。

PonyDebugger是一個遠程調試工具集。它是一個客戶端庫和網關服務器組合,它使用瀏覽器上的Chrome開發人員工具調試應用程序的網絡流量和受管對象上下文。

一些建議:

  • 它在Safari工作好於Chrome瀏覽器。
  • 根據需要查看回購問題以使其在您的OSX版本中可用。我在El Capitan工作。
  • 自動連接並沒有爲我工作,請嘗試使用,而不是本地IP網關地址:
    • 例如[debugger connectToURL:[NSURL URLWithString:@"ws://192.168.0.12:9000/device"]];
相關問題