target은`Pods / Pods.xcconfig에 정의 된`OTHER_LDFLAGS` 빌드 설정보다 우선합니다.


237

SpatialIite헤더 Proj.4하나 의 헤더 파일을 사용하는 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-이 성가신 문제로 고생하는 사람. 실제로는 (Surprise! :)) 페이스 북에서만 발생합니다. 여기에 설명 된대로 firebase.google.com/docs/auth/ios/firebaseui "원하는 경우 Auth 구성 요소 및 사용하려는 공급자 만 추가 할 수 있습니다 ..." 페이스 북 옵션을 제거하면 아무런 문제가 없습니다 . : /
Fattie

답변:


543

이것은 확실히 대부분의 시간에 작동합니다.

대상 빌드 설정으로 이동-> 기타 링커 플래그-> 두 번 클릭하십시오. $(inherited)새 줄에 추가하십시오 .

"... target이 GCC_PREPROCESSOR_DEFINITIONS 빌드 설정을 정의합니다 ..."에 문제가있는 경우 대상 빌드 설정-> 전 처리기 매크로에 $ (상 속됨)을 추가해야합니다.


29
나는이 대답을 연장 할 것입니다. "... target GCC_PREPROCESSOR_DEFINITIONS이 ...에 정의 된 빌드 설정을 재정의합니다"문제가있는 경우 $ (상 속됨)을 대상 빌드 설정-> 전 처리기 매크로
Libor Zapletal

1
"... 대상이 INSERT_YOUR_MISSING_DEFINITION ...을 (를) 재정의하는 것"으로 의심되며 $ (상 속됨)을 추가해야합니다. 이상하게도 내 xcode는 기본적으로 $ (상 속됨)을 약간 희미하게 보여주었습니다. 나는 같은 것을 편집하고 간단히 다시 입력했다. 오류가 사라 ..

3
@joe 여전히 나를 위해 작동하지 않습니다. 이 모든 제안을 시도했지만 포드 설치를 다시 실행하면 오류가 지속됩니다. 다른 링커 플래그와 전 처리기 매크로를 모두 변경했습니다. 두 경우 모두 다른 링커 플래그 및 전 처리기 매크로에서 각 줄을 두 번 클릭 할 때까지 아무 것도 표시되지 않습니다. 그러면 $ (상 속됨)이 추가되었음을 알 수 있습니다. 삭제하고 읽는 것을 시도했습니다. xcode를 닫았다가 다시 열어 보았습니다. 포드 설치를 입력해도 오류 메시지가 수정되지 않습니다.
JeffB6688

1
@msmq 지금은 오랜 시간이 지났지 만 시도하고 작동시킨 해결 방법을 기억하십니까? $(inherited)이미 최고 라인에 있지만 그것은 나를 위해 작동하지 않습니다 : /
Kostas Dimakis

1
나는 포드 설치가 같은 오류를 던질 때까지 추가했습니다.
rohitwtbs

75

빌드 설정과 Cocoapods가 원하는 기본 빌드 설정간에 충돌이 있습니다. Cocoapods 빌드 설정을 보려면 프로젝트의 포드 / 대상 지원 파일 / 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의 설정을 사용합니다.

반면, 사용해야하는 사용자 지정 설정이 있으면 해당 설정에 $ (상 속됨)을 추가하십시오.


나는 또한이 문제가 있었고, -ObjC를 제거 할 수 있었고이 문제를 해결했다. 그러나 프로젝트를 빌드하려고 할 때 대상 특정 포드 라이브러리를 찾을 수 없다는 오류가 표시됩니다. "ld : -lPods-MyProject에 대한 라이브러리를 찾을 수 없습니다". 비슷한 것을 보았습니까?
Roderic Campbell

3
다시이 문제가 발생합니다. $ (상 속됨)의 의미가 확실하지 않습니다. 어디에 추가합니까?
huggie

@RodericCampbell 프로젝트에서 -ObjC를 제거하면 나에게 잘 작동하고 오류가 표시되지 않습니다.
huggie

1
흠,하지만 카테고리가 있기 때문에 런타임에 -ObjC 플래그가 필요합니다.
huggie

3
OTHER_LDFLAGS = 기타 링크 된 플래그, HEADER_SEARCH_PATHS = 헤더 검색 경로, GCC_PREPROCESSOR_DEFINITIONS = 전 처리기 매크로. @kraftydevil, 어떤 설정을 삭제하려고합니까?
phatmann

30

터미널에서 포드 명령에 대한이 3 가지 오류를 보았습니다.

pod install

[!] MY_APP [Debug / Release] 대상은 HEADER_SEARCH_PATHS를 재정의합니다 ...
[!] MY_APP [Debug / Release] 대상은 OTHER_LDFLAGS를 재정의합니다 ...
[!] MY_APP [Debug / Release] 대상은 GCC_PREPROCESSOR_DEFINITIONS를 재정의합니다. .

이 세 가지 오류는 모두 $ (상 속됨) 을 추가하면 사라집니다.

  1. 헤더 검색 경로
  2. 다른 링커 플래그
  3. 전 처리기 매크로

에서 프로젝트 -> 대상 -> 빌드 설정

이제 명령이 오류없이 실행됩니다.

pod install

위의 내용은 단순히 플래그를 변경하는 것만으로 Other Linker Flags는 충분하지 않았습니다.
JaredH

21

프로젝트에서 찾을 Target -> Build Settings -> Other Linker Flags선택 Other Linker Flags을 눌러 delete(맥 키보드) / Backspace설정을 복구 (일반 키보드). 그것은 나를 위해 작동합니다.

예:

전에 여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오


1
다른 링커 플래그에 이미있는 설정을 제거합니까? 또는 우리는 그것들을 유지하고 $ (상 속됨)을 추가합니까?
isJulian00

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(Command + Backspace)를 누릅니다.

줄을 더 이상 굵게 표시해서는 안되며 pod install경고 / 오류 를 실행 하면 사라져야합니다.


시각 보조

CLANG_CXX_LIBRARY 오류 / Cocoapod 관련 경고


12

링크 할 때 Xcode가 불평하면 (예 : -lPods에 대한 라이브러리를 찾을 수 없음) 암시 적 종속성을 감지하지 않습니다.

제품> 구성표 편집으로 이동 빌드를 클릭하십시오. 포드 정적 라이브러리 추가 정리 및 다시 빌드


제안한 방법을 시도했지만 pod 파일로 최근 설치된 프레임 워크를 표시하지 않습니다. 링커 플래그 오류를 수정하기위한 제안이 더 있습니다. @Amit Saxena
Anilkumar iOS ReactNative 2018

11

나에게 문제는 내 목표 테스트에 있었다. 이미 $(inherited)기본 앱 대상에 플래그 가있었습니다 .

MyAppTests Other Linker 플래그에 추가했습니다. 그 후 내가 pod install경고 메시지를 실행했을 때 사라졌습니다. 여기에 이미지 설명을 입력하십시오



6

$ (상 속됨)을 추가했지만 프로젝트가 여전히 컴파일되지 않았습니다. 나에게 문제는 "액티브 아키텍처 전용 빌드"플래그 였으므로 YES로 설정해야했다.


프로젝트가 컴파일 중이라면 경고를 무시할 수 있습니까?
isJulian00
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.