जब मैं XCode के साथ अपना ऐप शुरू करता हूं, तो मेरे पास एक दुर्घटना है, लेकिन कोई त्रुटि नहीं है
ऐप केवल इस थ्रेड पर रोक रहा है
समस्या के बारे में अधिक जानकारी के लिए मैं क्या कर सकता हूं?
जवाबों:
यदि आप कस्टम फ्रेमवर्क का उपयोग कर रहे हैं, तो आपको इसे टैब टारगेट / जनरल के तहत Xcode प्रोजेक्ट में स्थित "एंबेडेड बायनेरिज़" अनुभाग के अंदर रखना होगा।
मेरे लिए एक सरल Clean
और Rebuild
इसे हल किया। आशा करता हूँ की ये काम करेगा।
एंबेडेड बाइनरी एसेट लिस्ट में फ्रेमवर्क को जोड़कर इसे तय किया। यहाँ एक विदेशी फ्रेमवर्क का सेटअप एंबेडेड फ्रेमवर्क के रूप में Xcode GUI में अंतिम रूप में कैसा दिखता है (Xcode 9.2, व्यक्तिगत रूप से मुझे एक दृश्य ब्रेड क्रम्ब ट्रेल बेहतर; ;-)) पसंद है:
क्या Apple जानबूझकर रनटाइम को किसी भी तरह से समस्या के बारे में डेवलपर को बता रहा है कि आप गैर-ऐप्पल फ्रेमवर्क का उपयोग नहीं कर सकते हैं क्योंकि आईओएस विकास में बस जुड़े फ्रेमवर्क हैं? बेहतर होगा कि इसे एक बिल्ड एरर के रूप में सामने लाया जाए जो मुझे लगता है ... एक बटन के साथ जिसने कहा "इसे स्थानांतरित करें!"
एंबेडेड बायनेरिज़ का उपयोग आपके ऐप से स्वतंत्र रूप से फ्रेमवर्क जोड़ने के लिए अंतिम उपयोगकर्ता को रखता है (या आपके पास इंस्टॉलर के साथ है)। IPhone (iOS) के मामले में, यह असंभव है, लेकिन macOS पर, यह संभव है, लेकिन तेजी से गड़बड़ हो सकता है।
अंत उपयोगकर्ता के लिए, यह केवल मैकओएस पर स्थापित करने के लिए एक ऐप को खींचने और छोड़ने के लिए बहुत अच्छा है, जो कि एम्बेडेड है जहां एक लाभ बन जाता है। एंबेडिंग भी आपके ढांचे के बाहरी संस्करणों को प्रबंधित करने के क्लासिक "डीएलएल संघर्ष" से बचा जाता है। (डिस्क स्थान सस्ता है, मेरे ग्राहक का समय कीमती है)।
आखिरकार हल हो गया!
मेरे लिए जो काम किया गया वह "आवश्यक" के बजाय रूपरेखा को "वैकल्पिक" बनाना था।
उम्मीद है की वो मदद करदे!
1) निष्पादन को जारी रखें यह देखने के लिए कि क्या कोई संदेश डिबगर में दिखाई देता है जैसे कि "MyFramework.framework" नहीं मिला। यदि ऐसा है, तो इस चर्चा का पालन करें: OS X फ्रेमवर्क लाइब्रेरी लोड नहीं: 'इमेज नहीं मिली' मेरे लिए यह जवाब काम किया: https://stackoverflow.com/a/44796734/4060763
2) सुनिश्चित करें कि आपने "बायनेरिज़ बायनेरिज़" अनुभाग के माध्यम से अपने बायनेरिज़ को जोड़ा है।
3) सुनिश्चित करें कि आपने निर्माण चरण अनुभाग में चौखटे पर हस्ताक्षर करने में सक्षम किया है।
4) सुनिश्चित करें कि एम्बेडेड फ्रेमवर्क सीमलिंक नहीं हैं।
5) आप "लिंक बाइनरी विद लाइब्रेरीज़" चरण में आवश्यक के बजाय लिंक किए गए चौखटे को वैकल्पिक बना सकते हैं। यह आईओएस को लॉन्च के दौरान इन रूपरेखाओं की तलाश नहीं करने के लिए बताएगा। लेकिन वैसे भी आपको उन रूपरेखाओं का उपयोग करने के लिए त्रुटियों को ठीक करने की आवश्यकता है!
6) जांचें कि क्या सभी info.plist प्रविष्टियां अच्छी हैं। मेरे मामले में, मैं iOS के लिए मैक info.plist फ़ाइल का उपयोग कर रहा था। यह कुछ xib फ़ाइल की तलाश में था जो iOS प्रोजेक्ट में मौजूद नहीं थी।
7) इस तरह के किसी भी परिवर्तन के बाद एक साफ और निर्माण करें। यह आवश्यक है क्योंकि xcode इन फ़ाइलों को कॉपी / परिवर्तित नहीं करता है यदि वे पहले से मौजूद हैं।
8) ऐप को iPad से निकालें और फिर इंस्टॉल करें। समान कारण 7।
Guard Malloc
, सही होना। किसी को पता है कि यह दुर्घटना को ठीक क्यों करता है?
मूल प्रश्न का उत्तर देने के लिए "मैं इस मुद्दे के बारे में अधिक जानकारी के लिए क्या कर सकता हूं?", यह Apple फोरम थ्रेड एक बहुत ही सरल टिप प्रदान करता है: बस अपने दुर्घटनाग्रस्त ऐप को XCode के बाहर चलाएं (अर्थात इसे XCode से रोकें, फिर इसे मैन्युअल रूप से अपने पर चलाएं डिवाइस)। यह एक दुर्घटना लॉग का उत्पादन करेगा, जो कि हुआ। फिर आप XCode विंडो मेनू / डिवाइस और सिमुलेटर से इस लॉग की समीक्षा कर सकते हैं -> डिवाइस लॉग देखें।
मुझे Xcode 11.3 और macOS Catalina 10.15.2 के साथ एक ही मुद्दे का सामना करना पड़ा। ऐप डिवाइस का अच्छा चल रहा था लेकिन सिम्युलेटर पर नहीं। ऐसा लगता है कि सिम्युलेटर के साथ कोई समस्या है और थ्रेड सेनिटाइज़र को अक्षम करने के लिए समाधान है।
संदर्भ: https://forums.developer.apple.com/message/397978#397978
उम्मीद है की यह मदद करेगा।
मुझे एक ही हस्ताक्षर के साथ एक त्रुटि का सामना करना पड़ा (मेरी परियोजना ओब्ज-सी में थी) और मुझे पता चला कि मैं उचित रूपरेखा के साथ लिंक करना भूल गया था। डिबग लॉग में त्रुटि संदेश जिसके कारण त्रुटि मिली थी:
dyld: प्रतीक नहीं मिला: _OBJC_CLASS _ $ _ SFSafariViewController
मेरी विशिष्ट त्रुटि के लिए, Target में SafariServices.framework को जोड़ते हुए -> चरण बनाएँ -> "लिंक बाइनरी विद लाइब्रेरीज़" ने समस्या को हल किया। यदि आपके पास संभवतः एक ही विशिष्ट त्रुटि और संकल्प नहीं है, तो सुराग के लिए डिबग लॉग की जाँच करना उपयोगी है।
मैं इस स्थिति को अपडेट करने के बाद v10.2.1 को vcode और v5.0 के लिए स्विफ्ट कर चुका हूं। यदि आप कार्टेज + आरएक्सविफ्ट का उपयोग कर रहे हैं तो नया आरएक्सस्विफ्ट उपयोग करता है RxRelay.framework
। आपको अपने / कार्टेज / बिल्ड डायरेक्टरी में जाना चाहिए और उस फ्रेमवर्क को ढूंढना चाहिए और उसे अपने प्रोजेक्ट में शामिल करना चाहिए। इसे भी अपनी carthage copy-frameworks
स्क्रिप्ट में न भूलें :
$(SRCROOT)/Carthage/Build/iOS/RxRelay.framework
हल करने के लिए धन्यवाद: https://stackoverflow.com/a/52550148/2493555
यदि आप ऑब्जेक्टिव-सी एप्लिकेशन में स्विफ्ट में लिखे फ्रेमवर्क का उपयोग कर रहे हैं, तो आपको ऐप में स्विफ्ट टूलचैन को शामिल करना होगा जो फ्रेमवर्क का उपभोग करता है।
जिस तरह से मैंने ऐसा करने के लिए पाया है वह ऐप में एक डमी स्विफ्ट फ़ाइल बनाने के लिए है ताकि एक्सकोड स्विफ्ट को पहचान सके और उचित रूप से प्रोजेक्ट में जोड़ सके। फिर आप डमी फ़ाइल को हटा सकते हैं।
मुझे अच्छा लगेगा अगर कोई व्यक्ति किसी उद्देश्यपूर्ण-सी परियोजना में स्पष्ट रूप से स्विफ्ट फ़ाइल जोड़ने के बिना स्विफ्ट को जोड़ने का एक बेहतर तरीका जानता था।
मुझे इसे हल करने का सही तरीका मिल गया है।
सुनिश्चित करें कि AppleWWDRCA.cer
सेट सिस्टम डिफ़ॉल्ट मोड हो, तो यह काम करेगा:
मैं उसी मुद्दे का सामना कर रहा था। मेरे लक्ष्य के लिए बिल्ड सेटिंग्स में 'ऑलवेज एंबेड स्विफ्ट स्टैण्डर्ड लाइब्रेरीज़' को हाँ पर सेट करना मेरे लिए काम करता है।
मेरे पास समान मुद्दा था जिसे प्लिस्ट में गुम अनुमति विनिर्देश द्वारा हल किया गया था (जैसा कि यह अजीब है ..)
मैंने AVCaptureDevice का उपयोग करने की कोशिश की है और यह शुरू में ही दुर्घटनाग्रस्त हो गया (मेरा ऐप बहुत कम था)
जोड़ना -
Privacy - Camera Usage Description
करने के लिए info.plist
मेरे लिए यह हल किया।
इस त्रुटि के साथ मुठभेड़ों की लंबी सूची में जोड़ने के लिए, यह तब होता है जब मैं XCode12.2 बीटा 2 पर होता हूं, अपने मैक पर मैकओएस 10.15.5 के साथ तैनाती करता हूं, जो कि मैकओएस 11.0 पर निर्धारित तैनाती लक्ष्य के साथ होता है। यह स्थिति इसलिए हुई क्योंकि मैं एक साइडबार को जोड़ने पर मैक कैटालिस्ट ट्यूटोरियल ऐप को आज़मा रहा था। लक्ष्य को मैकओएस 10.15.5 पर स्विच करने से त्रुटि समाप्त हो गई और ऐप को ठीक से लॉन्च किया।
मैंने अपनी परियोजना में अपनी त्रुटि तय की है।
1. त्रुटि होने पर अन्य थ्रेड्स की जाँच करें। मैंने पाया कि मेरी त्रुटि कैमरे के बारे में है।
मेरे पास बस एक ही मुद्दा है और यही कारण है कि इस तथ्य के कारण कि मैंने अपने डेवलपर प्रमाणपत्रों को निरस्त कर दिया है और Xcode 10 के साथ नए बनाए हैं, एक ताजा macOS Mojave अपडेट के बाद (कुछ के लिए यह सभी लॉगिन क्रेडेंशियल को हटा दिया गया और कुछ को पुराना कर दिया गया चाबी का गुच्छा प्रमाण पत्र)।
इसलिए, मुझे केवल इतना करना था कि अपने डिवाइस से इंस्टॉल किए गए ऐप्स को हटा दें और उन्हें फिर से Xcode के माध्यम से चलाएं, ताकि मेरे डिवाइस में सही नए प्रोविजनिंग प्रोफाइल को स्थापित किया जा सके :)
कभी-कभी ऐसा होता है जब आप सिस्टम फ्रेमवर्क का उपयोग करते हैं जो केवल बाद के आईओएस संस्करण से सुलभ होते हैं जो आपका लक्ष्य संस्करण होता है। इस लिंक किए गए ढांचे को वैकल्पिक के रूप में चिह्नित करके इसे ठीक किया जा सकता है।
उदाहरण के लिए, iOS 11 पर लक्षित एक परियोजना और iOS 12 AutoFill सुविधा के लिए AuthenticationServices का उपयोग करते हुए, वर्णित 11 iOS पर दुर्घटनाग्रस्त हो जाएगा।
वास्तव में, मेरे पास 11.3.1 के साथ मुद्दा था और थ्रेड सैनिटाइज़र पहले से ही बंद था जैसा कि ऊपर बताया गया है। मेरे मामले में मैं इस तरह से अपने आवेदन फ़ोल्डर में अलग xCode संस्करणों के लिए इस्तेमाल किया गया था
/Applications/xcode11.3.1/Xcode.app
/Applications/xcode11.3/Xcode.app
/Applications/xcode10.1/Xcode.app
तथा
/Applications/Xcode.app - was 11.2
मुझे समझने में 2 दिन लगते हैं कि बिल्ड सिस्टम डिफ़ॉल्ट रूप से /Applications/Xcode.app पर दिखता है। इसलिए 11.3.1 को /Applications/Xcode.app पर लाकर समस्या को हल करें
इसके अलावा अगर आप कस्टम फ्रेमवर्क का उपयोग कर रहे हैं, तो सुनिश्चित करें कि आपने माच-ओ टाइप को स्थिर लाइब्रेरी में सेट किया है। मैंने कहीं पढ़ा है कि IOS dylib की अनुमति नहीं देता है। वैसे भी यह मेरे लिए काम किया।
मैंने उस समस्या का केवल वास्तविक डिवाइस (iPhone SE) पर चलने पर अनुभव किया। सिम्युलेटर प्रोजेक्ट पर उम्मीद के मुताबिक काम किया।
मैंने बहुत सारे धागे और यहाँ से सभी सुधारों की कोशिश की: OS X फ्रेमवर्क लाइब्रेरी लोड नहीं हुई: 'इमेज नहीं मिली' उनमें से किसी ने भी मेरे लिए काम नहीं किया।
मेरे लिए iPhone (सिक!) को पुनरारंभ करने के बाद समस्या हल हो गई थी।
मैंने किया:
और यह अंत में काम करता है। :)
यदि हर दूसरे समाधान विफल रहता है तो इसे आज़माना न भूलें।
मैंने इसे "पॉड इंस्टॉल" कमांड द्वारा सॉर्ट किया।