如何查看由动态框架中使用的NSLog所打印的日志?

问题描述:

该应用程序使用构建为动态框架的C++库。我无法在iOS 10.x上运行的应用程序在设备控制台(控制台查看已部署应用程序的日志,而不是xcode调试控制台)中查看框架中的日志。我可以看到在iOS 9.x上运行的同一个应用程序的日志。如何查看由动态框架中使用的NSLog所打印的日志?

我试图在运行时用自定义记录器使用宏替换NSLog。虽然它适用于应用程序代码,但它不适用于库框架内的代码。有没有一种方法可以替代NSLog使用一个适用于外部框架的宏,而无需修改库代码?

如果我必须绝对修改库代码以替换NSLog,那么应该如何替换它,以便在设备控制台上显示已部署的应用程序?

是否有一种方法可以使用一个适用于外部 框架的宏替代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,取得了原木的知名度一样的系统日志。希望这可以帮助。

我是一个名为Bugfender的产品的联合创始人,可能会帮助你,我们有一个SDK提供了一个函数来替换NSLog,并且它发送日志到我们的服务器。

我们有一个此SDK的动态框架版本,您可能可以将其集成到您的库中以获取它的日志。

我们的SDK将在开发过程中或应用程序发布到商店时运行。