Target 会覆盖“OTHER_SWIFT_FLAGS”构建设置

Posted

技术标签:

【中文标题】Target 会覆盖“OTHER_SWIFT_FLAGS”构建设置【英文标题】:Target overrides the `OTHER_SWIFT_FLAGS` build setting 【发布时间】:2015-09-20 19:39:42 【问题描述】:

这是我的 pod 文件:

platform :ios, '8.0'
use_frameworks!

target 'TestApp' do
  ...
end

pod install之后出现以下错误:

[!] The `TestApp [Debug]` target overrides the `OTHER_SWIFT_FLAGS` build setting defined in `Pods/Target Support Files/Pods-TestApp/Pods-TestApp.debug.xcconfig'. This can lead to problems with the CocoaPods installation
    - Use the `$(inherited)` flag, or
    - Remove the build settings from the target.

[!] The `TestApp [Release]` target overrides the `OTHER_SWIFT_FLAGS` build setting defined in `Pods/Target Support Files/Pods-TestApp/Pods-TestApp.release.xcconfig'. This can lead to problems with the CocoaPods installation
    - Use the `$(inherited)` flag, or
    - Remove the build settings from the target. 

我该如何解决这个问题?

【问题讨论】:

你有什么问题?您是否尝试按照它给您的说明进行操作? 我不知道在这里做什么。你能帮忙吗? 【参考方案1】:

    选择您的项目

    切换到项目的Build Settings 面板。

    搜索Other Swift Flags

    现在您可以看到Other Swift Flags 的值以BOLD

    显示

BOLD也意味着这个值被覆盖了)

作为终端显示的警告:

使用$(inherited) 标志,或 - 从目标中删除构建设置。

你可以通过以下两种方式让编译器满意:

选项1:

双击Other Swift Flags值区域,将值替换为$(inherited)

选项 2:

选择Other Swift Flags 面板使其突出显示。然后按键盘上的Delete按钮,现在字体将变为THIN,而不是BOLD

【讨论】:

也适用于ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES 设置。 也适用于Use Legacy Swift Language Version :) 好吧,我会说这解决了这个特定的警告,但如果(现已删除)swift标志已被使用,可能会产生许多其他问题。只是盲目地删除它们并不是处理此问题的一般方法。如果这些值用于条件编译(如 DEBUG 或 RELEASE),则可以将这些值移至“活动编译条件”构建设置。 第三种选择是添加 $(inherited) 标志作为附加标志,而不是在需要维护现有自定义标志时替换, 这个:(双击 Other Swift Flags 值区域并用 $(inherited) 替换该值) 当我从 XCode 3 转换到 Xcode 4.2 时遇到问题时,它对我有用在使用 cocoapods 的项目中【参考方案2】:

我也有同样的问题,我必须使用多个目标和 cocoapods

    分期/开发 生产

您可以在目标中添加多个 swift 标志 --> 构建设置 ---> 其他 Swift 标志。

【讨论】:

以上是关于Target 会覆盖“OTHER_SWIFT_FLAGS”构建设置的主要内容,如果未能解决你的问题,请参考以下文章

矩形覆盖-剑指offer

10.矩形覆盖

牛客(11)矩形覆盖

我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 比如n=3时,2*3的矩形块有3种覆盖方法:

HUST 1027 Enemy Target!

矩形覆盖