处理cocoapods项目中的外部非cocoapods框架

时间:2013-01-08 13:31:06

标签: iphone objective-c ios cocoapods

我爱上了Cocoapods,我想用它来迁移我的所有项目。 在此之前,我有一些关于如何在我的项目中处理外部非cocoapods框架的问题。

1)假设我正在使用Cocoapods并且我只包含AFNetworking框架。 在某些时候,我需要使用一些CoreGraphic动画,我需要使用QuartzCore:AFNetworking不使用此框架,因此QuartzCore不包含在我的Pods项目中。 处理这种情况的最佳方法是什么?

更好的想法“我把所有框架放在我的Pods项目中,所以在我的”app项目中“我只有我的应用程序所需的代码”?如果是,怎么样?添加我的Pods.xconfig此代码

  

OTHER_LDFLAGS = -ObjC ...-framework QuartzCore

?还是有其他(更好的)方法?

或者更好地认为“这不是一个Pod,所以我在我的”应用程序项目“中添加框架,因为我以前一直在做”?

2)我有一个库(保存在我的HD中),它不在Cocoapods的主存储库中,并且没有Podspec文件:将它包含在我的项目中的最佳方法是什么?

  • 我为该库创建了podspec,并使用:local

  • 上的Podfile属性对其进行了关联
  • 我在“app project”中添加了该库,因为我一直在做

当然每种方式都可以正常工作,所以我不会问“如何添加外部框架”,我问的是最好的方法是什么:)

1 个答案:

答案 0 :(得分:4)

框架

CocoaPods尝试在可能的范围内将其文件与您的工作分开。这也是必需的,因为CocoaPods需要控制一些文件。例如,假设Pods.xcconfig位于CocoaPods控件下,并在每次安装期间重新创建它。换句话说,你对它所做的任何改变都会丢失。

因此,如果您需要一个框架,则应将其添加到您的应用项目中。原则上你应该这样做,即使一些Pod包含框架,因为它们可能会更新,删除依赖项,你的项目就会中断。

自定义库

如果您计划重新使用库,那么两种替代方案都可以使用,创建podspec将来可能会派上用场。您还可以创建自定义仓库(请参阅维基),这样您就不需要使用:local选项了。