7

我有一个有趣的问题。我在我的应用程序(特别是在文件 NRURLProtocol.m 中)引用了一个名为 NRURLProtocol 的类的崩溃日志,根据崩溃日志存在于我的应用程序中,而不是在 iOS 框架中。但是,我的项目中没有 NRURLProtocol 类,也没有任何 NRURLProtocol.m 文件。通过 Google 或 StackOverflow 在线搜索会发现对此类的 0 引用。

如果我在我的二进制文件上运行以下命令:

otool -o binary | grep NR

我发现各种带有 NR 前缀的类,包括 NRURLProtocol。但是,当我在otool我的二进制链接的所有静态库上使用相同的命令时,我什么也没找到。我在我的驱动器上找不到名为 NRURLProtocol.m 的文件。

我对如何追踪它有点茫然。这个类不仅存在于我的二进制文件中,而且它被某些东西作为 URL 协议加载。所以看起来我正在使用的一些 3rd 方库包含它,即使otool什么也没找到。

这是我的二进制文件中出现的带有 NR 前缀的类的完整列表:

NRASIRequestTracker
NRASISupport
NRErrorData
NRLogger
NRNonARCMethods
NRSecureUDID
NRStats
NRStatsEngine
NRSupportability
NRTransactionData
NRURLProtocol
NRNSURLSupport

以下是我链接到的所有第 3 方静态库:

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)

有没有人知道这些类的来源,或者我可以尝试哪些其他命令?

4

1 回答 1

2

找到了!不知何故,我错过了我们也使用 NewRelic 的 SDK 的事实。考虑到 NR 前缀,这应该是显而易见的。otool很快就表明有问题的班级在那里。

于 2013-10-18T21:34:22.717 回答