কোকোপড ব্যবহার করার সময় এক্সকোড সতর্কতা উপেক্ষা করুন


417

আমি বেশ কয়েকটি তৃতীয় পক্ষের লাইব্রেরি ব্যবহার করি যার সর্বশেষতম এক্সকোড আপডেটের পরে এতে অনেক সতর্কতা রয়েছে। (উদাহরণস্বরূপ ফেসবুক এসডিকে পড) এখন এই সমস্ত সতর্কতাগুলি আমার নিজের কোডকো বা ত্রুটিগুলি দেখতে চাইলে আমার এক্সকোডে দেখানো হয়।

এই ত্রুটিগুলি উপেক্ষা করার কোনও উপায় আছে কি? এগুলি স্থির করা কার্যকর হবে না, যেহেতু প্রতিটি "পড ইনস্টল" করার পরে পরিবর্তনগুলি বাতিল করা হয়।

উত্তর:


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 dependency 'ফেসবুক-আইওএস-এসডিকে' s.inhibit_all_warnings ব্যবহার করি! এবং আমি নিম্নলিখিত ত্রুটিটি পেয়েছি: অপরিজ্ঞাত পদ্ধতি `inhibit_all_warnings! ' # <পডের জন্য: মাই অ্যাপের জন্য নির্দিষ্টকরণ (1.0)>
ক্রাউসএফএক্স

22
আমি কীভাবে নীচের সমস্যাটি সমাধান করতে পারি: আমি সতর্কতাগুলি কিছু পোডের জন্য গোপন রাখতে চাই, তবে সেগুলির জন্য নয়।
ক্রাউসএফএক্স

3
@krausefx দুঃখিত, আপনার মন্তব্য দেখেনি। : বংশধরগণ অনুরোধে জন্য, আপনি প্রতি শুঁটি ভিত্তিতে এখন অক্ষম সতর্কবার্তা, মধ্যে Podfile ডক্স দেখানো হয়েছে পারবেন docs.cocoapods.org/podfile.html#inhibit_all_warnings_bang
খাদ

2
@ জোহানকার্লসন নির্দেশটি সরান এবং pod installপডস.এক্সকোডেপ্রোজ পুনরায় জেনারেট করতে চালান।
খাদ

1
দ্রষ্টব্য যে এটি Analyzeধাপের সময় সতর্কবাণীগুলি (সমস্যাগুলি) উপস্থিত হতে বাধা দেয় না । আমি এর জন্য কিছু আলাদা প্রস্তাব দিয়েছি answer
জেদিদজা 15'15

28

আপনি আপনার প্রকল্প-কাজের জায়গাতে পডবান্ডেলের এক্সকোড বিল্ড সেটিংসে "ইনহিবিট_ল_ওয়ার্নিংস" অনুসন্ধান করতে পারেন যা "হ্যাঁ" এর মান সেট করে এটি পড ফাইলের সমস্ত সতর্কতা আপনাকে আড়াল করবে।

আপনি যদি এটি আপনার কাজের জায়গাতে করেন তবে এটি আপনার সমস্ত প্রকল্পও আড়াল করবে।


এটি একটি সহজ সমাধান, পোড প্রকল্পে এটি সেট করুন এবং এটি কেবল পড সম্পর্কিত সতর্কতাগুলি অক্ষম করে, আপনার প্রকল্পের সতর্কতাগুলি নয়। পোড ইনস্টল পুনরায় কার্যকর করার দরকার নেই।
আন্দ্রেস ক্যানেলা

28
প্রস্তাবিত নয়! পরবর্তীটির সাথে pod installএই সেটিংটি ওভাররাইড করা হয়েছে, সুতরাং এটি পডফাইলে আরও ভাল সেট করুন!
ইলেক্ট্রনিক্স

4
ব্যক্তিগতভাবে আমি এটি এমনভাবে করি যাতে প্রতিটি আপডেট আমার মনে হয় যে সমস্ত সতর্কতা এবং তা অবহেলাযোগ্য তা নিশ্চিত করার জন্য একটি তাত্ক্ষণিকভাবে নজর দেওয়া উচিত।
আন্দ্রেস ক্যানেলা 21

স্থানীয় দেব পোডের পডস্পেকের নির্ভরতার জন্য কী?
অ্যারি ব্রাগিনস্কি

এছাড়াও আপনি সেট করতে পারেন Swift Compiler - Warnings Policies> Suppress Warningsথেকে Yes... সঙ্গে inhibit_all_warningsআমি এখনও ছিল 'characters' is deprecated: Please use String or Substring directly Pods মধ্যে সতর্কবার্তা। এই সেটিংটি এই সতর্কতাটি সরিয়ে দিয়েছে।
Tiois

6

যদিও এই অন্য উত্তরটি বিল্ড পর্বের সময় সতর্কতাগুলি সরিয়ে দেবে, তবে এটি সম্পূর্ণরূপে এই Analyzeপর্বটি ঠিক করতে পারে না (যার ফলে আমাদের সিআই বিল্ডের এখনও সমস্যা রয়েছে)।

আমার জন্য যা কাজ করেছে (স্বীকৃত উত্তর ছাড়াও):

  • Podsপ্রকল্প নেভিগেটর থেকে প্রকল্পে ক্লিক করুন
  • আসল Pod-লক্ষ্য চয়ন করুন এবং ক্লিক করুনBuild Settings
  • বাক্যটি দিয়ে ফিল্টার করুন compiler flags
  • Other C Flagsমানটির সাথে একটি নতুন যুক্ত করুন -w -Xanalyzer -analyzer-disable-checker -Xanalyzer core(বা আপনার যে কোনও বিশ্লেষককে অক্ষম করা দরকার) - এই উত্তরটি চেষ্টা করার জন্য পতাকাগুলির পুরো তালিকা সরবরাহ করে - দয়া করে এটি উত্সাহিত করুন!

    clangএক্সকোড .3.৩.১- এর সংস্করণটি যদিও অন্তর্ভুক্ত বলে মনে হচ্ছে না 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বাম-হাতের তালিকায় ক্লিক করুন, এবং তারপরে লক্ষ্যটির জন্য ডানদিকের অংশটি আনচেক Analyze করুন Pod

আমি পোডগুলিকে বিশ্লেষণ করা থেকে কেন পুরোপুরি অক্ষম করতে পারছি না তা নিয়ে আমি এখনও বিভ্রান্ত হয়েছি, যদিও আমি আশা করি যে এটি স্কিমের বিল্ড সেটিংসে পরীক্ষিত "অন্তর্নিহিত নির্ভরতাগুলি অনুসন্ধান করুন" এর সাথে করতে হবে expect যদি এটি পরীক্ষা না করা হয়, তবে দেখে মনে হচ্ছে অ্যাপটি শডগুলিতে লিঙ্ক করার জন্য অন্য কিছু হওয়ার দরকার পড়ে।


1
দ্রষ্টব্য: দুর্ভাগ্যক্রমে, আপনি যদি আপনার .gitignore ব্যবহার করে পডস এবং .xcworkspace কে আপনার ভাণ্ডার থেকে বাদ দেন তবে এটি সিআই-তে সহায়তা করে না।
RileyE

@ রিলে আকর্ষণীয় - একটি রেপো থেকে বাদ দেওয়ার কোনও ভাল কারণ আছে কি? যদি তা হয় তবে এই পৃষ্ঠার অন্যান্য কৌশলগুলি কি আপনার জন্য কাজ করে? (আমি এখনও আইওএস বিকাশের একটি আপেক্ষিক নবাগত এবং আরও জানার জন্য যথেষ্ট
উত্সাহী

এটি অন্তর্ভুক্ত করা হবে কি না তা নিয়ে বিস্তৃত বিভাজন রয়েছে । আমি আমার পোডফিল সর্বদা নির্ভুল কিনা তা নিশ্চিত করতে পছন্দ করি এবং আমি বিভিন্ন ব্যবহারকারীর পডফিল.লক এবং .xcworkspaces এর মধ্যে কিছু বিবাদ পেয়েছি বলে আমি এটি যুক্ত করা পছন্দ করি না। এটি কেবল দৃ strongly়ভাবে বিতর্কযোগ্য উপকারিতা এবং কনসযুক্ত ব্যবহারকারীদের কাছে একটি পছন্দ।
RileyE

@ রিলে এই তথ্যের জন্য ধন্যবাদ! সুতরাং আমরা যদি পডগুলি / .xcworkspace বাদ দিয়ে থাকি তবে সমস্যাগুলির সমস্যার কোনও সমাধান নেই?
জেদিদজা 16'15

দুর্ভাগ্যবশত না. যে কারণে আমি অতিরিক্ত পতাকা সন্ধান করছি 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"
পডগুলির
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.