我爱上了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”中添加了该库,因为我一直在做
当然每种方式都可以正常工作,所以我不会问“如何添加外部框架”,我问的是最好的方法是什么:)
答案 0 :(得分:4)
CocoaPods尝试在可能的范围内将其文件与您的工作分开。这也是必需的,因为CocoaPods需要控制一些文件。例如,假设Pods.xcconfig
位于CocoaPods控件下,并在每次安装期间重新创建它。换句话说,你对它所做的任何改变都会丢失。
因此,如果您需要一个框架,则应将其添加到您的应用项目中。原则上你应该这样做,即使一些Pod包含框架,因为它们可能会更新,删除依赖项,你的项目就会中断。
如果您计划重新使用库,那么两种替代方案都可以使用,创建podspec
将来可能会派上用场。您还可以创建自定义仓库(请参阅维基),这样您就不需要使用:local
选项了。