我在新项目中使用嵌入式框架来自定义视图,以利用Xcode 6中的新@IBDesignable内容,我想用Facebook的Pop来制作所述视图。我使用Cocoapods将Pop添加到项目中,但嵌入式框架无法访问这些文件('POP/pop.h' file not found
)。
我尝试将与Cocoapods相关的构建阶段从应用程序目标复制到自定义框架目标,但它们不能按原样运行。 的工作原理是直接将Pop文件夹复制到嵌入式框架中,但Xcode告诉我,我必须将所有尖括号<POP/pop.h>
更改为引号"POP/pop.h"
。我假设有一种更好的方式,而且我正在消隐。
答案 0 :(得分:51)
假设您的Podfile中使用的是link_with 'MyCustomFramework'
,其中“我的自定义框架”和#39;是您的嵌入式框架名称,并已运行pod install
。选择您的项目文件(右上角的蓝色),然后进入&#34; 构建设置&#34;。然后,找到&#39; 允许框架模块中的非模块化包含&#39;对于项目文件(蓝色)和自定义框架目标(例如,MyCustomFramework - 橙色&#34;饭盒案例&#34;图标),将其设置为是。
然后,您可以在主MyCustomFramework.h文件中包含可可豆荚。
然后只需导入&#39; @import MyCustomFramework;&#39;在您的应用程序目标中,您将获得其余的CocoaPods。 (例如,您可以访问来自ObjectiveSugar的每个人)。
是否应该执行此操作是一个单独的问题,但这允许您的自定义框架本身包含CocoaPods库,然后允许Application目标只包含您的自定义框架并获取所有CocoaPods。
对于多张图片感到抱歉,但我喜欢视觉效果。
答案 1 :(得分:3)
我猜你正在修改框架以使用Pop。在这种情况下,您还需要添加Pop标题&#39;框架的路径构建设置&#39;搜索标题路径。
但是如果您正在修改框架,您也可以为它创建一个podspec并让CocoaPods处理所有内容(并向创建者发送拉取请求?)。
至于赏金问题。
框架永远不应该嵌入其他库。例如,如果您想在库中使用AFNetworking:
然后它可以工作但你有复杂的安装说明,用户必须手动添加资源(如果有的话),很难控制用户添加的AFNetworking版本,并且大多数人永远不会升级你的框架,因为它可能会破坏他们的设置。通过创建podspec来支持CocoaPods的所有好理由(如果你真的需要,可以继续维护框架/静态库项目。)