【问题标题】:importing private frameworks in Xcode在 Xcode 中导入私有框架
【发布时间】:2011-05-11 12:08:06
【问题描述】:

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

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

我要使用的功能在'SpringBoard'中

所以我在那个 github 存储库中下载了“SpringBoard”文件夹。 并在“SpringBoard”中创建了一个名为“Headers”的子目录 并将所有头文件放在该文件夹中。

并将“SpringBoard”重命名为“SpringBoard.framework”并将其复制到 /Developer/Platforms/(iPhoneOS_and_iPhoneSimulator)/sdks/System/library/Frameworks 文件夹(抱歉,我无法正确回忆完整路径)

然后我回到 xcode 并右键单击框架 -> 添加现有框架 -> 其他 -> 我选择了“SpringBoard.framework”文件夹并单击添加。

我构建了这个项目并得到了一个错误

'ld : 找不到框架 SpringBoard'

我导入的框架确实出现在 Xcode 上,我可以在其中看到头文件。 但是当我构建它时,我得到了那个错误。

我做错了什么?

【问题讨论】:

    标签: iphone xcode frameworks sdk private


    【解决方案1】:

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

    否则,这可以帮助您: http://www.codethecode.com/projects/class-dump/

    【讨论】:

    • SpringBoard 是一项核心服务,转储标头将允许您挂钩某些低级功能,例如通话状态栏和许多其他简洁的东西。
    【解决方案2】:

    将所有私有标头放在一个目录中,例如:/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 作为文件夹扩展名,并将该框架导入到您的项目中。
    • 它没有显示在我的代码中。如果在我的应用程序中使用复制跳板服务文件夹,我可以导入该 sprinboardservices.h 但是当我编译代码时它显示链接器错误。
    猜你喜欢
    • 2011-05-11
    • 1970-01-01
    • 2021-11-01
    • 2018-09-01
    • 2013-11-29
    • 1970-01-01
    • 2015-04-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多