如何在黑盒 Mac 应用程序使用的 Objc 框架中设置断点?

How to set breakpoints in a Objc framework that is used by a blackbox Mac application?

我想在从我的 Xcode 项目编译的 Objc framework 中设置断点,并让它打破依赖于我构建的框架的 Mac 应用程序。

比如Application"Blackbox"会用到Framework"A",而我只能访问"A"的源代码[=14] =]

因此我无法在框架项目中设置断点,只能将它们更改为用户,所有 Xcode 项目都可以访问。或者简单地合并这两个项目,因为我必须访问 "Blackbox".

如何让应用程序跳转到我在框架中设置的断点?

I want to set breakpoints in the Objc framework that is compiled from my Xcode project, and let it break the Mac application that is dependent on the framework I build.

断点由调试器管理;它们没有编译到您的框架中。您需要做的是首先设置您的 Mac 以便您可以将调试器 lldb 附加到您正在尝试处理的应用程序。为此,您可能需要先 so that the operating system won't block you from debugging the app. Then you'll need to a copy of the symbol file (it'll end in .dsym) that you built when you built the framework, and you'll need to . The blog post Attaching sources to iOS/macOS binaries compiled on another machine 可能会帮助您完成这些步骤。

完成所有这些后,您应该能够在框架中的特定方法上设置断点,观察在逐步执行框架时会发生什么,等等。您将无法做的事情,除非您还可以获取应用程序本身的符号文件,就是在方法调用您的框架时查看应用程序的源代码 return 到应用程序。