【问题标题】:Access static library embeded in iOS app from framework in the same app从同一应用程序中的框架访问嵌入在 iOS 应用程序中的静态库
【发布时间】:2017-08-15 17:46:36
【问题描述】:

是否可以通过添加到同一应用程序中的框架访问添加到 iOS 应用程序的静态库中的符号。

我正在尝试构建一个依赖于客户购买的第三方静态库的 ios 框架。所以客户将静态库添加到应用程序中。

但我的框架需要从应用中添加的静态库中读取符号。

任何指针将不胜感激。

-- 谢谢, 赛优素福

【问题讨论】:

    标签: ios frameworks static-libraries


    【解决方案1】:

    您应该将您的框架与该静态库链接以执行此操作。否则,您将无法访问该静态库的符号。因为它们嵌入在您客户的应用程序中。

    【讨论】:

    • 我认为如果用户在他们的应用程序中也有重复符号,链接会导致重复符号
    • 客户不需要将静态库链接到他们的应用程序。他们只需要链接到 U'suf 的框架,因为它已经包含了他们需要的符号。
    【解决方案2】:

    使用 'Cocoapods' 作为依赖管理器可以让你到达你想要的地方:

    例如 - 一个使用 Alamofire 网络框架的框架:

    1. 创建您的框架项目
    2. 使用 Cocoapods 并将 'pod 'Alamofire', '~> 4.0'' 添加到您的 podfile。
    3. 构建您的框架并将其添加到打算使用此框架的项目中。
    4. 在您的应用项目中,还将“pod 'Alamofire', '~> 4.0' 添加到您的 podfile 中

    就是这样。

    顺便说一句 - 如果您的应用项目不会将依赖框架添加到其 podfile 中,您将在构建应用时看到链接器错误,如下所示:

    "dyld:库未加载:@rpath/Alamofire.framework/Alamofire 引用自:/private/var/containers/Bundle/Application/8B381B5F-6B86-4CDD-8A49-E0CBF9C04786/test.app/Frameworks/MyFramework.framework/MyFramework 原因:找不到图片”

    希望这有帮助。

    【讨论】:

    • 如果第三方框架只能手动安装,还有其他办法吗?
    • 如果它是手动安装的,我想不出一个好的解决方案(但这只是我......也许我在这里遗漏了一些东西)。
    猜你喜欢
    • 1970-01-01
    • 2015-12-05
    • 2019-01-02
    • 1970-01-01
    • 1970-01-01
    • 2018-06-19
    • 1970-01-01
    • 2013-06-27
    • 1970-01-01
    相关资源
    最近更新 更多