2015-09-17 8 views
42

आप अपनी परियोजना और कोकोपॉड निर्भरताओं के लिए बिटकोड कैसे अक्षम कर सकते हैं? एक्सकोड 7 के साथ मेरी प्रोजेक्ट चलाने की कोशिश करते समय मुझे मिली त्रुटि है।Xcode7 के साथ प्रोजेक्ट और कोकोपोड निर्भरताओं के लिए बिटकोड अक्षम करें?

में बिटकोड नहीं है। आपको इसे बिटकोड सक्षम (एक्सकोड सेटिंग ENABLE_BITCODE) के साथ पुनर्निर्माण करना होगा, विक्रेता से एक अद्यतन लाइब्रेरी प्राप्त करें, या इस लक्ष्य के लिए बिटकोड अक्षम करें। आर्किटेक्चर arm64

संपादित करें: मूल रूप से इसे केवल एक लक्ष्य के लिए अक्षम कर दिया गया है। एक बार मैंने उन सभी को अक्षम कर दिया और मैं सफलतापूर्वक निर्माण करने में सक्षम था।

+0

संभव डुप्लिकेट (http://stackoverflow.com/a/30856364/3242031) –

उत्तर

123

एक तरीका है कि हर बार जब आप करते हैं एक pod install आप इस जोड़ सकते हैं अपने Podfile

post_install do |installer| 
    installer.pods_project.targets.each do |target| 
    target.build_configurations.each do |config| 
     config.build_settings['ENABLE_BITCODE'] = 'NO' 
    end 
    end 
end 
को अधिरोहित नहीं प्राप्त करता है में इस सेटिंग को सेट करने के लिए
+0

सही काम कर रहे – ravinder521986

+0

मैंने ऐसा किया लेकिन मुझे अपने प्रोजेक्ट की बिल्ड सेटिंग्स में बिटकोड भी अक्षम करना पड़ा। अकेले ही मेरे लिए यह तय नहीं किया। –

2

उस लक्ष्य के लिए बिल्ड सेटिंग्स पर जाएं जिसे आप इसे अक्षम करना चाहते हैं। कुछ के लिए खोज है कि कहते हैं, "Bitcode सक्षम करें", नहीं

के लिए सेट
+0

धन्यवाद! मूल रूप से केवल एक लक्ष्य के लिए इसे अक्षम कर दिया। एक बार मैंने उन सभी को अक्षम कर दिया और मैं निर्माण करने में सक्षम था। – jherg

+0

इस उत्तर के साथ एक समस्या यह है कि यदि आप पॉड इंस्टॉल को फिर से चलाते हैं तो आप सेटिंग खो देंगे। यह एक अच्छा दीर्घकालिक समाधान नहीं है। –

+0

धन्यवाद, यह काम कर रहा है .... –

6

पूर्ण बिटकोड के साथ कोकोपोड्स के लक्ष्य बनाने का एक तरीका है। बस प्रत्येक के OTHER_CFLAGS करने के लिए -fembed-bitcode विकल्प जोड़ने:

post_install do |installer| 
    installer.pods_project.targets.each do |target| 
    target.build_configurations.each do |config| 
     cflags = config.build_settings['OTHER_CFLAGS'] || ['$(inherited)'] 
     cflags << '-fembed-bitcode' 
     config.build_settings['OTHER_CFLAGS'] = cflags 
    end 
    end 
end 

मुझे लगता है कि इस तरह से bitcode अक्षम करने से बेहतर है।

+0

इस तरह बेहतर क्यों है? – cberkay

+1

@cberkay क्योंकि ऐप्पल द्वारा उद्देश्य से बिटकोड पेश किया गया था और बेहतर समय का अनुभव इंस्टॉलेशन समय और आकार को कम करता है। – werediver

1

इस साइट (https://medium.com/@heitorburger/static-libraries-frameworks-and-bitcode-6d8f784478a9) ढांचे के लिए मैंने किया था के आधार पर:

[iOS9 में नई चेतावनी] की
#bitcode enable 
post_install do |installer| 
    installer.pods_project.targets.each do |target| 
    target.build_configurations.each do |config| 
     config.build_settings['ENABLE_BITCODE'] = 'YES' 

     if config.name == 'Release' 
      config.build_settings['BITCODE_GENERATION_MODE'] = 'bitcode' 
     else 
      config.build_settings['BITCODE_GENERATION_MODE'] = 'marker' 
     end 

     cflags = config.build_settings['OTHER_CFLAGS'] || ['$(inherited)'] 

     if config.name == 'Release' 
      cflags << '-fembed-bitcode' 
     else 
      cflags << '-fembed-bitcode-marker' 
     end  

     config.build_settings['OTHER_CFLAGS'] = cflags 
    end 
    end 
end 
संबंधित मुद्दे