ios - फ्रेमवर्क के साथ आईओएस ऐप डिवाइस पर दुर्घटनाग्रस्त हो गया, डाइल्ड: पुस्तकालय लोड नहीं हुआ, एक्सकोड 6 बीटा




crash swift (12)

यह दुर्घटना एक अवरुद्ध मुद्दा रहा है, मूल रूप से मैंने इस मुद्दे को पुन: पेश करने के लिए निम्नलिखित चरणों का उपयोग किया है:

  • कोको टच फ्रेमवर्क प्रोजेक्ट बनाएं
  • एक त्वरित फ़ाइल और एक वर्ग कुत्ता जोड़ें
  • डिवाइस के लिए ढांचा बनाएं
  • स्विफ्ट में एकल दृश्य एप्लिकेशन बनाएं
  • ऐप प्रोजेक्ट में फ्रेमवर्क आयात करें
  • ViewController में ढांचे से इंस्टेंटिएट स्विफ्ट क्लास
  • डिवाइस पर ऐप बनाएं और चलाएं

ऐप लॉन्च करने पर तुरंत क्रैश हो गया, यहां कंसोल लॉग है:

dyld: Library not loaded: @rpath/FrameworkTest03.framework/FrameworkTest03
  Referenced from: /var/mobile/Applications/FA6BAAC8-1AAD-49B4-8326-F30F66458CB6/FrameworkTest03App.app/FrameworkTest03App
  Reason: image not found

मैंने आईओएस 7.1 और 8.0 उपकरणों पर निर्माण करने की कोशिश की है, दोनों में एक ही दुर्घटना है। हालांकि मैं ऐप बना सकता हूं और सिम्युलेटर ठीक पर चला सकता हूं। मुझे यह भी पता है कि मैं पुस्तकालयों के साथ लिंक बाइनरी में आवश्यक से वैकल्पिक तक ढांचे को बदल सकता हूं, लेकिन यह समस्या को पूरी तरह हल नहीं करता है, जब मैं कुत्ते का उदाहरण बनाता हूं तो ऐप क्रैश हो जाता है। व्यवहार डिवाइस और सिम्युलेटर पर अलग है, मुझे संदेह है कि हम एक्सकोड के बीटा संस्करण का उपयोग कर डिवाइस के लिए ढांचे को वितरित नहीं कर सकते हैं। क्या कोई इसे स्पष्ट कर सकता है?


आईओएस के लिए 8 से अधिक या बराबर के लिए

लक्ष्य के सामान्य टैब के तहत, एम्बेडेड बैनरीज अनुभाग में ढांचे को जोड़ें। यह फ्रेमवर्क को संकलित में कॉपी करेगा ताकि इसे रनटाइम पर जोड़ा जा सके।

ये क्यों हो रहा है? : क्योंकि जिस फ्रेमवर्क को आप लिंक कर रहे हैं उसे एक गतिशील रूप से जुड़े ढांचे के रूप में संकलित किया गया है और इस प्रकार रनटाइम पर जुड़ा हुआ है।

नोट: कस्टम फ्रेमवर्क एम्बेड करना केवल आईओएस> 8 में समर्थित है और इस प्रकार और वैकल्पिक समाधान जो आईओएस के पुराने संस्करणों पर काम करता है, निम्नानुसार है।

आईओएस के लिए 8 से कम

यदि आपके पास इस ढांचे पर प्रभाव है (स्रोत कोड / निर्माण प्रक्रिया तक पहुंच है) तो आप इस ढांचे को गतिशील रूप से जुड़े हुए के बजाय स्थिर रूप से लिंक करने के लिए बदल सकते हैं। यह कोड को आपके संकलित ऐप में रनटाइम से जोड़ने के बजाय शामिल करने का कारण बनता है और इस प्रकार ढांचे को एम्बेड नहीं किया जाना चाहिए।

कैसे: ढांचे के निर्माण सेटिंग टैब के तहत, लिंकिंग सेक्शन में मैक-ओ टाइप स्टेटिक लाइब्रेरी में बदल जाता है। अब आपको एम्बेडेड बाइनरी के तहत ढांचे को शामिल करने की आवश्यकता नहीं है।

संपत्तियों सहित: छवियों, ऑडियो, या xib / nib फ़ाइलों जैसी चीजों को शामिल करने के लिए मैं एक बंडल बनाने की अनुशंसा करता हूं (अनिवार्य रूप से एक निर्देशिका, यहां अधिक जानकारी bit.ly/ios_bundle) और फिर एनएसबंडल का उपयोग करके बंडल से संपत्ति लोड करें।


  1. Xcode -> वर्कस्पेस सेटिंग्स में फ़ाइल पर जाएं
  2. दिखाई देने वाले तीर पर क्लिक करें / उपयोगकर्ता / सेब / लाइब्रेरी / डेवलपर / एक्सकोड / व्युत्पन्न डेटा
  3. व्युत्पन्न डेटा का चयन करें और इसे ट्रैश में ले जाएं।
  4. काफी एक्सकोड करें और इसे फिर से खोलें।
  5. परियोजना को साफ करें और फिर से चलाएं।

ऊपर दिए गए कदमों ने मेरे जारीकर्ताओं को हल किया।


एंबेडेड बिनरीज़ में ढांचा जोड़ें

फिर स्वच्छ और बनाएँ।


मुझे (यहां उल्लेखित शीर्ष के शीर्ष पर) बिल्ड सेटिंग्स टैब के अंतर्गत रनपैथ खोज पथ में निम्न पंक्ति जोड़ें:
@executable_path/Frameworks


मुझे आईओएस 9 .x संस्करण में एक ही तरह का मुद्दा मिला

ISSUE IS: App crashes as soon as I open the app with below error.

dyld: Library not loaded: /System/Library/Frameworks/UserNotifications.framework/UserNotifications Referenced from: /var/containers/Bundle/Application/######/TestApp.app/TestApp Reason: image not found

मैंने UserNotifications.framework फ्रेमवर्क के लिए Linked Frameworks and Libraries में Optional Required बदलकर इस समस्या का समाधान किया है।


मेरा पर्यावरण: कोकोस 2 डी 2.0, बॉक्स 2 डी, उद्देश्य सी

उपरोक्त अन्य उत्तरों को करने के अलावा मैं अंततः सामान्य टैब पर गया और वॉचकिट वैकल्पिक बनाया।


मेरे मामले में समाधान एंबेडेड बिनरीज़ से संकलित ढांचे को हटाना था, जो वर्कस्पेस में एक स्टैंडअलोन प्रोजेक्ट था, इसे साफ और पुनर्निर्माण, और आखिरकार एंबेडेड बिनरीज़ में फिर से जोड़ें।


मैंने स्विफ्ट 3 / एक्सकोड 8.1 का उपयोग करके एक ढांचा बनाया और इसे उद्देश्य-सी / एक्सकोड 8.1 प्रोजेक्ट में उपभोग कर रहा था। इस समस्या को ठीक करने के लिए मुझे Build Options तहत Always Embed Swift Standard Libraries विकल्प सक्षम करना था।

इस स्क्रीनशॉट पर एक नजर डालें:

उम्मीद है की वो मदद करदे!


यदि किसी भी अन्य उत्तर में उल्लिखित सभी चरणों का पालन करने के बावजूद, किसी को भी इस समस्या का सामना करना पड़ रहा है, तो आपको निम्नलिखित के अनुसार अपना कोड हस्ताक्षर प्रमाणपत्र निरस्त करना और फिर से बनाना होगा :

https://developer.apple.com/library/ios/qa/qa1886/_index.html


यदि विकास पॉड है तो अपने ऐप को सिम्युलेटर से हटाएं पॉड -> क्लीन -> फिर से चलाएं ...


लक्ष्य के सामान्य टैब में, एक एम्बेडेड बैनरीज फ़ील्ड है। जब आप ढांचे को जोड़ते हैं तो दुर्घटना हल हो जाती है।

ऐप्पल डेवलपर मंच पर संदर्भ here


सबसे पहले कमांड + विकल्प + Shift + K के बाद निर्माण करने का प्रयास करें। यदि अभी भी विफल रहता है तो नीचे दिए गए चरणों को करें।

यदि किसी को एक्सकोड 8 में इस त्रुटि का सामना करना पड़ रहा है तो अपने लक्ष्य के सामान्य टैब के तहत आवश्यक के बजाय वैकल्पिक रूप से अपनी ढांचे की स्थिति बदलें।







xcode6