2016-12-15 226 views
0

該應用程序使用構建爲動態框架的C++庫。我無法在iOS 10.x上運行的應用程序在設備控制檯(控制檯查看已部署應用程序的日誌,而不是xcode調試控制檯)中查看框架中的日誌。我可以看到在iOS 9.x上運行的同一個應用程序的日誌。如何查看由動態框架中使用的NSLog所打印的日誌?

我試圖在運行時用自定義記錄器使用宏替換NSLog。雖然它適用於應用程序代碼,但它不適用於庫框架內的代碼。有沒有一種方法可以替代NSLog使用一個適用於外部框架的宏,而無需修改庫代碼?

如果我必須絕對修改庫代碼以替換NSLog,那麼應該如何替換它,以便在設備控制檯上顯示已部署的應用程序?

回答

0

是否有一種方法可以使用一個適用於外部 框架的宏替代NSLog,而無需修改庫代碼?

我找不到任何方法來做到這一點,因爲它已經編譯好了。

如果我有絕對修改庫代碼替換NSLogs, 我應該將其替換它,所以它顯示了 部署應用程序的設備控制檯上?

if ([[[UIDevice currentDevice] systemVersion] compare:10.0 options:NSNumericSearch] != NSOrderedAscending) { 
    os_log(OS_LOG_DEFAULT, formattedMsg); 
} else { 
    NSLog(@"%s", formattedMsg); 
} 

使用OS_LOG_DEFAULT,取得了原木的知名度一樣的系統日誌。希望這可以幫助。

0

我是一個名爲Bugfender的產品的聯合創始人,可能會幫助你,我們有一個SDK提供了一個函數來替換NSLog,並且它發送日誌到我們的服務器。

我們有一個此SDK的動態框架版本,您可能可以將其集成到您的庫中以獲取它的日誌。

我們的SDK將在開發過程中或應用程序發佈到商店時運行。