2012-09-22 10 views
9

के लिए नहीं बना रहा है हाल ही में मैंने अभी नए एक्सकोड में अपग्रेड किया है। अपग्रेड करने के बाद, मेरे कुछ ऐप्स नहीं बनाएंगे। ... सफाई,, reimporting आर्किटेक्चर बदलतेकॉमनक्रिप्टो आर्क आर्मव 7 आईओएस

कृपया मदद

+4

"पुस्तकालयों के साथ लिंक" या उसके तहत, अपने लक्ष्य निर्माण चरणों पर जाएं, libcommonCrypto.dylib को हटा दें। –

+0

कृपया ध्यान दें कि टीसी ने क्या कहा, इसे कचरा में स्थानांतरित न करें। यदि आप करते हैं, तो आपको "ld: in '/usr/lib/system/libcommonCrypto.dylib' मिल जाएगा, आर्किटेक्चर armv7 के लिए फ़ाइल /usr/lib/system/libcommonCrypto.dylib (2 स्लाइस) में आवश्यक आर्किटेक्चर armv7 अनुपलब्ध है। बस इसे अपने कचरे से वापस रखो। – Jochem

+0

@ टीसी। libCommonCrypto.dylib क्यों हटाएं? – onmyway133

उत्तर

3

इस प्रकार मैं सिर्फ इस हल -

ld: cannot link directly with /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk/usr/lib/system/libcommonCrypto.dylib. Link against the umbrella framework 'System.framework' instead. for architecture armv7 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

मैं कोशिश की है सब कुछ:

यह बदल जाता है मैं इस त्रुटि मिलती है बाहर है कि libcommonCrypto.dylib त्रुटि एक लाल हेरिंग था।

ऊपर दिए गए अनुसार libcommonCrypto.dylib को हटाने के बाद, मुझे 9 नई त्रुटियां मिलीं। पहली नज़र में, मुझे लगता है कि वे क्रिप्टो त्रुटियां थीं, लेकिन वास्तव में वे नहीं थे; मेरे लिए, यह वास्तव में zLib को शामिल नहीं किया जा रहा है, जिसे समग्र कार्यान्वयन के गहरे हिस्से में "आयातित" किया गया था (जिसमें क्रिप्टो एक हिस्सा है)।

मेरे लिए विशेष रूप से, इसे वापस ASIDataDecompressor.h का पता लगाया, #import < zlib.h>

मुझे याद आ libz.dylib ढांचे को शामिल करके यह तय; आखिरकार, मुझे libcommonCrypto.dylib को स्पष्ट रूप से शामिल करने की आवश्यकता नहीं थी।

तो, libcommonCrypto को टॉगल करने के बाद त्रुटियों को बारीकी से जांचना सुनिश्चित करें, और सुनिश्चित करें कि कुछ अन्य पुस्तकालय गायब नहीं हैं।

16

मैंने उपरोक्त दोनों की कोशिश करने के बाद इस मुद्दे को एक अलग तरीके से हल किया जहां न तो मेरे लिए काम किया।

समस्या यह है कि जब मैं मुख्य इंटरफ़ेस से पुस्तकालय (मुख्य निर्माण सेटिंग्स ... आदि) जोड़ने था मैं crypto के लिए शुरू में खोज रहा था और फिर दो libs यदि आप देखते हैं, libcorecrypto.dylib और liblibcommonCrypto.dylib वापस आता है, दोनों मौजूद था आमतौर पर येलो-रंगीन लिबियों के विपरीत ग्रे-रंग में जो आप आमतौर पर जोड़ते हैं। इन्हें जोड़ना संकलक को वापस रिपोर्ट करने का कारण बनता है (कुछ अन्य libs गायब हैं, जैसे कि libz, या कोई अन्य lib जो आपके द्वारा किए जाने वाले अधिक कार्यों की आवश्यकता होगी।

यदि आपको लगता है कि उपरोक्त दो libs आमतौर पर JavaScriptCore.framework के अंतर्गत बैठेंगे पुस्तकालय (जो पीले एक है), इसलिए, उपरोक्त दो को दूर करने और बजाय JavaScriptCore.framework जोड़कर, समस्या हल हो गया था, और build successful

से पता चला है इसके अलावा JavaScriptCore.framework अंदर एक बंडल के रूप में मौजूदा ग्रे-libs पर आधारित है कि उल्लेख करने के लिए, libcrypto और दूसरा ऊपर उल्लिखित /Library/.../system/path के तहत मौजूद नहीं होगा, यानी आपने उन्हें अपने सिस्टम से नहीं हटाया है, वे बस वहां नहीं हैं।

फिर, समाधान है:

* आपका मुख्य Xcode परियोजना सेटिंग्स से, जोड़ सकता हूँ नहीं: * dd

libcorecrypto.dylib 
liblibcommonCrypto.dylib 

इसके बजाय, जोड़ें:

JavaScriptCore.framework 

आपके में।मीटर (कोड), बस उन्हें सामान्य रूप से स्रोत करके:

#include <CommonCrypto/CommonDigest.h> (or any of your other libs as needed in code)... 

यह ठीक काम करना चाहिए।

मुझे उम्मीद है कि इससे मदद मिलती है।

सधन्यवाद

+0

धन्यवाद आदमी ... यह काम करता है। + 1 – abhi1992

+0

# आयात - नहीं # शामिल – ETech

0

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

मेरे मामले में मुझे CommonCrypto.framework पर निर्भरता को हटाना पड़ा, लेकिन यह समाधान केवल आपके फली के दूसरे अपडेट तक रहता है।

बीटीडब्ल्यू मैं पॉडफाइल में पुस्तकालयों के बीच निर्भरताओं के ग्राफ को सूचीबद्ध करने के लिए एक कमांड जानना चाहता हूं।

0

मैं एक ही त्रुटि,

ld: in '/usr/lib/system/libcommonCrypto.dylib', missing required architecture arm64 in file /usr/lib/system/libcommonCrypto.dylib (2 slices) for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

मैं अपने $ पथ की जाँच करके इस समस्या का समाधान किया था। यह एक गायब फ़ाइल थी।

अपने दोस्तों मैक सिस्टम के साथ मेरी libs तुलना find/-type f -name libcommonCrypto.dylib

का उपयोग करना, यह पता चलता है कि इस फाइल अपने कंप्यूटर पर मौजूद नहीं थे:

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/system/libcommonCrypto.dylib

Xcode /usr/lib/system/libcommonCrypto.dylib पर $ पथ वापस आने का उपयोग कर, लेकिन यह नहीं है अच्छा बनाया गया (हाथ की सामग्री के बजाय i386)।

मैंने अपने दोस्त के संस्करण की प्रतिलिपि बनाई, /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/system/ में स्थानांतरित किया और फिर मैं अपनी परियोजनाओं को फिर से बनाने में सक्षम था।

यहां एक दुष्कर्म है क्योंकि इस आर्किटेक्चर के आधार पर इस lib के लिए बहुत सी फाइल है और उनमें से अधिकतर आईओएस बिल्ड के लिए उपयोग नहीं किए जाने का इरादा है। लेकिन समर्पित डीआईआर पर कोई फाइल नहीं मिलने पर $ PATH env var/usr/lib पर फ़ॉलबैक होगा।

/usr/lib/system/libcommonCrypto.dylib पर एक्सकोड फ़ॉलबैक लेकिन यह निश्चित रूप से सही lib नहीं है क्योंकि यह आईओएस के लिए बनाया गया नहीं है, लेकिन मेरे मैक के लिए बनाया गया है।

0

Better Solution, के रूप में यह कहते हैं libcommonCrypto.dylib हटाने, और जोड़ने SystemConfiguration.framework.It मेरे लिए काम किया द्वारा की जगह, किसी को करने के लिए उपयोगी हो सकता है हो रही छाता ढांचे के खिलाफ gettingLink कह 'System.framework' लिंकर यह त्रुटि थी इसके बजाय

संबंधित मुद्दे