ターゲット…は、 `Pods / Pods.xcconfigで定義された` OTHER_LDFLAGS`ビルド設定をオーバーライドします


237

SpatialIiteからのヘッダーファイルをProj.41つだけ使用するXcodeプロジェクトに組み込みました。どちらもXcodeプロジェクトであり、静的なターゲットがあります。

gitサブモジュールからCocoapodsに移行しようとしています。静的なターゲットはCocoapodで使用するのは難しいようですので、通常の方法でプロジェクトをビルドしたいだけです。のpodspecを作成しましたProj.4。podfileを書き込んだ後SpatialLite、警告が表示されました:

[!] 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プロジェクトを単独で開くと、iOSプロジェクトであると想定されている場合、両方がMac OSX 64を対象としています。私のpodfileは「platform:ios」と言っています。


2020-この厄介な問題に苦しんでいる人のために。それは本当に(驚き!:))Facebookによってのみ引き起こされます。ここで説明したように、firebase.google.com / docs / auth / ios / firebaseui 「必要に応じて、使用するAuthコンポーネントとプロバイダーのみを追加できます...」 facebookオプションを削除すると、問題はありません。 。:/
Fattie

回答:


543

これは間違いなくほとんどの場合うまくいきます:

ターゲットのビルド設定に移動します->他のリンカーフラグ->ダブルクリックします。$(inherited)新しい行に追加します。

「...ターゲットが...で定義されたGCC_PREPROCESSOR_DEFINITIONSビルド設定をオーバーライドする」に問題がある場合は、ターゲットのビルド設定に$(inherited)を追加する必要があります->プリプロセッサマクロ


29
私はこの答えを拡張します。「...ターゲットが...でGCC_PREPROCESSOR_DEFINITIONS定義されたビルド設定をオーバーライドする」に問題がある場合、$(継承)をターゲットのビルド設定に追加する必要があります->プリプロセッサマクロ
Libor Zapletal

1
「...ターゲットがINSERT_YOUR_MISSING_DEFINITION ...をオーバーライドする」と思われるので、それに$(inherited)を追加する必要があります。奇妙なことに、私のxcodeはデフォルトで$(inherited)を少しかすかに見せていました。同じことを編集して単純に再入力しました。エラーは消えた..
joe

3
@joeまだ機能していません。これらの提案をすべて試しましたが、pod installを再実行すると、エラーが解決しません。他のリンカーフラグとプリプロセッサマクロの両方に変更を加えました。どちらの場合も、他のリンカーフラグとプリプロセッサマクロの各行をダブルクリックするまで、何も表示されません。次に、$(inherited)が追加されたことがわかります。削除して再読み込みしてみました。xcodeを閉じて、もう一度開いてみました。pod installと入力しても、エラーメッセージは修正されません。
JeffB6688 2017

1
@msmq久しぶりですが、試してみてうまくいった回避策を覚えていますか?$(inherited)すでにトップラインにありますが、私にとってはうまく
いき

1
ポッドインストールが同じエラーをスローするまで追加しました。
rohitwtbs

75

ビルド設定と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の設定に満足している場合は、プロジェクトのビルド設定に移動し、適切な設定を見つけてDeleteキーを押します。これは、Cocoapodsの設定を使用します。

一方、使用する必要があるカスタム設定がある場合は、その設定に$(inherited)を追加します。


私にもこの問題があり、-ObjCを削除して、この問題を修正しました。しかし、プロジェクトをビルドしようとすると、ターゲット固有のポッドライブラリが見つからないことを示すエラーが表示されます:「ld:-lPods-MyProjectのライブラリが見つかりません」。あなたは似たようなものを見ましたか?
ロデリックキャンベル2013

3
私は再びこれに遭遇しました。$(inherited)の意味がわかりません。どこに追加しますか?
ハギー、2013年

@RodericCampbellプロジェクトから-ObjCを削除しても問題なく機能し、エラーは表示されません。
ハギー、2013年

1
うーん、カテゴリを取得したので、実行時に-ObjCフラグが必要です。
ハギー、2013年

3
OTHER_LDFLAGS =その他のリンクされたフラグ、HEADER_SEARCH_PATHS =ヘッダー検索パス、GCC_PREPROCESSOR_DEFINITIONS =プリプロセッサマクロ。@kraftydevil、どの設定を削除しようとしていますか?
ファットマン

30

私はターミナルでポッドコマンドのこれらの3つのエラーを見ました

pod install

[!] MY_APP [デバッグ/リリース]ターゲットはHEADER_SEARCH_PATHSをオーバーライドします...
[!] MY_APP [デバッグ/リリース]ターゲットはOTHER_LDFLAGSをオーバーライドします...
[!] MY_APP [デバッグ/リリース]ターゲットはGCC_PREPROCESSOR_DEFINITIONSをオーバーライドします。 。

これら3つのエラーはすべて、$(inherited)

  1. ヘッダー検索パス
  2. その他のリンカーフラグ
  3. プリプロセッサマクロ

プロジェクト- >ターゲット- > [ビルド設定

そして今、コマンドはエラーを出さずに実行されます

pod install

上のフラグを変更するだけOther Linker Flagsでは不十分な場合、上記はうまくいきました。
JaredH 2015

21

プロジェクトで、を見つけてTarget -> Build Settings -> Other Linker Flags選択しOther Linker Flagsdelete(Macキーボード)/ Backspace(通常のキーボード)を押して設定を復元します。わたしにはできる。

例:

ここに画像の説明を入力してください

ここに画像の説明を入力してください


1
他のリンカーフラグに既にある設定を削除できますか?または、それらを保持し、$(inherited)も追加しますか?
isJulian00 2018

20

を実行したときに同様の問題が発生しただけでpod install、次の警告/エラー(に関連CLANG_CXX_LIBRARY)が表示されました。

Cocoapodsからのエラー/警告

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

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

修正

  1. Projectを表示できるように選択してくださいBuild Settings
  2. あなたのTarget(のAppName下でTargets)を選択してください
  3. 検索しますC++ Standard Library(おそらくBOLDになります -これは上書きされることを意味します)。
  4. 行を選択し(青で強調表示されます)、⌘ + DELETE(コマンド+バックスペース)を押します。

その行は太字にならずpod install、実行すると警告/エラーが消えるはずです。


視覚教材

CLANG_CXX_LIBRARYエラー/ Cocoapodsでの警告


12

リンク時にXcodeが文句を言う場合、たとえば-lPodsのライブラリが見つからない場合、暗黙的な依存関係は検出されません。

(製品)>(スキームの編集)に移動します(ビルド)をクリックしますポッドスタティックライブラリを追加しますクリーンしてビルドし直します


私はあなたが提案した方法を試しましたが、ポッドファイルによって最近インストールされたフレームワークを示していません、リンカーフラグエラーを修正するためのさらなる提案。@Amit Saxena
Anilkumar iOS ReactNative 2017年

11

私にとっての問題は、ターゲットテストにありました。私はすでに持っていました$(inherited)私のメインアプリターゲットフラグがありました。

MyAppTestsのその他のリンカーフラグに追加しました。その後、私が実行しpod installたときに警告メッセージが消えました。 ここに画像の説明を入力してください



6

$(inherited)を追加しましたが、プロジェクトはまだコンパイルされていませんでした。私にとっての問題は、「アクティブアーキテクチャのみのビルド」のフラグだったので、それをYESに設定する必要がありました。


プロジェクトがコンパイルされている場合、警告を無視できますか?
isJulian00
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.