我如何在embedded式框架中使用Cocoapods?

我在一个新的项目中使用了一个embedded式框架来处理我的自定义视图,以利用Xcode 6中新的@IBDesignable的东西,并且我想用Facebook的Pop来animation所有的视图。 我已经使用Cocoapods将Pop添加到项目中,但embedded式框架无法访问这些文件( 'POP/pop.h' file not found )。

我试图从应用程序目标复制Cocoapods相关的构build阶段到自定义框架目标,但他们不工作。 工作是直接将Pop文件夹复制到embedded式框架中,但是Xcode告诉我必须将所有尖括号<POP/pop.h>更改为引号"POP/pop.h" 。 我假设有一个更好的方法,我在这个空白。

假设在你的Podfile中,你正在使用link_with 'MyCustomFramework' ,其中'MyCustomFramework'是你的embedded式框架名,并且已经运行了pod install 。 select您的项目文件(右上angular的蓝色),然后进入“ 生成设置 ”。 然后,对于项目文件(蓝色)和自定义框架目标(例如MyCustomFramework – 橙色的“饭盒情况”图标),find“ 允许框架模块中非模块化包含 ”并将其设置为YES

设置非模块化包含的构建设置

然后你可以在你的主MyCustomFramework.h文件中包含cocoa豆荚的东西。 在CustomFramework中包含CocoaPods

然后只需导入'@import MyCustomFramework;' 在你的应用程序目标中,你将得到其余的CocoaPods。 (例如,显示你从ObjectiveSugar访问“每个”)。 将CustomFramework导入AppDelegate

不pipe你是否应该这样做是一个单独的问题,但是这允许你的自定义框架自己包含CocoaPods库,然后允许应用程序目标只包括你的自定义框架,并获得所有的CocoaPods。

对不起,对于多个图像,但我喜欢视觉。

我想你正在修改框架来使用Pop。 在这种情况下,您还需要将Pop标题的path添加到框架“构build设置”的search标题path中。

但是,如果你正在修改框架,你可以为它创build一个podspec ,让CocoaPods处理所有事情(并向创build者发送一个pull请求?)。


至于赏金问题。

框架不应该embedded其他库。 如果你想在你的库中使用AFNetworking:

  • 说明你自己的框架安装说明中需要AFNetworking。
  • 如果你分发二进制文件,你只需要在AFNetworking头文件本地构build。 用户在连接App时需要提供自己的AFNetworking。
  • 如果你使用你的框架来分发源代码(如果用户必须自己构build它),那么在你的安装步骤中要求在你的框架中设置AFNetworking头部path,然后把它设置为普通path,比如POD_ROOT等等。

然后,它可以工作,但是你有复杂的安装说明,用户必须手动添加资源(如果有的话),很难控制用户添加的AFNetworking版本,大多数永远不会升级你的框架,因为它可能会破坏他们的设置。 所有很好的理由通过创build一个podspec来支持CocoaPods(如果你真的想要维护框架/静态库项目)。