如何在 iOS 10 下查看我的 SDK 项目中的 NSLog

Posted

技术标签:

【中文标题】如何在 iOS 10 下查看我的 SDK 项目中的 NSLog【英文标题】:how to see NSLog in my SDK project under iOS 10 【发布时间】:2017-01-05 18:56:28 【问题描述】:

我有一个 SDK 项目,它将编译和构建一个框架。在这个项目中,我的人 NSLog 显示在那里。我有另一个框架测试应用程序来使用这个框架来完成我的任务。升级到 ios 10 和 Xcode 8 后,我注意到所有的 NSLog 都消失了。我在任何地方都找不到它。

我搜索并找到了这个答案:iOS 10 doesn't print NSLogs,我尝试了我的 SDK 项目和我的框架测试应用程序,添加了 OS_ACTIVITY_MODE “禁用”,但是它仍然没有显示 NSLog .

更新:我还有一台设备是 iOS 9,我试了一下,NSLogs 仍然显示在设备控制台中。使用 Mac 的控制台应用程序,我还可以查看自己的日志。

这是一个 MFI 项目,因此我无法直接调试此项目,因为照明电缆始终与我的硬件连接。我只能使用日志来查看发生了什么。

【问题讨论】:

如果在真实设备上运行,您应该删除 disabled,但保留OS_ACTIVITY_MODE(选中)。 你到底发生了什么? OS_ACTIVITY_MODE 设置为disable 删除在项目运行期间打印的操作系统活动状态。 目前我正在使用另一个库github.com/CocoaLumberjack/CocoaLumberjack 来查看控制台、文件或系统日志中的所有日志。 【参考方案1】:

OS_ACTIVITY_MODE 设置为disable 删除在项目运行期间打印的操作系统活动状态。 OS_ACTIVITY_MODE 仅在 x-Code 8.0 中打印,但是当您将 x-code8.0 升级到 8.1 时,您会发现它不会打印任何操作系统控制台。但在整个过程中,我发现NSLog 工作正常。

为了您的确认,我只是更新了我的旧项目并将其运行到x-code 8.1。输出如下图

环境变量

Nslog 代码

控制台打印

建议

我已经在多个项目中以多种样式检查了您的问题,但没有发现任何问题。所以我只是建议你

    更新您的 x 代码 或 在完全删除之前的x-code 后重新安装x-code

因为如果是x-code 错误,我在每次实验中也必须面对同样的问题。

如果你还有什么疑问可以问。

【讨论】:

【参考方案2】:

Apple 对 NSLog 的工作方式进行了一些更改,我可能无法获得它们。

我的建议是您将 NSLog 更改为在不使用 NSLog 的情况下打印到输出控制台的内容。

我是一个名为Bugfender 的产品的联合创始人,它可能会对您有所帮助,我们所做的是我们提供了一个 BFLog 功能,它将日志打印到控制台并将它们上传到我们的服务器,所以您可以随时查看日志,无需将设备连接到您的计算机。

我们的产品唯一的问题是它不是实时的,但通常会有几秒钟的延迟。我们的一些客户使用它来调试应用程序,而不是使用 XCode 控制台。

【讨论】:

【参考方案3】:

如果你设置了这个,你在设备上看不到任何日志,但你可以在模拟器中看到。

【讨论】:

正如我在问题中所描述的,这对我不起作用。

以上是关于如何在 iOS 10 下查看我的 SDK 项目中的 NSLog的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS SDK 中的选定图像区域上应用滤镜/颜色

如何让我的 iOS4.2 SDK 开发代码与 iOS3.1.3 一起工作?

如何在我的 C++ 项目中链接本地安装的 SDK 的静态库?

在Win10以及SDK为33的环境下——小米便签项目的搭建

Xcode 错误:SDK“iOS 10.0”中的产品类型“应用程序”需要代码签名

如何使用 XCode 4 + 基本 SDK 4.3 为 iOS 4.0 设备构建?