XCode - 在Cocoapods项目中添加外部静态库

时间:2015-08-30 16:15:06

标签: ios xcode cocoapods

我正在尝试使用Cocoapods来了解它的设置/配置,以便一切顺利。在做那个特例的时候困扰着我。

基本上,使用外部库的非cocoapods 项目与使用外部库的 cocoapods 项目之间存在不同的行为。

可以在GitHub上找到项目和外部库。

1)外部库libImageFilters.a使用CoreMotion框架。所以当这个库将被包含在任何应用程序中时,该应用程序将包含CoreMotion框架或使用clang模块,这样只需添加 @import CoreMotion; 框架即可。我更喜欢第二种方法,并在头文件(ImageFilters.h)中添加以下行

#if __has_feature(modules)
@import CoreMotion;
#endif

2)AppWithoutPods应用程序只需添加此外部lib和头文件。进行以下设置

Enable Modules = YES
Link Frameworks Automatically = YES

构建应用程序,一切都很好,因为头文件包含了CoreMotion Framework。

3)AppWithPods应用程序使用AFNetworking作为pod。因此,安装pod并打开工作区。使用上面的clang模块设置构建时,一切都很好。现在,如果我添加外部lib和头文件。构建失败,链接器错误表明CMMotionManager是从libImageFilters引用的。当明确包含CoreMotion时,它构建得很好。

这就是混乱的地方。启用模块并自动链接框架。基本上除了cocoapods之外,两个应用程序都没有什么不同。

我检查了两个项目的所有设置,没有什么不同,那么为什么构建失败?有人能帮助我理解这个吗?

0 个答案:

没有答案