2015-11-17 17 views
2

我目前正在调查一个文件的存档期间崩溃,这个文件据说是通过NSKeyedArchiver存储的。崩溃日志包含该文件的前8个字节的四重奏(我只包括下面的前2个)。NSKeyedArchiver使用什么字符编码或文件格式?

Fatal Exception: NSInvalidArgumentException 
*** -[NSKeyedUnarchiver initForReadingWithData:]: incomprehensible archive (0xffffffa6, 0xffffff9e, ...) 

我一直无法使用ASCII,Base64,UTF8或UTF16将这些字节解码为任何有用内容。有谁知道什么样的文件格式和/或字符编码NSKeyedArchiver使用或如何我可以解码这些字节到人类可读的东西?

+0

也许你不能将它解码成任何明智的事实,正是因为它被破坏了。 – Avi

+0

@Avi是的,这可能是正确的。这很奇怪,文件写入的唯一方法是通过“NSKeyedArchiver” - 至少据我所知。因此,我希望有一种方法可以将档案手动解码为人类可读的内容。 – hennes

+0

它可能是一个二元plist。 – Avi

回答

2

键控档案以二进制形式存储。您可以使用命令行实用程序plutil来打印,验证或操作内容。

+0

谢谢。不幸的是,'plutil'命令似乎不能从文件的开头生成一个可读的格式。由于崩溃日志来自Fabric,因此我只有前几个字节。 – hennes

+0

这真的说它只是腐败,因此崩溃。可以肯定的是一种奇怪的情况。 – Avi

+0

自从我询问文件格式后,我会给你接受的答案。在这种情况下,'plutil'不能帮助我。不管怎么说,还是要谢谢你。 – hennes

相关问题