2013-09-25 6 views
7

여러 대상이있는 프로젝트가 있습니다. 프로젝트와 연관된 xcconfig 파일과 대상과 연관된 여러 xcconfig 파일이 있습니다.CocoaPods의 Pods.xcconfig가 기존의 Pods.xcconfig와 충돌합니다.

이제 타사 라이브러리를 CocoaPods를 통해 통합하고자합니다. 원래 프로젝트의 목표에 자신의 xcconfig 파일 Pds.xcconfig를 연결하기 때문에 $ pod install CocoaPods 원래 프로젝트를 나사 후. 이 명령은 프로젝트와 연관된 원래 xcconfig에 정의 된 설정을 완전히 무시하고 덮어 쓰고 대상과 관련된 원래 xcconfig 파일을 전환합니다. 따라서 프로젝트는 망쳐 버렸습니다. 디버그에 대한 예를 들어, 설정 파일 osx.debug.xcconfig

을 정의

GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1

나는, 각 구성에 대해 서로 다른 CONFIGS이 : 예를 들어

는 Cocoapods는 각 대상에 연관되는 그 Pods.xcconfig에 다음과 같이 정의한다

GCC_PREPROCESSOR_DEFINITIONS = DEBUG=1 DEBUG_LOG=2 __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES=0

그러한 충돌을 해결하기위한 합리적이고 가능한 방법은 무엇입니까?

편집 :

나는 GitHub의에 CocoaPods 문제 목록을 검색했습니다. xcconfig 파일과 관련된 많은 문제가있는 것으로 보이며 그 중 일부는 2 년 이상 된 것입니다. 그들은 논의되고 나서 닫힌다. 그러나 나에게 일어났던 것처럼 - 문제는 아직 해결되지 않았다.

IMHO, 이것은 근본적이며 기본적인 문제입니다. xcconfig 파일을 사용하는 프로젝트가 있습니다. 그런 다음 CocoaPods를 통해 타사 라이브러리를 포함하고자합니다. pod install을 실행 한 후 프로젝트가 엉망입니다.

그럼,이게 뭐야?

답변

0

아직 케이크를 먹을 수 있으며 (부분적으로) 먹을 수 있습니다. 이미 Pods.xcconfig에 설정된 플래그를 지정하고자 할 때

#include "../Pods/Pods.xcconfig" 
MY_SETTING = YES 
... 

그러나, 당신은 여전히 ​​먹을 수없는 부분이다 : 당신의 목표를 'xcconfig 파일 cocoapods 하나를 포함 할 수 있습니다. Cocoapods가 이미 포함 된 파일에 설정 한 경로에 추가 할 수있는 방법을 찾을 수 없습니다. 당신이 원하는 것 :

HEADER_SEARCH_PATHS = $(HEADER_SEARCH_PATHS) MyOtherIncludes 

그러나이 선은 단순히 프로젝트의 xcconfig 파일에 MyOtherIncludes를 이동하는 것 이것에 대한

한 가지 해결 방법 :-(만 MyOtherIncludes을 떠나 Cocoapods 헤더 검색 경로을 삭제하는 Cocoapods는 만지지 않습니다. 불행히도 이것은 YMMV가 작동하지 않습니다.

+0

불행하게도 GCC_PREPROCESSOR_DEFINITIONS, HEADER_SEARCH_PATHS, OTHER_CFLAGS 및 OTHER_LDFLAGS와 같이 확장하거나 수정할 수없는 빌드 설정이 있습니다 .Xcode xcconfig 파일이 이러한 선언을 처리 할 수 ​​없으므로 :'HEADER_SEARCH_PATHS = $ (HEADER _SEARCH_PATHS) MyOtherIncludes'입니다. 이 작업을 수행하기 위해 Xcode의 xcconfig 파일 설정이 기본 빌드 설정을 수정하는 방법에 따라 현재 동작이 중단 될 수 있습니다. – CouchDeveloper