如何查看由动态框架中使用的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将在开发过程中或应用程序发布到商店时运行。