为什么我们的CocoaPods目标的构建设置与实际项目目标设置不同?它不应该仅具有项目目标设置吗?当我们的项目被编译时,它是如何工作的;编译器会查看CocoaPods设置还是仅查看我们的项目目标设置?如果是这样,那么CocoaPods具有自己的构建设置的目的是什么?
答案 0 :(得分:2)
CocoaPods通常在iOS中作为框架构建,并且框架可以具有与主应用程序不同的设置,并且可以作为单独的捆绑包构建。每个编译单元(或多或少的“源文件”)也可以有自己的设置(至少在ObjC中;我从未在Swift中尝试过)。
有很多原因要为程序的不同部分(尤其是第三方代码)具有不同的编译设置。例如,如果您不打算调试该部分,则可能要编译具有更高优化级别的第三方代码并调试剥离。我个人关闭了第三方代码中的所有警告。
它不再那么普遍了,但是在ARC过渡期间,使用ARC编译某些程序而不用ARC编译程序非常普遍。随着Swift的发展,您应该期望将库用需要不同设置的源不兼容版本的Swift编写的库变得越来越普遍。