मुझे यह त्रुटि एक पुरानी Xcode परियोजना में एक स्विफ्ट वर्ग को जोड़ने के बाद मिली।
dyld: Library not loaded: @rpath/libswift_stdlib_core.dylib
मैं प्रोजेक्ट को फिर से कैसे चला सकता हूं?
मुझे यह त्रुटि एक पुरानी Xcode परियोजना में एक स्विफ्ट वर्ग को जोड़ने के बाद मिली।
dyld: Library not loaded: @rpath/libswift_stdlib_core.dylib
मैं प्रोजेक्ट को फिर से कैसे चला सकता हूं?
जवाबों:
मेरे लिए पिछले समाधानों में से किसी ने भी काम नहीं किया। हमें पता चला कि ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES
बिल्ड सेटिंग्स में एक ध्वज है (पूर्व संस्करणों में: "एंबेडेड सामग्री में स्विफ्ट कोड") जो हां में सेट करने की आवश्यकता है। यह डिफ़ॉल्ट रूप से नहीं था!
स्विफ्ट का उपयोग शुरू करने के लिए एक उद्देश्य-सी परियोजना के रूपांतरण के दौरान कुछ गलत होने पर यह त्रुटि हो सकती है। मुद्दा यह है कि लिंकर बिल्ड सेटिंग्स को कभी ठीक से कॉन्फ़िगर नहीं किया गया है, इसलिए आपको इसे हाथ से करना होगा। रनपथ खोज पथ का निर्माण सेटिंग के लिए देखें और इसे इसके लिए सेट करें:
$(inherited) @executable_path/Frameworks
संपादित करें: मुझे यह भी जोड़ना चाहिए कि इन त्रुटियों का हाल ही में पूरी तरह से कुछ और के कारण हुआ है - Apple ने स्विफ्ट में एक बदलाव किया, शायद Xcode 6.1 या 6.1.1 में शुरू हुआ। एकमात्र समाधान Xcode को छोड़ना, किचेन एक्सेस में अपने प्रमाणपत्रों को नष्ट करना, सदस्य केंद्र पर जाना और सभी प्रमाणपत्रों और प्रोफाइलों को नष्ट करना प्रतीत होता है (स्टोर में ऐप्स के लिए प्रोफाइल को छोड़कर - आप उन्हें हटा नहीं सकते), और फिर प्रारंभ करें पूरे प्रमाणपत्र अनुरोध प्रक्रिया खरोंच से।
मुझे वास्तव में यकीन नहीं है कि इस प्रश्न को क्यों समाप्त किया जा रहा है, मुझे यह समस्या तब हुई जब मैंने पहली बार एक मौजूदा परियोजना के साथ स्विफ्ट का उपयोग करने की कोशिश की। एक Xcode पुनरारंभ भी मेरे लिए यह तय किया।
मैंने इस मुद्दे पर लंबी खोज की। इस समस्या के कई कारण हैं।
यदि आप जब आप का सामना कर रहे हैं और एक वस्तु सी परियोजना में कोड / पुस्तकालय स्विफ्ट आप 1-2-3 समाधान की कोशिश करनी चाहिए
यदि आप एक नए स्विफ्ट प्रोजेक्ट सॉल्यूशन 4 के साथ इस मुद्दे का सामना कर रहे हैं तो आप सबसे अच्छे होंगे।
Xcode, फिर कंप्यूटर और iPhone को पुनरारंभ करें
प्रोजेक्ट बिल्ड सेटिंग्स पर जाएं और Always Embed Swift Standard Libraries
(पहले Embedded Content Contains Swift Code
) ध्वज को सेट करेंYES
परियोजना का निर्माण सेटिंग में जाएं और जोड़ने @executable_path/Frameworks
के लिए Runpath Search Paths
विकल्प
यदि उपरोक्त में से कोई भी काम नहीं करता है, तो यह होना चाहिए। Apple AirSign के पोस्ट में बताए अनुसार निंजा पैक्ड सर्टिफिकेट लगता है
InHouse प्रमाणपत्र पर
Subject: UID=269J2W3P2L, CN=iPhone Distribution: Company Name, O=Company Name, C=FR
उन्होंने OU नाम से एक नया क्षेत्र जोड़ा
Subject: UID=269J2W3P2L, CN=iPhone Distribution: Company Name, OU=269J2W3P2L, O=Company Name, C=FR
इसलिए आपको सिर्फ प्रमाणपत्र और प्रावधान को फिर से बनाना चाहिए
@executable_path/../Frameworks
जहां iOS प्रोजेक्ट्स ..
को बीच में बिना इसकी आवश्यकता होती है । यदि आपने एक OS से दूसरे में कोई लक्ष्य परिवर्तित किया है, तो यह मान बदलना महत्वपूर्ण है।
मेरे मामले में मैं एक कस्टम फ्रेमवर्क आयात करने की कोशिश कर रहा था और इसी तरह की त्रुटि हो रही थी। मुझे लगता है कि मुझे एंबेडेड फ्रेमवर्क और लाइब्रेरीज़ के बजाय एंबेडेड बायनेरिज़ में फ्रेमवर्क आयात करना पड़ा।
एंबेडेड बायनेरिज़ प्रोजेक्ट सेटिंग्स के तहत हैं -> ->> जनरल
उन डेवलपर्स के लिए जिनके पास एडहॉक / एंटरप्राइज वितरण के साथ यह समस्या है,
देव पोर्टल से उत्पादन प्रमाणपत्र बनाएं और फिर वितरण प्रोफ़ाइल को पुन: बनाएँ। डाउनलोड करें और अपने मैक पर दोनों को स्थापित करें। सुनिश्चित करें कि आपने अपने Xcode बिल्ड सेटिंग्स में सही प्रोफ़ाइल का चयन किया है और अपने ऐप का पुनर्निर्माण किया है।
समाधान 5:
मेरे मामले में, accfews के उत्तर में वर्णित सभी समाधान बहुत मददगार थे लेकिन किसी ने काम नहीं किया। मैंने अपने प्रोजेक्ट के टारगेट के "जनरल" सेक्शन में "एंबेडेड बायनेरीज़" खंड में अपनी स्विफ्ट लाइब्रेरी को जोड़कर अपनी समस्या को हल किया। शायद यह इस तथ्य के कारण है कि मैंने अपने कार्यक्षेत्र में अपने स्विफ्ट ढांचे को शामिल किया है? अब यह जो भी संकलन करता है! तैयार हो जाओ स्विफ्ट, मैं यहाँ हूँ!
मेरे लिए, यह मुद्दा इस तथ्य के कारण था कि मेरा ऐप्पल वर्ल्डवाइड डेवलपर रिलेशंस सर्टिफिकेशन अथॉरिटी अमान्य था।
इसे यहां से डाउनलोड करें: https://developer.apple.com/certificationauthority/AppleWWDRCA.cer
किचेन एक्सेस में खींचें और छोड़ें, प्रोजेक्ट को साफ़ करें, और चलाएं।
मेरे पास एक ओबज-सी परियोजना थी जहां मैंने स्विफ्ट स्रोत फ़ाइलों को जोड़ना शुरू किया। निम्नलिखित ने मेरे लिए समस्या तय की:
RUNPATH SEARCH PATHS = $(inherited) @executable_path/Frameworks
EMBEDDED CONTENT CONTAINS SWIFT = YES
मैंने अभी टेम्प्लेट Xcode 6.3 से एक नया प्रोजेक्ट बनाया और अपने पुराने मूल प्रोजेक्ट के साथ प्रोजेक्ट सेटिंग्स की तुलना की।
Alt को पकड़ने की कोशिश करें, फिर उत्पाद पर जाएं -> क्लीन बिल्ड फोल्डर ...
आशा है कि यह किसी की मदद करेगा ..
इसके होने के कारण कई हैं। अभी तक एक मजेदार सप्ताहांत बिताने के बाद एक और मुद्दा है जो इस (कोड हस्ताक्षर के आदेश) का कारण बनता है, मैं एक सारांश उत्तर बनाना चाहता था जो सभी संभावित समाधानों को एक साथ लाता है:
DerivedData
और Build
डायरेक्ट्री भी हटा सकते हैं । नीचे देखकर पसंद के स्थान के लिए DerivedData
। Build
आपके प्रोजेक्ट फ़ोल्डर में होना चाहिए।@executable_path/Frameworks
। यह आसान सामान है। यदि आप अपनी खुद की कमांड लाइन का निर्माण कर रहे हैं तो आप .ipa
अपलोड करने के लिए अपनी खुद की फाइलें बना सकते हैं। उस मामले में आपको निम्नलिखित सुनिश्चित करने की आवश्यकता है:
SwiftSupport/iphoneos
का संस्करण संस्करण के समान हैContents/YourApp.app/Frameworks
क्योंकि स्विफ्ट अभी तक संस्करण के बीच द्विआधारी संगत नहीं है, आपको यह सुनिश्चित करना होगा कि ये संस्करण वह हैं जिसके साथ आपने अपना ऐप बनाया था। आप इन पुस्तकालयों के तहत पा सकते हैं /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphoneos
।codesign
पुस्तकालयों और ढांचे फ़ाइलें (नीचे Frameworks
में .app
फ़ोल्डर) पहले और उसके बाद पूरे हस्ताक्षर .app
पेड़। .app
पेड़ एक साथ हस्ताक्षर किया जाना चाहिए entitlements.plist
, लेकिन नहीं चौखटे।उम्मीद है कि जब स्विफ्ट 3.0 बाहर आएगी और हमें अपने ऐप्स के साथ स्विफ्ट को बंडल करने की आवश्यकता नहीं है तो यह पूरा मुद्दा चला जाएगा।
मेरे पास एक उत्पादन प्रमाण पत्र के साथ एक एड हॉक (या उद्यम) मोबाइलप्रोविजन का उपयोग करके यह मुद्दा था। एक विकास प्रमाणपत्र और मोबाइलप्रोविजन में स्विच करने से समस्या हल हो गई।
मेरा प्रोजेक्ट कुछ उद्देश्य-सी कक्षाओं के साथ एक स्विफ्ट परियोजना है। पुराने इनहाउस (एंटरप्राइज) सर्टिफिकेट के साथ साइन करने पर मुझे यही समस्या थी।
निम्नलिखित चरणों ने मेरे लिए यह तय किया।
Runpath Search Paths
निर्माण करने के लिए सेट करें $(inherited) @executable_path/Frameworks
:। समाधान 6:
हमारे मामले में, उद्यम वितरण प्रमाणपत्र निरस्त कर दिया गया था। एक नया प्रमाण पत्र बनाना और प्रोविज़निंग प्रोफाइल को अपडेट करना इस मुद्दे को तय करता है।
(इस त्रुटि के कई अलग-अलग कारण प्रतीत होते हैं। आशा है कि यह किसी की मदद करता है।)
मैंने एक ही मुद्दे का सामना किया है, सही कोड साइन पहचान सेट करने से समस्या हल हो गई (बिल्ड सेटिंग्स-> कोड साइनिंग आइडेंटिटी)।
Apple तकनीकी प्रश्न के अनुसार "सभी एंटरप्राइज़ और मानक iOS डेवलपर प्रमाणपत्र जो iOS 8 रिलीज़ होने के बाद बनाए गए हैं, उनमें नई टीम आईडी फ़ील्ड को उचित स्थान पर स्विफ्ट भाषा ऐप चलाने की अनुमति है"
यदि आप एंबेडेड बायनेरिज़ के माध्यम से तीन फ्रेमवर्क जोड़ते हैं, तो उन्हें लिंक्ड फ़्रेमवर्क और लाइब्रेरी में भी जोड़ा जाएगा। लिंक्ड फ्रेमवर्क और लाइब्रेरी में तीन प्रविष्टियों को हटाएं समस्या का समाधान होगा।
जादू के तरीके जैसे कि रीलोड एक्सकोड और मैक को रीस्टार्ट करना मेरे लिए कारगर नहीं है।
OS X के नवीनतम संस्करण में अपग्रेड करें (Yosemite)
घंटों परीक्षण और त्रुटि के बाद मैं इस समस्या के समाधान के लिए आया। - यदि यह आपके पाठ्यक्रम के मामले में लागू होता है।
जब तक मैंने अपने मैक ओएस एक्स को मावेरिक्स से योसेमाइट में अपग्रेड नहीं किया, तब तक मुझे यही समस्या थी। - इसने मेरी समस्या को ठीक कर दिया है, आशा है कि यह भी आपको ठीक कर देगा
मैंने वेब पर पाए जाने वाले सभी समाधानों की कोशिश की, जिसमें Apple और नए प्रमाणपत्र शामिल हैं। सफलता के बिना।
जिस तरह से मैं 6 महीने की कोशिश करने के बाद भी xcode चला सकता था, वह मेरी मैकबुक पर एक नया खाता बना रहा था।
यदि आप इस लाइब्रेरी को अपने बिल्ड चरणों में "कॉपी फ़ाइलें" खंड में जोड़ते हैं तो आमतौर पर यह त्रुटि गायब हो जाएगी।
इन समाधानों में से कोई भी मेरे लिए लगातार काम कर रहा था; सफल रन के प्रत्येक जोड़े के बाद, यह फिर से विफल होगा। "एंबेडेड कंटेंट में स्विफ्ट कोड शामिल है" झंडा हमेशा मेरे लिए हां में सेट था।
पता चलता है कि मैंने Xcode को 6.3-संगत बनाया है। इसे 3.2-संगत में बदलकर इसे हल करना:
मैं इस समस्या के रूप में अच्छी तरह से किया है, केवल यह पता लगाने नहीं था libswiftXCTest.dylib
।
समाधान XCTest.framework
टेस्ट में लक्ष्य को जोड़ने के लिए था , में Build Phases/Link Binary with Library
। मुझे यह त्रुटि तब भी हो रही थी जब मैं मुख्य लक्ष्य बनाने की कोशिश कर रहा था।
मुझे Mavericks, Xcode 6.1.1, iOS 8.1.1 के साथ iPhone5 पर परीक्षण का उपयोग करके एक ही मुद्दा मिला। मैंने नए प्रमाण पत्र और प्रोविज़निंग प्रोफाइल सहित हर संभव समाधान की कोशिश की, लेकिन कुछ भी मदद नहीं की। मैंने परिवर्तनों को किया Embedded Content Contains Swift Code
और कियाRunpath Search Paths
दोनों परियोजना स्तर और लक्ष्य स्तर पर।
मैंने अब योसेमाइट स्थापित कर लिया है, और बिना किसी और बदलाव के, इसने काम करना शुरू कर दिया।
otool