我已经将SpatialIite合并到一个Xcode项目中,该项目使用了来自projproject .4的头文件,只有一个头文件。两者都是Xcode项目,都有静态目标。

我试图从git子模块迁移到Cocoapods。由于静态目标似乎很难与Cocoapods一起使用,我只想以通常的方式构建项目。我为项目4做了podspec。在为SpatialLite编写podfile后,我得到了警告:

[!] The target `SpatialiteIOS [Debug]` overrides the `OTHER_LDFLAGS` build setting defined in `Pods/Pods.xcconfig'.
    - Use the `$(inherited)` flag, or
    - Remove the build settings from the target.

[!] The target `SpatialiteIOS [Debug]` overrides the `HEADER_SEARCH_PATHS` build setting defined in `Pods/Pods.xcconfig'.
    - Use the `$(inherited)` flag, or
    - Remove the build settings from the target.

[!] The target `SpatialiteIOS [Debug - Release]` overrides the `OTHER_LDFLAGS` build setting defined in `Pods/Pods.xcconfig'.
    - Use the `$(inherited)` flag, or
    - Remove the build settings from the target.

[!] The target `SpatialiteIOS [Debug - Release]` overrides the `HEADER_SEARCH_PATHS` build setting defined in `Pods/Pods.xcconfig'.
    - Use the `$(inherited)` flag, or
    - Remove the build settings from the target.

我读了这个问题,但我对警告是什么意思以及我能做些什么来解决它一无所知。

另外一个问题是,当我单独打开工作区以及打开SpatiaLite项目时,两者都是针对Mac OSX 64的,而它应该是一个iOS项目。我的播客文件上写着“平台:ios”。


当前回答

如果Xcode在链接时报错,例如Library not found for -lPods,它不会检测隐式依赖:

进入“产品>编辑方案” 点击构建 添加Pods静态库 清理并重新建造

其他回答

Xcode截图

Ankish Jain给出了对我有用的答案。这里是要做什么的截图,因为我花了一点时间来找出到底要做什么。

在我的情况下,我需要添加$(继承)到我的“其他链接器标志”,因为这是什么显示为覆盖终端。

您的构建设置和Cocoapods希望的默认构建设置之间存在冲突。要查看Cocoapods的构建设置,请查看项目中的Pods/Target Support Files/Pods-${PROJECTNAME}/中的.xcconfig文件。对我来说,这个文件包含:

GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/Commando"
OTHER_LDFLAGS = -ObjC -framework Foundation -framework QuartzCore -framework UIKit
PODS_ROOT = ${SRCROOT}/Pods

如果您对Cocoapods的设置满意,那么请转到项目的Build settings,找到合适的设置并点击Delete键。这将使用Cocoapods的设置。

另一方面,如果您有一个需要使用的自定义设置,则向该设置添加$(inherited)。

我添加了$(inherited),但我的项目仍然没有编译。对我来说,问题是标记“仅为活动架构构建”,我必须将其设置为YES。

下面的第一行链接拯救了我:

要向项目构建设置中的选项添加值,请在值列表前面加上$(inherited)。

https://github.com/CocoaPods/CocoaPods/wiki/Creating-a-project-that-uses-CocoaPods#faq

另外,不要忘记在pod文件的开头插入这一行:

platform :iOS, '5.0'

不要忘记在pod文件的开头插入(或取消命令)这一行:

platform :iOS, '9.0'

这救了我