我有一个有趣的问题。我收到的崩溃日志引用了我的应用程序中名为 NRURLProtocol 的类(特别是在文件 NRURLProtocol.m 中),根据崩溃日志,该日志存在于我的应用程序中,而不是存在于 iOS 框架中。但是,我的项目中没有 NRURLProtocol 类,也没有任何 NRURLProtocol.m 文件。通过 Google 或 StackOverflow 进行在线搜索,实际上发现 0 个对此类的引用。
如果我在我的二进制文件上运行以下命令:
otool -o binary | grep NR
我发现各种带有 NR 前缀的类,包括 NRURLProtocol。但是,当我使用相同的otool
对我的二进制文件链接的所有静态库执行命令,我什么也没找到。我在我的驱动器上找不到名为 NRURLProtocol.m 的文件。
我对如何追踪这一点感到有点茫然。这个类不仅存在于我的二进制文件中,而且还被某些东西作为 URL 协议加载。所以看起来我正在使用的一些第三方库包含它,尽管otool
什么也没找到。
以下是我的二进制文件中出现的带有 NR 前缀的类的完整列表:
NRASIRequestTracker
NRASISupport
NRErrorData
NRLogger
NRNonARCMethods
NRSecureUDID
NRStats
NRStatsEngine
NRSupportability
NRTransactionData
NRURLProtocol
NRNSURLSupport
以下是我链接到的所有 3rd 方静态库:
Facebook SDK
HockeyApp SDK
ZipKit
Mixberry SDK (though not actually using it anywhere, currently disabled)
Flurry SDK
Google AdMob SDK
HelpShift SDK
UrbanAirship SDK
libBass (audio library, doesn't contain Objective-C code)
EX2Kit (my own toolkit library, which doesn't contain this code)
有谁知道这些类来自哪里,或者我可以尝试哪些其他命令?