xcode - बनाएँ के साथ विफल रहता है "कमांड एक नॉनजरो निकास कोड के साथ विफल"
(20)
अपनी परियोजनाओं के लिए सेटिंग बनाएँ, और
SWIFT_ENABLE_BATCH_MODE
नामक उपयोगकर्ता परिभाषित सेटिंग जोड़ें और इसका मान
NO
सेट करें।
जब मैं अपने ऐप को Xcode के साथ बनाने की कोशिश करता हूं, तो एक त्रुटि बिल्ड प्रक्रिया को बाधित करती है:
कमांड
CompileStoryboard
एकCompileStoryboard
एक्जिट कोड के साथ विफल हो गया
इसके बजाय, कभी-कभी यह त्रुटि दिखाता है:
कमांड
CompileSwift
एकCompileSwift
एक्जिट कोड के साथ विफल हो गया
मेरे पास न्यू बिल्ड सिस्टम चालू है।
मुझे इसे ठीक करने के लिए क्या करना चाहिए?
अलग स्टोरीबोर्ड को लिंक करते समय मुझे वही त्रुटि मिली। त्रुटि, "आदेश CompileSwiftSource एक नॉनज़रो एक्जिट कोड के साथ विफल हो गया।" दिखाया गया है क्योंकि मैं बस दूसरे स्टोरीबोर्ड के अंदर व्यू कंट्रोलर सेट करना भूल गया था जिसे मैं 'एक शुरुआती व्यू कंट्रोलर' के रूप में लिंक कर रहा हूं।
जब आप किसी प्रोजेक्ट को बनाना बंद कर देते हैं जब कंपाइलर "महत्वपूर्ण" के बीच में होता है, तो यह त्रुटि दिखाई दे सकती है। उस स्थिति में, प्रोजेक्ट को फिर से बनाना और इसे सामान्य रूप से समाप्त करने देना इस त्रुटि को गायब कर देता है।
ठीक है, मुझे Xcode 10 के साथ भी यही समस्या थी। मैं आमतौर पर हर दृश्य के लिए एक स्टोरीबोर्ड का उपयोग करता हूं, इस तरह से अगर कोई कोड को गुना करने में आसान है, तो मुझे एक स्टोरीबोर्ड पर एक दृश्य को प्रारंभिक दृश्य नियंत्रक बनाने की आवश्यकता है।
मुझे क्या मदद मिली कि
Target's Build Settings
में सभी कॉन्फ़िगरेशन के लिए
Incremental
Compilation Mode
सेट करना है।
Whole module
संकलन मोड के साथ मुझे त्रुटियां मिलीं।
लेकिन इस सेटिंग ने प्रोजेक्ट बिल्ड स्लो कर दिया।
मेरे पास
JSONwebtoken
फली लगाई गई थी और यह समस्या पैदा कर रही थी।
मुझे कॉन्सट्रिप्टो फ़ोल्डर को हटाने की आवश्यकता है जो कि
JSONWebtoken
पॉड फ़ोल्डर में है।
यहाँ एक ->
link
<- समस्या की व्याख्या है।
यह Xcode 10 में होने लगा।
मेरे पास एक ही त्रुटि थी Xcode और Recompiling को फिर से शुरू करना मेरे लिए समस्या का समाधान।
मेरे पास त्रुटि
Command LinkStoryboards failed with a nonzero exit code
, और मैंने पाया कि मैं एक गैर-मौजूद स्टोरीबोर्ड के लिए एक बाहरी स्टोरीबोर्ड संदर्भ का उपयोग कर रहा था।
मैंने हाल ही में एक स्टोरीबोर्ड फ़ाइल का नाम बदल दिया था, इसलिए 'पुराने' नाम से संदर्भ को बदलकर 'नया' नाम मेरे लिए हल कर दिया।
हो सकता है कि आपके पास मेरे जैसी ही त्रुटि न हो, लेकिन त्रुटि का अधिक विस्तृत विवरण खोजने का एक आसान तरीका है:
- समस्या नाविक दिखाएँ (जबकि बिल्ड समय त्रुटि दिखा रहा है)
-
त्रुटि पर क्लिक करें:
- फिर, आपको अपनी त्रुटि के बारे में और देखना चाहिए:
आशा है कि ये आपकी मदद करेगा।
कृपया, मुझे पता है कि मैं एक अलग त्रुटि के अनुभव से जवाब दे रहा हूं, क्योंकि इस बारे में सवाल पूछा गया था, लेकिन मेरा मानना है कि इस सलाह से आपको इसी तरह की समस्याओं को जीतने में मदद मिलेगी!
मेरे मामले में यह गलती से किसी अन्य फ़ोल्डर (समूह) में एक मौजूदा फ़ाइल के लिए एक फ़ाइल का नाम बदल रहा था, बस इसे फिर से नाम दें कि यह त्रुटि गायब हो गई थी
मेरे मामले में, एक संदेश निम्नानुसार दिखाई दिया।
कमांड कंपाइलस्विफ़्ट्स स्रोत एक नॉनज़ेरो एक्जिट कोड के साथ विफल हो गया।
मैंने टूलचिन Xcode-> टूलचिन-> Xcode 10.1 को बदल दिया
मेरे द्वारा Xcode10.1 में अपडेट करने के ठीक बाद यह हुआ था। मुझे उम्मीद है कि यह काम करेगा।
मैं टूलकिन को प्रबंधित करने के बारे में अधिक लिंक भी संलग्न करता हूं।
मेरे मामले में, मैंने एक क्लास एक्सटेंशन के अंदर बहुत जटिल इनिशियलाइज़ेशन का इस्तेमाल किया। इसने अचानक मेरा निर्माण तोड़ दिया।
class MyClass { }
extension MyClass {
static var var1 = "", var2 = "", var3 = "", var4 = "", ...., var20 = ""
}
हल:
class MyClass { }
extension MyClass {
static var var1 = "",
static var var2 = "",
static var var3 = ""
static var var4 = "", ....,
static var var20 = ""
}
मेरे मामले में, समस्या यह थी कि मैंने स्टोरीबोर्ड में viewController के लिए एक .swift वर्ग सौंपा, जबकि प्रोजेक्ट ऑब्जेक्ट सी था।
मेरे लिए इन त्रुटियों के कारण क्या था (मैं अपने कुछ कोकोपोड्स के लिए 8+ प्राप्त कर रहा था) सभी पॉड्स में किसी भी रनटाइम बिल्ड समस्या को ठीक कर रहा था।
मेरे लिए समस्या यह थी कि मेरे पोडफाइल पर मैंने use_frameworks नहीं डाला था
use_frameworks!
।
मैं बस उस लाइन को अनफॉलो करता हूं, फिर से टर्मिनल पर
pod install
चलाता हूं।
और यह तय हो गया।
यह टिप्पणी तब से की गई थी जब यह ऐप पूरी तरह से ऑब्जेक्टिव-सी पर बनाया गया था। चूंकि ऐप अब स्विफ्ट का उपयोग करता है इसलिए मुझे पोडफाइल पर यह बदलाव करना पड़ा
मैंने भी ऐसी ही समस्या का सामना किया है। मैंने कर लिया है
- स्वच्छ परियोजना - काम नहीं किया
- निकाले गए डेटा फ़ोल्डर को निकालें - काम नहीं किया
-
निर्माण प्रणाली को
Legacy Build Settings
बदलें - काम नहीं किया - XCode को पुनरारंभ करें - काम नहीं किया
-
मेरे कुछ कोड, एक
typedef NS_ENUM
इन .h फ़ाइल और संबंधित कार्यों से टिप्पणी करें। सिस्टम का निर्माण करें और दिखाई गई सफलता का निर्माण करें। अगला कोड को अन-कमेंट करें और फिर से बनाएं - जादुई रूप से काम करता है
यदि आप नए MacOS संस्करण पर उस तरह की त्रुटि का सामना कर रहे हैं।
xcrun: त्रुटि: अमान्य सक्रिय डेवलपर पथ (/ लाइब्रेरी / डेवलपर / कमांडलाइन), अनुपस्थित xcrun पर: / लाइब्रेरी / डेवलपर / कमांडलाइन / उपयोगकर्ता / बिन / xcrun
इसका मतलब है कि आपको XCode कमांड लाइन को स्थापित करने, टर्मिनल खोलने और इस कमांड को चलाने की आवश्यकता है:
$ xcode-select --install
यह त्रुटि तब हुई जब मैं NSManagedObject उपवर्ग बनाने से पहले इकाई गुण बदलना भूल गया। द्वारा हल:
-
Entity+CoreDataClass.swift
औरEntity+CoreDataProperties.swift
हटाएं। -
इकाई मॉडल इंस्पेक्टर के "वर्ग" के तहत, "मॉड्यूल" को
Current Product Module
बदलें और "कोडीन" कोManual/None
। - NSManagedObject को फिर से बनाएँ।
यह स्विफ्ट 4.2 और एक्सकोड 10 के साथ एक ज्ञात समस्या है। मुझे यहां एक लेख मिला जिसने इसे मेरे लिए तय किया: https://github.com/Yummypets/YPImagePicker/issues/236
संक्षेप में, अपनी परियोजनाओं की सेटिंग पर जाएं, और SWIFT_ENABLE_BATCH_MODE नाम की उपयोगकर्ता परिभाषित सेटिंग जोड़ें और उसका मान NO पर सेट करें।
पहले, मैंने यहाँ सुझाए गए तरीकों में से प्रत्येक (पुनर्निर्माण, एक्सकोड से बाहर, स्वच्छ और पुनर्निर्माण, शुद्ध डेटा फ़ाइलों को शुद्ध) की कोशिश की। उनमें से किसी ने भी काम नहीं किया।
एक बार जब मैंने उपयोगकर्ता को लेख के अनुसार बिल्ड सेटिंग परिभाषित किया, तो स्विफ्ट ने मुझे असली त्रुटि बताई। मेरे मामले में, यह एक गायब} था, लेकिन यह किसी भी समस्या का हो सकता है।
विरासत निर्माण प्रणाली पर स्विच करने से मेरे लिए समस्या तय हो गई
सबमॉडल में अपनी इकाई परीक्षण चलाने की कोशिश करते समय मुझे यह त्रुटि मिली। मैंने जो किया है वह सिम्युलेटर बदलें => परियोजना को साफ करें => परियोजना का निर्माण करें => इकाई परीक्षण चलाएं । इसके बाद मेरी इकाई परीक्षण बिना किसी समस्या के चलता है।