在Xcode中导入私有框架

7

我是一名新手iPhone程序员,我想使用私有框架中的一些功能。

https://github.com/kennytm/iphone-private-frameworks

我想使用的函数在'SpringBoard'中。因此,我在该GitHub存储库中下载了'SpringBoard'文件夹,并在其中创建了一个名为“Headers”的子目录,将所有标头文件放入该文件夹中。然后,我将'SpringBoard'重命名为'SpringBoard.framework'并将其复制到/Developer/Platforms/(iPhoneOS_and_iPhoneSimulator)/sdks/System/library/Frameworks文件夹中(抱歉,我无法正确回忆完整路径)。接着,我返回Xcode,右键单击Frameworks->添加现有框架->其他->我选择了'SpringBoard.framework'文件夹并单击添加。最后,我构建项目,但是出现了错误'ld: 找不到SpringBoard框架'。我的导入框架出现在Xcode上,我可以看到其中的标头文件,但在构建时却出现了错误。我做错了什么?
2个回答

11

将所有私有头文件放在一个目录中,比如:/User/Name/Headers/ 然后设置 USER_HEADER_SEARCH_PATHS = "/User/Name/Headers/" 并确保 ALWAYS_SEARCH_USER_PATHS = YES

此外,SpringBoard.framework 不是做这件事的方法。只需将名为 SpringBoard 的文件夹放在上面的 Headers 文件夹中,确保头文件直接位于其中。例如: SpringBoard/SBAlert.h

/*  SpringBoard is not a framework.  */

请注意,您不需要将SpringBoard文件夹添加到您的项目中,只要您正确设置了上述标头,它们应该在您开始输入时出现。


同样的方法也适用于其他的PrivateFrameworks。不过唯一的区别是你需要使用“.framework”作为文件夹扩展名,并将该框架导入到你的项目中。 - WrightsCS
我的代码里没显示出来。如果我将Springboard Services文件夹复制到我的应用程序中,那么我就能够导入SpringboardServices.h了,但是当我编译代码时,它会显示链接器错误。 - ManiaChamp

-2

我不确定这是否有效,但是我有一个建议: 我认为Spring Board框架应该已经在你链接的UIKit框架中了,所以只需将头文件添加到你的项目中,它就应该可以工作。

否则,这可能会对你有所帮助: http://www.codethecode.com/projects/class-dump/


SpringBoard是核心服务,转储头文件将允许您钩入某些低级函数,如In-Call状态栏和许多其他有趣的事情。 - WrightsCS

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接