कोकोपोड्स का उपयोग करते समय Xcode चेतावनियों को अनदेखा करें


417

मैं बहुत सारे थर्ड पार्टी लाइब्रेरियों का उपयोग करता हूं जिनमें नवीनतम Xcode अपडेट के बाद इसमें बहुत सी चेतावनियाँ हैं। (उदाहरण के लिए फेसबुक एसडीके पॉड) अब इन सभी चेतावनियों को मेरे Xcode में उस जगह पर दिखाया गया है जहाँ मैं अपनी चेतावनियाँ या त्रुटियाँ देखना चाहता हूँ।

क्या इन त्रुटियों को अनदेखा करने का कोई तरीका है? उन्हें ठीक करने से मदद नहीं मिलेगी, क्योंकि हर "पॉड इंस्टॉल" के बाद बदलावों को छोड़ दिया जाता है।

जवाबों:


967

अपने पॉडफाइल में जोड़ें:

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.d निर्भरता 'Facebook-iOS-SDK' s.inhibit_all_warnings का उपयोग करता हूं! और मुझे निम्न त्रुटि मिलती है: अपरिभाषित विधि `अवरोध__प्रकाश! ' # <पॉड के लिए: MyApp (1.0) के लिए विशिष्टता>
KrauseFx

22
मैं निम्नलिखित समस्या को कैसे हल कर सकता हूं: मैं चाहता हूं कि चेतावनियों को कुछ पॉड्स के लिए छिपाया जाए, लेकिन उन सभी के लिए नहीं।
क्रुसेफएक्स

3
@krausefx क्षमा करें, आपकी टिप्पणी नहीं देखी। : भावी पीढ़ी के लिए, यदि आप एक प्रति-फली आधार पर अब अक्षम चेतावनी, में Podfile डॉक्स दिखाया गया है सकते हैं docs.cocoapods.org/podfile.html#inhibit_all_warnings_bang
मिश्र धातु

2
@JohanKarlsson निर्देश निकालें और pod installPods.xcodeproj को पुन: उत्पन्न करने के लिए चलाएँ।
मिश्र

1
ध्यान दें कि यह Analyzeचरण के दौरान दिखाई देने से चेतावनी (मुद्दों) को रोकता नहीं है । मैंने एक अलग उत्तर में उसके लिए कुछ सुझाव पेश किए हैं।
जेडीजा

28

आप अपने प्रोजेक्ट-वर्क स्पेस में पॉडबंडल की एक्सकोड बिल्ड सेटिंग्स में "inhibit_all_warnings" खोज सकते हैं "YES" का मान सेट करें यह आप सभी पॉड फ़ाइल चेतावनियों को छिपा देगा।

यदि आप इसे अपने कार्य स्थान पर करते हैं तो यह आपकी सारी परियोजना को भी छिपा देगा।


यह एक सरल उपाय है, इसे पॉड्स प्रोजेक्ट पर सेट करें और यह केवल पॉड संबंधित चेतावनियों को अक्षम करता है, न कि आपके प्रोजेक्ट चेतावनियों को। पॉड इंस्टॉल को फिर से निष्पादित करने की आवश्यकता नहीं है।
एंड्रेस कैनेला

28
सिफारिश नहीं की गई! अगले के साथ pod installयह सेटिंग ओवरराइड हो जाती है, इसलिए इसे पॉडफाइल में बेहतर सेट करें!
इलेक्ट्रॉनिक्स

4
व्यक्तिगत रूप से मुझे यह पसंद है ताकि हर अपडेट मुझे एक त्वरित रूप से याद रहे कि सभी चेतावनी और सुनिश्चित करें कि वे उपेक्षित हैं।
एंड्रेस कैनेला

क्या एक स्थानीय देव फली के लिए एक podspec में निर्भरता के बारे में?
अरी ब्रिगिंस्की

आप यह भी निर्धारित कर सकते हैं Swift Compiler - Warnings Policies> Suppress Warningsके लिए Yes... के साथ 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(या जो भी आपको अक्षम करने की आवश्यकता हो, विश्लेषण करें) - यह उत्तर कोशिश करने के लिए झंडे की पूरी सूची प्रदान करता है - कृपया इसे बढ़ाएं!

    clangहालांकि, Xcode 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 warningsकरने के लिएYES

किसी कारण से, Analyzeइस योजना में कदम अक्षम करने से भी काम नहीं लगता है।

Product > Scheme > Manage Schemesविंडो पर जाएं , Pod-*सूची से प्रत्येक पर क्लिक करें और Editबटन पर क्लिक करें। Buildबाईं ओर की सूची पर क्लिक करें , और फिर लक्ष्य के लिए दाईं ओर की तरफ अनचेक करेंAnalyzePod

मैं अभी भी इस उलझन में हूं कि मैं पॉड्स का पूरी तरह से विश्लेषण क्यों नहीं कर पा रहा हूं, हालांकि मुझे उम्मीद है कि इसे स्कीम की बिल्ड सेटिंग्स में चेक किए गए "फाइंड इम्प्लांट निर्भरता" के साथ करना पड़ सकता है। अगर वह अनियंत्रित था, हालांकि ऐसा लगता है कि ऐप को पॉड्स से जोड़ने के लिए कुछ और करना होगा।


1
नोट: दुर्भाग्य से, यह सीआई के साथ मदद नहीं करता है यदि आप पॉड्स और।
रिले

@ रिले दिलचस्प - क्या एक रेपो से उन लोगों को बाहर करने का एक अच्छा कारण है? यदि हां, तो क्या इस पृष्ठ पर अन्य तकनीक आपके लिए काम करती है? (मैं अभी भी आईओएस विकास के लिए एक रिश्तेदार नौसिखिया हूँ ताकि अधिक जानने के लिए बहुत उत्सुक हो)
जेडीजा

इसे शामिल करना है या नहीं, इस पर एक बड़ा विभाजन है । मुझे यह पसंद नहीं है क्योंकि मैं यह सुनिश्चित करना पसंद करता हूं कि मेरा पॉडफाइल हमेशा सटीक रहे और मुझे अलग-अलग उपयोगकर्ता के पॉडफाइल.लॉक और .xcworkspaces के बीच कुछ संघर्ष देखने को मिले हैं। यह केवल उपयोगकर्ताओं के लिए एक प्राथमिकता है जो बहुत ही कमजोर बहस और विपक्ष के साथ है।
रिले

@ रिले सूचना के लिए धन्यवाद! इसलिए यदि हमने पॉड्स को हटा दिया / .xcworkspace मुद्दों की समस्या के लिए कोई समाधान नहीं है?
जेडिजा

दुर्भाग्य से नहीं। यही कारण है कि मैं अतिरिक्त झंडे के लिए जोर दे रहा हूं pod install
रिले

5

चरण: 1 नीचे दी गई स्क्रिप्ट को अपने पॉडफाइल में रखें।

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
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.