我在日志中收到一条消息说
'bundleNamePlaceholder'[8424:100146] [general] 'NSKeyedUnarchiveFromData' 不应用于取消归档,并将在未来版本中删除
我不清楚该消息,但我假设它可能与 CoreData 对象或其内容有关
有没有办法捕捉抛出此消息的原因或可能导致此消息的原因?
我在日志中收到一条消息说
'bundleNamePlaceholder'[8424:100146] [general] 'NSKeyedUnarchiveFromData' 不应用于取消归档,并将在未来版本中删除
我不清楚该消息,但我假设它可能与 CoreData 对象或其内容有关
有没有办法捕捉抛出此消息的原因或可能导致此消息的原因?
苹果会NSKeyedUnarchiveFromData
在某个时候删除,因为默认情况下它不安全。如果您使用NSKeyedUnarchiveFromData
coredata 存储可转换的值,它将变得不可读。
https://www.kairadiagne.com/2020/01/13/nssecurecoding-and-transformable-properties-in-core-data.html
要找出导致这些日志消息的原因,请尝试为
+[NSKeyedUnarchiver unarchiveObjectWithData:]
,
+[NSKeyedUnarchiver unarchiveTopLevelObjectWithData:error:]
, 和
+[NSKeyedUnarchiver unarchiveObjectWithFile:]
这帮助我找到了罪魁祸首。
通常这与核心数据可转换属性有关,但在我的情况下,这也是由一个外部库引起的,该库NSValueTransformer.valueTransformerNames
用于迭代运行时可用的所有值转换器类。这也导致了日志中的相同错误,并且此处其他答案中给出的符号断点没有捕获它们。因此,如果您找不到拥有此日志的原因,您可能还想NSValueTransformer
在代码中搜索并检查某处是否没有类似的问题。
对我来说,问题来自 GoogleAnalytics 框架,多亏了@Lutz,我才能弄清楚。对于那些面临 GA 问题的人,请使用更新的 sdk,这个问题似乎已经解决了 GA SDK