Cocoapod 사용시 Xcode 경고 무시


417

최신 Xcode 업데이트 후에 많은 경고가있는 많은 타사 라이브러리를 사용합니다. (예 : Facebook SDK 포드) 이제이 모든 경고가 내 경고 나 오류를보고 싶은 곳에 Xcode에 표시됩니다.

이러한 오류를 무시할 수있는 방법이 있습니까? 모든 "포드 설치"후에는 변경 사항이 삭제되므로이를 수정하면 도움이되지 않습니다.

답변:


967

Podfile에 추가하십시오 :

platform :ios

# ignore all warnings from all pods
inhibit_all_warnings!

# ignore warnings from a specific pod
pod 'FBSDKCoreKit', :inhibit_warnings => true

그런 다음 다음을 실행하십시오. pod install


3
어떻게 포함 시키나요? 현재 s.dependency 'Facebook-iOS-SDK's.inhibit_all_warnings를 사용하고 있습니다! 정의되지 않은 메소드`inhibit_all_warnings! '라는 오류가 발생합니다. for # <Pod :: MyApp (1.0)에 대한 사양>
KrauseFx

22
다음 문제를 어떻게 해결할 수 있습니까? 일부 포드에는 경고를 숨기고 싶지는 않습니다.
KrauseFx

3
@krausefx 죄송합니다. 댓글이 없습니다. 후손을 위해 이제 Podfile 문서에 표시된 것처럼 포드별로 경고를 비활성화 할 수 있습니다. docs.cocoapods.org/podfile.html#inhibit_all_warnings_bang
합금

2
@JohanKarlsson 지시문을 제거하고 실행 pod install하여 Pods.xcodeproj를 재생성하십시오.
합금

1
Analyze단계 에서 경고 (문제)가 나타나는 것은 아닙니다 . 나는 다른 대답으로 그에 대한 제안을 제안했습니다.
Jedidja

28

프로젝트 작업 공간에서 PodBundle의 xcode 빌드 설정에서 "inhibit_all_warnings"를 검색하여 값을 "YES"로 설정하면 포드 파일 경고가 모두 숨겨집니다.

작업 공간으로 작업하면 모든 프로젝트도 숨겨집니다.


이것은 더 간단한 해결책이며, 포드 프로젝트에서 이것을 설정하고 프로젝트 경고가 아닌 포드 관련 경고 만 비활성화합니다. 포드 설치를 다시 실행할 필요가 없습니다.
안드레스 카 넬라

28
추천하지 않습니다! 다음에는 pod install이 설정이 무시되므로 Podfile에서 설정하는 것이 좋습니다!
electronix384128

4
개인적으로 나는 모든 업데이트가 모든 경고를 신속하게 살펴보고 무시할 수 있도록하기 위해 이것을 좋아합니다.
Andres Canella

로컬 개발자 포드에 대한 포드 스펙의 종속성은 어떻습니까?
Ari Braginsky

포드에 여전히 경고 메시지가 표시 되면 Swift Compiler - Warnings Policies> Suppress WarningsYes...로 설정할 수 있습니다 . 이 설정은이 경고를 제거했습니다. inhibit_all_warnings'characters' is deprecated: Please use String or Substring directly
Tiois

6

이 다른 답변 은 빌드 단계에서 경고를 제거 하지만 완전히 수정하지는 않습니다.Analyze (CI 빌드에 여전히 문제가 있음).

나를 위해 일한 것은 (허용 된 답변 외에도) 다음과 같습니다.

  • 를 클릭하십시오 Pods프로젝트 네비게이터에서 프로젝트를
  • 실제를 선택하십시오 Pod- 목표를 하고 클릭하십시오Build Settings
  • 문구로 필터링 compiler flags
  • Other C Flags값 으로 새로운 것을 추가하십시오 -w -Xanalyzer -analyzer-disable-checker -Xanalyzer core(또는 사용하지 않아야 할 분석기)- 이 답변 은 시도 할 플래그의 전체 목록을 제공합니다.

    그러나 clangXcode 6.3.1 의 버전은 포함 insecureAPI되어 있지 않으므로 해당 목록에서 제거 할 수 있습니다. "현재"전체 목록은-w -Xanalyzer -analyzer-disable-checker -Xanalyzer alpha -Xanalyzer -analyzer-disable-checker -Xanalyzer core -Xanalyzer -analyzer-disable-checker -Xanalyzer cplusplus -Xanalyzer -analyzer-disable-checker -Xanalyzer deadcode -Xanalyzer -analyzer-disable-checker -Xanalyzer debug -Xanalyzer -analyzer-disable-checker -Xanalyzer llvm -Xanalyzer -analyzer-disable-checker -Xanalyzer osx -Xanalyzer -analyzer-disable-checker -Xanalyzer security -Xanalyzer -analyzer-disable-checker -Xanalyzer unix

Pods프로젝트 또는 Pods대상 에서이를 설정하면 작동하지 않습니다 . 왜 그런지 모르겠지만 각 실제에 대해 설정해야합니다.Pod- 목표 .

파일별로 컴파일러 플래그 -w -Xanalyzer -analyzer-disable-checker -Xanalyzer core등을 설정할 수도 있습니다 .

또한 두 가지 다른 방법을 시도했습니다 (위에 추가하거나 필요하지 않을 수도 있음). 그들은 Pods프로젝트 자체 에서 수행되었습니다 .


[1]

  • 문구로 필터링 analyzer
  • Analyze During 'Build'로 설정되어 있는지 확인하십시오 NO.
  • 모든 설정 변경 NO(포함를 Improper Memory Management)

[2]

  • 문구로 필터링 warnings
  • 변경 inhibit all warningsYES

어떤 이유로 든 Analyze계획 의 단계를 비활성화해도 작동 하지 않는 것 같습니다.

Product > Scheme > Manage Schemes창으로 이동 Pod-*하여 목록 에서 각각 을 클릭하고 Edit버튼을 클릭하십시오 . 클릭 한 Build다음 왼쪽 목록 및 선택 해제 Analyze 의 오른쪽에Pod 대상의 .

구성표의 빌드 설정에서 "암시 적 종속성 찾기"와 관련이있을 것으로 예상되지만 포드가 분석되지 않도록 완전히 비활성화 할 수없는 이유에 대해서는 여전히 혼란스러워합니다. 그래도 선택하지 않으면 앱이 포드에 연결하기 위해 다른 일이 발생 해야하는 것처럼 보입니다.


1
참고 : 불행히도 .gitignore를 사용하여 리포지토리에서 포드와 .xcworkspace를 제외하면 CI에 도움이되지 않습니다.
RileyE

@RileyE 흥미 롭다-레포에서 그것들을 제외시킬 좋은 이유가 있습니까? 그렇다면이 페이지의 다른 기술이 효과가 있습니까? (저는 여전히 iOS 개발에 대한 초보자이므로 자세한 내용은 매우 궁금합니다)
Jedidja

포함 여부에 큰 차이가 있습니다 . 내 podfile이 항상 정확한지 확인하고 다른 사용자의 Podfile.lock과 .xcworkspaces 사이에서 충돌이 있음을 확인하기 때문에 포함하지 않는 것이 좋습니다. 논쟁의 여지가 강한 장단점을 가진 사용자가 선호하는 것입니다.
RileyE

정보에 감사드립니다! 따라서 Pods / .xcworkspace를 제외하면 문제 문제에 대한 해결 방법이 없습니까?
Jedidja

불행히도. 이것이에 추가 플래그를 요구 한 이유입니다 pod install.
RileyE

5

단계 : 1 아래 스크립트를 Podfile에 넣으십시오.

post_install do |installer|
    installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
            config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = "YES"
        end
    end
end

2 단계 pod install.


2
또한 스위프트 포드에 다음을 추가해야했습니다. config.build_settings['SWIFT_SUPPRESS_WARNINGS'] = "YES"
pstoppani
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.