我试图了解如何在 Xcode 中使用私有框架。具体来说,我想从 MultitouchSupport-Framework 调用
MTDeviceCreateList()
来创建一个最小的工作示例。我创建了这个 Github-Repo 来分享我的尝试。
workingButUglyMain.m 使用动态链接并成功调用该函数,但我看到很多人编写自定义标头以使私有框架的函数无需复杂的链接即可访问。但我无法理解和复制它。我尝试使用 MultitouchSupport.h 创建这样的标头,并通过将其添加到框架并在 build-settings 中设置 Other Linker Flags 来链接框架。我还尝试使用 NSBundle 的 bundleWithPath()
进行动态加载。我总是收到 未定义符号:_MTDeviceCreateList 错误。该框架应存储在 /System/Library/PrivateFrameworks/MultitouchSupport。
以下是我使用的一些来源:
我解决了。我的第一个错误是没有正确添加框架依赖项。您需要添加整个文件夹,在我的例子中:/System/Library/PrivateFrameworks/MultitouchSupport.framework。第二个问题是,如果项目处于沙盒模式,它就不起作用。但可能是特定于用例的。