我已经将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”。


当前回答

对我来说问题出在我的目标测试上。我已经在我的主应用程序目标中有$(继承)标志。

我把它添加到MyAppTests其他链接器标志。之后,当我运行pod安装时,警告信息消失了。

其他回答

Xcode截图

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

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

这在大多数情况下都是有效的:

转到你的目标构建设置->其他链接标志->双击。将$(inherited)添加到新行。

如果你对“…目标覆盖GCC_PREPROCESSOR_DEFINITIONS构建设置定义在…"然后你必须添加$(继承)到你的目标构建设置->预处理器宏

对我来说问题出在我的目标测试上。我已经在我的主应用程序目标中有$(继承)标志。

我把它添加到MyAppTests其他链接器标志。之后,当我运行pod安装时,警告信息消失了。

每当我向podfile中添加一个pod时,都会发生这种情况。

我一直在试着找出问题所在,但我只是一次又一次地在兜圈子!

错误消息范围,但是每次修复的方法都是相同的!

注释掉(#)podfile中的所有pod,并在终端中运行pod install。

然后……

取消pod文件中的所有pod的注释,并再次运行pod install。

这招每次都管用!

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

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