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”라고 말합니다.
답변
이것은 확실히 대부분의 시간에 작동합니다.
대상 빌드 설정으로 이동-> 기타 링커 플래그-> 두 번 클릭하십시오. $(inherited)
새 줄에 추가하십시오 .
“… target이 GCC_PREPROCESSOR_DEFINITIONS 빌드 설정을 정의합니다 …”에 문제가있는 경우 대상 빌드 설정-> 전 처리기 매크로에 $ (상 속됨)을 추가해야합니다.
답변
빌드 설정과 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의 설정을 사용합니다.
반면, 사용해야하는 사용자 지정 설정이 있으면 해당 설정에 $ (상 속됨)을 추가하십시오.
답변
터미널에서 포드 명령에 대한이 3 가지 오류를 보았습니다.
pod install
[!] MY_APP [Debug / Release] 대상은 HEADER_SEARCH_PATHS를 재정의합니다 …
[!] MY_APP [Debug / Release] 대상은 OTHER_LDFLAGS를 재정의합니다 …
[!] MY_APP [Debug / Release] 대상은 GCC_PREPROCESSOR_DEFINITIONS를 재정의합니다. .
이 세 가지 오류는 모두 $ (상 속됨) 을 추가하면 사라집니다.
- 헤더 검색 경로
- 다른 링커 플래그
- 전 처리기 매크로
에서 프로젝트 -> 대상 -> 빌드 설정
이제 명령이 오류없이 실행됩니다.
pod install
답변
프로젝트에서 찾을 Target -> Build Settings -> Other Linker Flags
선택 Other Linker Flags
을 눌러 delete
(맥 키보드) / Backspace
설정을 복구 (일반 키보드). 그것은 나를 위해 작동합니다.
예:
전에
후
답변
을 실행할 때 비슷한 문제가 발생 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.
수정
- 를 선택하면를
Project
볼 수 있습니다Build Settings
. Target
(AppName
아래에서Targets
)를 선택하십시오- 찾기
C++ Standard Library
(아마도 BOLD에 있을 것입니다 -재정의되었음을 의미합니다). - 선을 선택하고 (파란색으로 강조 표시됨) ⌘ + DELETE(Command + Backspace)를 누릅니다.
줄을 더 이상 굵게 표시해서는 안되며 pod install
경고 / 오류 를 실행 하면 사라져야합니다.