2014-10-21 5 views
2

iOS 응용 프로그램을위한 좋은 아키텍처를 만들고 xcconfig 구성에 문제가 있습니다. 나는 두 개의 CocoaPod를 가지고 있으며 경고 만 포함하고있는 것이 당연합니다. 나는 inhibit_all_warnings! 지시어로 CocoaPods 통합에 대해 언급하지 않았습니다. 따라서 내 Podfile은 다음과 같이 보입니다 :xcconfig 링커 플래그가있는 CocoaPods 경고

platform :ios, '7.0' 

inhibit_all_warnings! 

source 'https://github.com/CocoaPods/Specs.git' 

pod 'AFNetworking', '~> 2.x' 
... 

이 설정은 실제로 작동하지만이 구성으로 프로젝트를 빌드 할 때 경고가 표시되지 않습니다.

하지만 앱을 빌드 할 때 매우 엄격한 환경을 적용하려고하므로 몇 가지 .xcconfig 파일을 만들어 경고시 오류를 발생시키고 가능한 모든 경고를 허용합니다. 이것은 실제로이 작업을 수행하는 xcconfig 파일의 일부입니다

GCC_TREAT_WARNINGS_AS_ERRORS = YES; 
WARNING_CFLAGS = -Weverything -Wno-objc-missing-property-synthesis -Wno-unused-macros; 

두 라인이 제대로 작동하지만, 문제는 CocoaPod 라이브러리의 경고도 오류로 취급되어 나타납니다. GCC_TREAT_WARNINGS_AS_ERRORS을 비활성화하면 프로젝트가 다시 컴파일되지만 CocoaPod에서 경고가 다시 나타납니다.

그래서 제 질문은 :

어떻게 제대로 내 .xcconfig 파일을 설정합니다

, WARNING_CFLAGS 만 프로젝트 파일이 아닌 라이브러리 파일에 사용할 것이라고?

또는 inhibit_all_warnings 만드는 법! pod 지시문은 WARNING_CFLAGS 구성 변수가 설정되어있을 때 작동합니다.이 경우이 설정을 무시한 것처럼 보입니까?

감사합니다.

답변

0

"bleed through"경고는 빌드 환경에서 -Weverything 플래그를 사용했을 때 발생합니다. 비슷한 질문을하고 this와 관련된 질문에 대한 답을 얻을 때까지 동일한 문제를 경험했습니다.

짧은 이야기 : 버그가 있거나 아직 개발중인 경고를 포함하기 때문에 기사를 쓰는 clang 개발자가 - 모든 것을 강력하게 사용하지 않습니다. 더 엄격한 빌드 환경이 필요한 경우 -Wall, -Wextra 및 선택적 -Wconversion을 사용하십시오. Cocoapods는 올바르게 응답하고 포드에서 경고를 숨 깁니다.

+0

저는 --Wevery 플래그를 사용해도이 작업을 수행 할 수 있었지만 왜 이런 식으로 발생했는지 정확히 알 수 없습니다. – Legoless