【问题标题】:How to access a third party framework from My.Framework?如何从 My.Framework 访问第三方框架?
【发布时间】:2017-02-23 15:53:56
【问题描述】:

了解我的问题的步骤:

1)我创建了一个框架(My.framework)

2) 将 My.framework 作为子项目添加到 MyApp.xcodeproj。

3) 然后我运行 cocoapod 以在 MyApp.xcodeproj 上添加 AFNetworking

4) 现在,我打开 MyApp.xcworkspace。

5) 尝试从 My.framework 中的类访问 AFNetworking 时。无法访问。

附:我不是在谈论“伞形框架”。 (伞形框架 是我们添加框架作为子项目框架的地方。)(更正我 如果我错了,请在这里)

我只想在 AFNetworking 不在 My.framework 之外时访问它

【问题讨论】:

  • 您将 AFNetworking 添加到您的应用程序,而不是您的框架。我认为这就是问题所在。
  • 但是,我需要在应用程序和 FW 中访问 AFN。
  • 如果我将 AFN 添加到 FW,那么 FW 将变为 workspace 。并且 WS 不能作为子项目添加到应用中。

标签: ios objective-c frameworks afnetworking afnetworking-3


【解决方案1】:

为您的框架添加一个 podspec,并包含必要的依赖项,例如 AFNetworking。

 pod spec create

然后将您的 podspec 包含在应用的 Podfile 中。

Ps:你的 podspec 不用发布,本地使用即可。

【讨论】:

  • 嗨,安迪,感谢您的光临。我在点击此命令时收到“[!] 未知命令:init”。
  • 是...pod spec create My?
  • @jeet.chanchawat 是的,对不起,它是create。这应该为您创建一个样板 pod 规范文件。如果您使用 Cocoapods,那么您最好也通过它们维护所有内容。当您必须链接您的框架时,Podspecs 非常适合描述复杂的依赖关系并简化外部事物。此外,CocoaPods 应该为您处理嵌入框架。
【解决方案2】:

就我而言,这是可行的。

在 Target-> Build Phase-> Copy Headers 中调整公共头文件。我们可以在这里设置头文件的可见性。

参考更多:https://stackoverflow.com/a/27638841/3901620

【讨论】:

    【解决方案3】:

    另一种方式

    只要你不使用 pod,就使用它。

    IN 目标 C

    1) 导入或简单地复制(拖放)AFNetworking 或您在项目中使用的任何其他类。

    2) 将其导入您使用的地方。

    现在你可以访问它了。

    在 Swift 中

    您只需在项目中导入或复制第三方类或框架,无需将其导入您使用的地方。

    【讨论】:

      猜你喜欢
      • 2023-03-30
      • 2013-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-20
      • 2014-06-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多