我正在使用控制台调试iPhone 7
<private>
我想我的设备开发证书是在钥匙链-我是愚蠢的?如何在访问完整信息的情况下调试真实的iPhone?
6rqinv9w1#
详细信息来自Apple's Unified logging。如果调试消息是动态字符串,默认情况下将显示<private>。为了让数据打印出实际的字符串,在发送到日志记录时必须将字符串声明为public。例如,在Swift中,这将显示发送给记录器的文本,因为它是一个静态字符串:
public
static let logger = OSLog(subsystem: "com.company.myApp", category: "myCategory") os_log(logger, "Some text that will display correctly");
但是,这将显示Some string: <private>
Some string: <private>
os_log(logger, "Some string: %s", "text that will display <private>")
为了使文本按预期显示,需要使用public标记声明:
os_log(logger, "Some string: %{public}s", "text that will display as expected")
如果您只是查看第三方应用程序的日志,那么默认情况下您将无法查看数据。但是,有some that report可以使用log命令行实用程序查看编辑的数据:
log
sudo log config --mode "private_data:on"
据我所知,苹果没有记录这一点。Catalina请注意,上述未记录的开关随着 Catalina 的引入而被打破。但是,现在可以使用简单的签名配置文件来显示“私人”消息,如霍华德奥克利所述,here
oknwwptz2#
没有单一的设置,你可以改变iOS日志,因为有macOS。如果您运行的是iOS的beta版本,则私人日志信息似乎会被收集,因此这是一种选择。另一个选项是查看this page上是否有包含所需日志记录的概要文件。一旦你安装了相关的配置文件,你就会看到之前的<private>信息出现在iOS控制台日志中。在我的情况下,我能够使用“基带”配置文件,以启用来电显示日志,而工作的CallKit扩展。要禁用私人日志,您只需从设备上的常规设置中删除配置文件。
i7uq4tfw3#
您可以将其添加到Info.plist,以便在没有附加调试器时不编辑参数:
Info.plist
<key>OSLogPreferences</key> <dict> <key>your.subsystem.key.here</key> <dict> <key>your-category-here</key> <dict> <key>Enable-Private-Data</key> <true/> </dict> </dict> </dict>
3条答案
按热度按时间6rqinv9w1#
详细信息来自Apple's Unified logging。如果调试消息是动态字符串,默认情况下将显示
<private>
。为了让数据打印出实际的字符串,在发送到日志记录时必须将字符串声明为
public
。例如,在Swift中,这将显示发送给记录器的文本,因为它是一个静态字符串:但是,这将显示
Some string: <private>
为了使文本按预期显示,需要使用
public
标记声明:如果您只是查看第三方应用程序的日志,那么默认情况下您将无法查看数据。
但是,有some that report可以使用
log
命令行实用程序查看编辑的数据:据我所知,苹果没有记录这一点。
Catalina
请注意,上述未记录的开关随着 Catalina 的引入而被打破。但是,现在可以使用简单的签名配置文件来显示“私人”消息,如霍华德奥克利所述,here
oknwwptz2#
没有单一的设置,你可以改变iOS日志,因为有macOS。
如果您运行的是iOS的beta版本,则私人日志信息似乎会被收集,因此这是一种选择。
另一个选项是查看this page上是否有包含所需日志记录的概要文件。
一旦你安装了相关的配置文件,你就会看到之前的
<private>
信息出现在iOS控制台日志中。在我的情况下,我能够使用“基带”配置文件,以启用来电显示日志,而工作的CallKit扩展。
要禁用私人日志,您只需从设备上的常规设置中删除配置文件。
i7uq4tfw3#
您可以将其添加到
Info.plist
,以便在没有附加调试器时不编辑参数: