Xcode 7 और ENABLE_BITCODE = YES सेटिंग काम नहीं करती है


96

मैंने Xcode में नई ENABLE_BITCODE सेटिंग के आसपास कई थ्रेड्स का अनुसरण किया है, मैंने जितना संभव हो उतना प्रयास किया है (स्वीकार किया है कि मैं एक xcode समर्थक नहीं हूं) लेकिन फिर भी अपने परीक्षण फोन पर उपयोग के लिए संकलन करने के लिए प्रोजेक्ट नहीं मिल सकता है?

मेरा ऐप सिम्युलेटर पर ठीक चलता है, लेकिन मैं इसे अपने iPhone पर परीक्षण के लिए तैनात नहीं कर सकता। बाद वाले एक पर मैंने अभी iOS 9 बीटा स्थापित किया है।

अब, यहाँ मुझे प्राप्त होने वाला त्रुटि संदेश है। ऐसा प्रतीत होता है कि सेटिंग PARSE.com लिब को प्रभावित नहीं करती है, जो मेरी परियोजना का हिस्सा है? मैं अपने फोन पर कैसे तैनात कर सकता हूं? किसी भी सलाह के लिए धन्यवाद।

    Ld /Users/xxxxxx/Library/Developer/Xcode/DerivedData/graffiti-  bnmizxueojwiqcbbnsvilljhosrw/Build/Products/Debug-iphoneos/Pods/Parse.framework/Parse normal armv7
cd /Users/xxxxxx/Documents/DigitalTempusDev/graffiti/Pods
export IPHONEOS_DEPLOYMENT_TARGET=8.0
export PATH="/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode-beta.app/Contents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch armv7 -dynamiclib -isysroot /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.0.sdk -L/Users/xxxxxx/Library/Developer/Xcode/DerivedData/graffiti-bnmizxueojwiqcbbnsvilljhosrw/Build/Products/Debug-iphoneos/Pods -L/Users/xxxxxx/Documents/DigitalTempusDev/graffiti/Pods/Parse -F/Users/xxxxxx/Library/Developer/Xcode/DerivedData/graffiti-bnmizxueojwiqcbbnsvilljhosrw/Build/Products/Debug-iphoneos/Pods -filelist /Users/xxxxxx/Library/Developer/Xcode/DerivedData/graffiti-bnmizxueojwiqcbbnsvilljhosrw/Build/Intermediates/Pods.build/Debug-iphoneos/Pods-Parse.build/Objects-normal/armv7/Parse.LinkFileList -install_name @rpath/Parse.framework/Parse -Xlinker -rpath -Xlinker @executable_path/Frameworks -Xlinker -rpath -Xlinker @loader_path/Frameworks -miphoneos-version-min=8.0 -dead_strip -fembed-bitcode-marker -ObjC -lParseLib -lz -framework AudioToolbox -framework CFNetwork -framework CoreGraphics -framework CoreLocation -framework QuartzCore -framework Security -framework StoreKit -framework SystemConfiguration -weak_framework Accounts -weak_framework Social -ObjC -fobjc-arc -fobjc-link-runtime -framework AudioToolbox -framework Bolts -framework CFNetwork -framework CoreGraphics -framework CoreLocation -framework Foundation -framework QuartzCore -framework Security -framework StoreKit -framework SystemConfiguration -single_module -compatibility_version 1 -current_version 1 -Xlinker -dependency_info -Xlinker /Users/xxxxxx/Library/Developer/Xcode/DerivedData/graffiti-bnmizxueojwiqcbbnsvilljhosrw/Build/Intermediates/Pods.build/Debug-iphoneos/Pods-Parse.build/Objects-normal/armv7/Parse_dependency_info.dat -o /Users/xxxxxx/Library/Developer/Xcode/DerivedData/graffiti-bnmizxueojwiqcbbnsvilljhosrw/Build/Products/Debug-iphoneos/Pods/Parse.framework/Parse

---
ld: warning: -weak_framework is treated as -framework when used with -bitcode_bundle (Xcode setting ENABLE_BITCODE=YES). Weak linking may still happen based on availability mark-up in headers
ld: warning: -weak_framework is treated as -framework when used with -bitcode_bundle (Xcode setting ENABLE_BITCODE=YES). Weak linking may still happen based on availability mark-up in headers
ld: '/Users/xxxxxx/Documents/DigitalTempusDev/graffiti/Pods/Parse/libParseLib.a(PFSQLiteDatabase.o)' does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

1
आपके द्वारा चुने गए आप सुनिश्चित रूप से Enable Bitcodeकरने के लिए NOनिर्माण के खिलाफ आप उपयोग कर रहे विन्यास (जैसे DEBUG)? आप इसे प्रोजेक्ट में देख सकते हैं-> टारगेट-> बिल्ड सेटिंग्स-> सर्च enable bitcode-> NOडिबग में सेट करें (टेस्ट रिलीज से पहले लिबास अपडेट करने की कोशिश करने के लिए याद रखने के लिए अच्छा है, शायद इसमें पहले से ही बिटकोड होगा)। तब Edit Scheme-> Run-> जाँच करें कि क्या आपके पास DEBUGatm है।
Vive

1
कुंआ! हां और ना। मैंने इसे POD के लक्ष्य पर सेट नहीं किया, यह मेरी अनदेखी थी। आपका इशारा मुझे वहीं मिल गया। धन्यवाद
DirkLX

यह सुनकर बहुत अच्छा लगा :) इसे उत्तर के रूप में पोस्ट करेंगे क्योंकि यह अन्य लोगों के लिए उपयोगी हो सकता है।
Vive

हमें बिटकोड बदलने की आवश्यकता क्यों है? पहले हमें इसके मूल्य को अपडेट करने की आवश्यकता नहीं है। कोई तार्किक कारण? धन्यवाद
msmq

यह सब किया था, लेकिन फिर भी डिवाइस पर एक ही त्रुटि के साथ ऐप क्रैश हो गया। मैं iOS 9.1 का उपयोग कर रहा हूं। कृपया सहायता कीजिए!
Md रईस

जवाबों:


133

आपके द्वारा चुने गए आप सुनिश्चित रूप से Enable Bitcodeकरने के लिए NOनिर्माण के खिलाफ आप उपयोग कर रहे विन्यास (जैसे DEBUG)? आप इसे प्रोजेक्ट-> टारगेट-> बिल्ड सेटिंग्स-> सर्च enable bitcode-> में सेट कर सकते NOहैं DEBUG(टेस्ट रिलीज से पहले लिबास को अपडेट करने की कोशिश करने के लिए याद रखना अच्छा है, शायद इसमें पहले से ही बिटकोड होगा)। फिर स्कीम को एडिट करें -> रन -> चेक करें कि क्या आपके पास DEBUGए.टी.एम.

यहां छवि विवरण दर्ज करें


1
@Zorayr जैसा कि आपने मेरी पोस्ट में छवि जोड़ी है: आपको सबसे पहले अपने ऐप बिल्ड सेटिंग्स की जांच करनी चाहिए और ऐप के निर्माण सेटिंग्स में इस ध्वज को बदलना चाहिए। केवल अगर यह मदद नहीं करता है, तो फली के साथ भी ऐसा ही करें।
Vive

3
क्या ऐप स्टोर में स्वीकार किया जाएगा यदि Enable Bitcodeसेट किया गया है NO?
Ne के रूप में

@ नीस हां। वर्तमान में, बिटकॉइन को सक्षम करने की कोई आवश्यकता नहीं है।
विवि

आपको अपने सभी पॉड्स के लिए बिटकॉइन को निष्क्रिय करना चाहिए
वादिम

53

ध्यान दें कि कोकोआपोड्स का उपयोग करने वाली परियोजनाओं के लिए आपको ENABLE_BITCODE = NOप्रोजेक्ट और पॉड्स कंटेनर प्रोजेक्ट लक्ष्य दोनों पर सेट होना चाहिए ।

यह गलती

Ld /Users/maximveksler/Library/Developer/Xcode/DerivedData/ParseUI-gwtgmlgbpobjfjfjgkiwdahqveos/Build/Products/Debug-iphoneos/ParseTwitterUtils.framework/ParseTwitterUtils normal arm64
    cd /Users/maximveksler/Developer/ParseUI-iOS/Pods
    export IPHONEOS_DEPLOYMENT_TARGET=9.0
    export PATH="/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode-beta.app/Contents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
    /Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch arm64 -dynamiclib -isysroot /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.0.sdk -L/Users/maximveksler/Library/Developer/Xcode/DerivedData/ParseUI-gwtgmlgbpobjfjfjgkiwdahqveos/Build/Products/Debug-iphoneos -L/Users/maximveksler/Developer/ParseUI-iOS/Pods/ParseTwitterUtils -F/Users/maximveksler/Library/Developer/Xcode/DerivedData/ParseUI-gwtgmlgbpobjfjfjgkiwdahqveos/Build/Products/Debug-iphoneos -filelist /Users/maximveksler/Library/Developer/Xcode/DerivedData/ParseUI-gwtgmlgbpobjfjfjgkiwdahqveos/Build/Intermediates/Pods.build/Debug-iphoneos/ParseTwitterUtils.build/Objects-normal/arm64/ParseTwitterUtils.LinkFileList -install_name @rpath/ParseTwitterUtils.framework/ParseTwitterUtils -Xlinker -rpath -Xlinker @executable_path/Frameworks -Xlinker -rpath -Xlinker @loader_path/Frameworks -miphoneos-version-min=9.0 -dead_strip -fembed-bitcode-marker -ObjC -lParseTwitterUtilsLib -lsqlite3 -lz -framework AudioToolbox -framework CFNetwork -framework CoreGraphics -framework CoreLocation -framework QuartzCore -framework Security -framework StoreKit -framework SystemConfiguration -weak_framework Accounts -weak_framework Social -fobjc-arc -fobjc-link-runtime -framework AudioToolbox -framework Bolts -framework CFNetwork -framework CoreGraphics -framework CoreLocation -framework Foundation -framework Parse -framework QuartzCore -framework Security -framework StoreKit -framework SystemConfiguration -single_module -compatibility_version 1 -current_version 1.8.1 -Xlinker -dependency_info -Xlinker /Users/maximveksler/Library/Developer/Xcode/DerivedData/ParseUI-gwtgmlgbpobjfjfjgkiwdahqveos/Build/Intermediates/Pods.build/Debug-iphoneos/ParseTwitterUtils.build/Objects-normal/arm64/ParseTwitterUtils_dependency_info.dat -o /Users/maximveksler/Library/Developer/Xcode/DerivedData/ParseUI-gwtgmlgbpobjfjfjgkiwdahqveos/Build/Products/Debug-iphoneos/ParseTwitterUtils.framework/ParseTwitterUtils

ld: '/Users/maximveksler/Developer/ParseUI-iOS/Pods/ParseTwitterUtils/libParseTwitterUtilsLib.a(PFTwitterAuthenticationProvider.o)' does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

द्वारा हल किया गया था:

यहां छवि विवरण दर्ज करें

यहां छवि विवरण दर्ज करें


क्या ऐप्पल ऐप को अस्वीकार कर देता है, अगर हम इसे बिटकोड = NO के विकल्प के साथ सबमिट करते हैं?
गणेश गुटुरि Ganesh

@ जीगण कृपया एक अलग प्रश्न के रूप में पोस्ट करें। नीति टीवीओएस और वॉचओएस के बीच भिन्न होती है जहां उत्तर हां है। आईओएस जवाब वर्तमान में नहीं है, भविष्य में हाँ।
मैक्सिम वीक्स्लर

@GaneshGuturi वर्तमान में हाँ, लेकिन शायद Apple भविष्य में किसी समय इसे काट देगा। अधिक विवरण यहाँ उदाहरण के लिए: stackoverflow.com/a/31207170/849616
Vive

17

मुझे Xcode7 में भी यही समस्या आई थी। इसके लिए समाधान:

  • के लिए जाओ PROJECT
  • निर्माण Settings
  • चुनते हैं All Tab
  • खोज में टाइप करें Enable Bitcode
  • Update Flag, No(जो आपकी परियोजना के नीचे होगा (दूसरा कॉलम))

15

मुझे GoogleAnalytics कोको पॉड लाइब्रेरी के साथ इसी तरह की समस्या थी, और पुस्तकालय आईओएस 8 के साथ iPhone 6 के लिए संकलन नहीं कर रहा था।

मेरा समाधान एप्लिकेशन प्रोजेक्ट के लक्ष्य में NO "सक्षम बिटकोड" ध्वज को चालू करना था - पॉड्स प्रोजेक्ट में नहीं।


मैंने अपने उत्तर में टिप्पणी में यही कहा है। प्रोजेक्ट सेटिंग्स पर इसे करने की कोशिश करने के लिए, यदि और केवल अगर यह काम नहीं कर रहा है तो पॉड प्रोजेक्ट पर जाएं।
Vive

लक्ष्य और परियोजना को बिटकॉइन के निर्माण के लिए स्विच करना NO, ARCHIVING के लिए काम नहीं करता है। काम करता है सिम बनाता है। XCODE 7.0.1
ort11

11

अगर आपका Bitcode नहीं दिखा रहा है तो कृपया सबको selec करें। जब xcode बेसिक का चयन करता है तो आपका Bitcode विकल्प प्रदर्शित नहीं होता है।

यहां छवि विवरण दर्ज करें

जब आप सभी का चयन करते हैं तो आप बिटकोड देख सकते हैं। उसके बाद विज्ञापन कॉन्फ़िगर करने के लिए No सेट करें यहां छवि विवरण दर्ज करें


10

मैंने अभी इसे अपने प्रोजेक्ट के लिए सेट किया है।

MyProjectTarget -> सेटिंग बनाएँ -> Bitcode = NO सक्षम करें


1
क्या एप्लिकेशन स्टोर में खारिज कर दिया जाएगा?
Ne के रूप में

5

जैसा कि सभी ने कहा, इसका उत्तर बिल्ड सेटिंग्स में सेट Enable BitcodeहैNo , लेकिन मुझे लगता है कि आप में से कुछ कमांड लाइन से ऐसा करने में दिलचस्पी ले सकते हैं ।

एकता द्वारा मेरा Xcode प्रोजेक्ट तैयार किया जा रहा है और मैं Xcode प्रोजेक्ट सेटिंग्स पर कोई मैन्युअल हस्तक्षेप नहीं करना चाहता। शायद एक बेहतर तरीका या एक उपकरण है जो बिल्ड सेटिंग्स को संपादित कर सकता है जैसे कि प्लिस्टबुडी आपको plistफाइलों में मूल्यों को कैसे अपडेट करने देता है । मैं किसी भी उपकरण को नहीं जानता, जो सेटिंग बनाने के लिए ऐसा करता है इसलिए मैं sed का उपयोग कर रहा हूं ।

sed: नियमित अभिव्यक्ति के आधार पर प्रतिस्थापन चलाएँ।

कैसे स्थापित करने के लिए Enable Bitcodeकरने के लिए Noकमांड लाइन से:

यहाँ, मेरे प्रोजेक्ट का नाम है, Unity-iPhoneइसलिए मैं अपने Xcode प्रोजेक्ट के रूट से निम्न कमांड चलाता हूं:

sed -i -e 's/ENABLE_BITCODE = YES;/ENABLE_BITCODE = NO;/g' \ 
Unity-iPhone.xcodeproj/project.pbxproj

-e - रन करने के लिए sed कमांड्स निर्दिष्ट
करें -i - हर फाइल के लिए अलग-अलग स्क्रिप्ट्स को इन-प्लेस, एडिट करना

निकालें -iयदि आप केवल यह क्या करता है का पूर्वावलोकन चाहते हैं;)

ध्यान दें कि इस आदेश का उपयोग करके आपके सभी बिल्ड कॉन्फ़िगरेशन बदल दिए जाएंगे, लाइन ENABLE_BITCODE = YES;मेरे में 6 बार दिखाई दी project.pbxproj

अब मेरे बिल्ड चरणों को पूरी तरह से स्वचालित किया जा सकता है क्योंकि फास्टलेन बाकी की देखभाल करता है!


3

यदि आपको enable_bitcode फ्लैग नहीं मिलता है। खोज बार के पास ऊपरी टूलबार पर "ऑल" टैब पर क्लिक करें। यहां छवि विवरण दर्ज करें


कृपया अपना उत्तर बेहतर ढंग से समझाने के लिए कुछ कोड जोड़ें।
उस्मान मकबूल

1

यदि आप BITCODE सेटिंग को प्रोजेक्ट में बदलने में सक्षम नहीं हैं, तो टर्मिनल में इस कमांड को आज़माएं,

xcodebuild -target "लक्ष्य" -configuration "कॉन्फ़िगरेशन" ENABLE_BITCODE = NO

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