Xcode 10 त्रुटि: कई कमांड का उत्पादन होता है


658

त्रुटि: कई कमांड '/User/uesr/Library/Developer/Xcode/DerivedData/OptimalLive-fxatvygbofczeyhjsawtebkimvwx/Bild/Products/Debug-iphoneos/OptimalLive.app/Info.plist' ''ist.plist': '1/' '/Users/uesr/Desktop/workSpace/SEALIVE/SeaLive1.1/OptimalLive/Info.plist' को '/ Users / uesr / पुस्तकालय / डेवलपर / Xcode / DerivedData / OptimalLive-fxatvygbofczeyhjsawtebimvwxx / Build / उत्पाद / डीब / उत्पाद / डीब / उत्पाद .app / Info.plist '2) लक्ष्य' OptimalLive 'में' /User/uesr/Desktop/workSpace/SEALIVE/SeaLive1.1/OptimalLive/Server/Masnry/Info.plist 'से' / Users / uesr / तक कमांड की प्रतिलिपि है। लाइब्रेरी / डेवलपर / Xcode / DerivedData / OptimalLive-fxatvygbofczeyhjsawtebkimvwx / Build / Products / Debug-iphoneos / OptimalLive.app / Info.plist (3) लक्ष्य 'OptimalLive'इनपुट '/User/uesr/Desktop/workSpace/SEALIVE/SeaLive1.1/OptimalLive/Info.plist' के साथ प्रोसेस कमांड है

कोड को Xcode9 में चलाना काम करता है, लेकिन Xcode10 में एक त्रुटि है।


कोकोपोड्स पर निर्भरता के लिए, stackoverflow.com/a/52421345/334999
Shuo

जब आप अपने प्रोजेक्ट में थर्ड-पार्टी फ्रेमवर्क इम्पोर्ट करते हैं और इसमें सोर्स फाइल्स की जानकारी होती है। यह जानकारी.अपने ऐप के साथ टकराव करता है। बस इसे बिल्ड चरणों से हटा दें
9

प्रिय पाठक, इस सवाल का हर कोई जवाब पढ़ें, कई अलग-अलग चीजें हैं जो गलत हो सकती हैं।
इल्लुवेक्रा

गोटो पथ "बिल्ड चरण-> कॉपी बंडल संसाधन"। फ़ाइल नाम की जाँच करें और उसे हटा दें। स्वच्छ और चलाएं
अपच

जवाबों:


1222

App के भीतर कई Plist या अन्य फ़ाइलों के कारण समस्या हो सकती है-

समाधान -> खुला लक्ष्य -> ​​चरण बनाएँ> बंडल संसाधन कॉपी करें और info.plistवहां से निकालें ।

यहाँ छवि विवरण दर्ज करें

नोट: यदि आपने एक वॉच एप भी विकसित किया है, तो आपको वॉच और वॉच-एक्सटेंशन से भी प्लेस्ट हटाना होगा।


12
आपको किसी भी निर्भरता को देखने की आवश्यकता हो सकती है अर्थात गलत तरीके से जोड़ी गई जानकारी के लिए कोकोआपोड्स। फाइल फाइलें
क्रिस पेवेलियो

68
थोड़ा विस्तार करने के लिए: यह त्रुटि इसलिए हो रही है क्योंकि Xcode 10 का नया बिल्ड सिस्टम प्रोजेक्ट कॉन्फ़िगरेशन समस्याओं को पकड़ने में बेहतर है। इस तरह के मुद्दे कभी-कभी आपके निर्माण के साथ सूक्ष्म समस्याएं पैदा कर सकते हैं, इसलिए उन्हें ठीक करना अच्छा है।
रिक बलार्ड

2
मेरे मामले में मुझे InfoPlist.strings नामक कुछ स्थानीयकरण फ़ाइलों को हटाना पड़ा
neowinston

8
मेरे मामले में, मेरे पास info.plistमेरे एक निजी कोकोआपोड्स निर्भरता में एक फ़ाइल थी, जो स्कूप हो रही थी क्योंकि यह पॉडसेक की source_filesसंपत्ति से मेल खाती थी । मुझे info.plistअपने मॉड्यूल में फ़ाइल की आवश्यकता नहीं थी , इसलिए मैंने इसे हटा दिया।
अनपायर सेप १

3
धन्यवाद! मैंने कुछ समय पहले कुछ डेवलपर्स प्लग इन को अपने कोड में जोड़ा था और इसमें एक जानकारी भी थी। एक फाइल जो मेरे ऐप की जानकारी के साथ विवादित थी। कलाकार
क्रिस्टोफर स्मिट

567

मुझे इस बिल्ड त्रुटि का हल मिल गया है, किसी और के लिए Xcode 10 बिल्ड सिस्टम के साथ एक ही समस्या है, इसे ठीक करने के लिए निम्नलिखित चरणों का पालन करें:

  1. Xcode में, फ़ाइल-> प्रोजेक्ट / कार्यक्षेत्र सेटिंग्स पर जाएं।
  2. बिल्ड सिस्टम को लिगेसी बिल्ड सिस्टम में बदलें।

यहाँ छवि विवरण दर्ज करें यह नए Xcode 10 के साथ बिल्ड समस्या को हल करेगा।

यदि आप नए बिल्ड सिस्टम के साथ काम करना चाहते हैं, तो आप इस ऐप्पल एक्सकोड हेल्प पेज से समस्या निवारण सहायता पा सकते हैं ।

उम्मीद है की यह मदद करेगा!


4
क्या आप बता सकते हैं कि यह मुद्दा क्यों आ रहा है और यह भी कि लिगेसी बिल्ड सिस्टम इसे कैसे चुनता है? @ अक्षय सुंदरवानी
user832

142
आप समस्या को ठीक नहीं कर रहे हैं, आप उन्हें छिपा रहे हैं।
कैओ

4
फिक्स प्रतिक्रिया-मूल परियोजनाओं के लिए त्रुटि का निर्माण करते हैं। यहां मुद्दा देखें: github.com/facebook/react-native/issues/20492 वहाँ एक संभव फिक्स यदि आप सिस्टम विरासत बिल्ड करने के लिए स्विच करने के लिए नहीं करना चाहती है: github.com/facebook/react-native/issues/...
यूजेन टिमम

6
यह दीर्घकालिक फिक्स नहीं है। आखिरकार विरासत निर्माण प्रणाली अब एक विकल्प नहीं होगी।
पॉल किंग

6
वैसे मैं इसे ठीक करने के बजाय समस्या को छिपाने के लिए 100% हूं क्योंकि इनमें से कोई भी समाधान काम नहीं करता है। कोकोपोड्स के साथ एक ज्ञात समस्या लगती है; github.com/CocoaPods/CocoaPods/issues/7949 देखें । मुझे उम्मीद है कि यह किसी भी तरह अपने आप ठीक हो जाएगा जब तक कि यह समाधान अब एक विकल्प नहीं है।
sudo

170

Xcode -> फ़ाइल -> कार्यस्थान सेटिंग्स पर जाएं। आपको एक जैसा पॉप अप मिलेगा।

यहाँ छवि विवरण दर्ज करें

बिल्ड सिस्टम टैग से " लिगेसी बिल्ड सिस्टम " का चयन करें । " पूर्ण " पर दबाएँ

नोट: - " cmd + shift + alt + k " और " Derived Data " के साथ अपनी परियोजना को स्पष्ट करें

अपनी परियोजना का निर्माण यह आकर्षण काम करेगा :)


मेरी समझ के अनुसार हमारी मौजूदा परियोजनाएँ पुरानी स्विफ्ट और एक्सकोड में बनी हैं जो कि स्विफ्ट और एक्सकोड के पुराने संस्करण समर्थित हैं। तो इससे पहले कि हमने क्या किया, हम "बंडल सेटिंग्स-> स्विफ्ट लीगेसी बिल्ड सिस्टम" पर गए और पहले के संस्करण का चयन किया।
Hardik1344

मैं मूल रूप से "स्विफ्ट लिगेसी बिल्ड सिस्टम" पर था, लेकिन मेरे कंप्यूटर को पुनरारंभ करने के बाद इसे बंद कर दिया गया था। अगर आपको लगता है कि आपके पास यह सेट सही है, तब भी यह डबल-चेक करने लायक हो सकता है।
एंडर्सजेश

यह समाधान समस्या को ठीक नहीं करता है, यह सिर्फ इसे छिपा रहा है।
अरगस

यह भी सुनिश्चित करें कि आप प्रति-उपयोगकर्ता के कार्यक्षेत्र सेटिंग्स को उसी में बदल देते हैं;)
वी शेन


114

इसे भी आजमाएं। Xcode-> फाइल-> प्रोजेक्ट सेटिंग्स-> बिल्ड सिस्टम -> लिगेसी बिल्ड सिस्टम।


38
इस मामले में Xcode प्रोजेक्ट में एक समस्या को चिह्नित कर रहा है, इसलिए लीगेसी बिल्ड सिस्टम पर वापस लौटना अभी के लिए इसे छिपा देगा। इस तरह की समस्याओं की Xcode की रिपोर्टिंग जानबूझकर की जाती है और इस समस्या को ठीक करना सबसे अच्छा है।
रिक बलार्ड

2
अगर CocoaPods की जनरेट की गई परियोजना में त्रुटि है, तो मैं नए बिल्ड सिस्टम को तब तक अक्षम कर दूंगा जब तक कि एक नया CocoaPods संस्करण समस्या को ठीक नहीं करता।
रिवेरा

@RickBallard समझ में आता है, अब, जो सही तय हो सकता है? वहाँ जवाब का एक मिश्रण होने लगता है
rolando

1
इस तरह की त्रुटि के कई कारण हैं, लेकिन आप इसके बारे में और अधिक पढ़ सकते हैं कि इसका क्या अर्थ है। help.apple.com/xcode/mac/10.0/#/dev14a2fd0c0
रिक बलार्ड

73

यदि आप Dittoएक ही नाम (नहीं 'copy files' build phase) के कई उदाहरण बनाने वाले कमांड से इसे प्राप्त कर रहे हैं , तो आपको बदलना पड़ सकता है Product Module Name

  1. अपने लक्ष्य पर क्लिक करें। Xcode के बारे में शिकायत है
  2. पर क्लिक करें Build Settings
  3. निम्न को खोजें Product Module Name
  4. नाम को कुछ अद्वितीय में बदलें

हमारे ऐप में एक वॉच टारगेट और कुछ नोटिफिकेशन टार्गेट हैं, इसलिए मैंने सिर्फ Extensionमॉड्यूल नाम के अंत में जैसी चीजें रखी हैं ।

मुझे यह समाधान मूल रूप से यहां मिला: https://forums.developer.apple.com/thread/103913


1
यह थोड़ा ठीक काम करता है, लेकिन फिर यह ब्रिजिंग फ़ाइल के साथ टूट गया।
मोहम्मद काकती

5
मेरे मामले में, मुझे उस बिल्ड कॉन्फ़िगरेशन के चयन के Allलिए दाईं ओर का चयन करना था Product Module Name
हॉडसन

56
मुझे Xcode 10. में भी यही समस्या थी। Xcode 9.4.1 में समान प्रोजेक्ट ठीक काम कर रहा था। तो समाधान बहुत सरल है। बस लक्ष्य से सभी info.plist फ़ाइलों को हटा दें। कृपया सभी info.plist फ़ाइलों के लिए ऐसा करें। चरण 1। Info.plist फ़ाइल का चयन करें। 2. फाइल इंस्पेक्टर में टारगेट मेंबरशिप में प्रोजेक्ट को अनटिक करें। फिर अपना प्रोजेक्ट चलाएं। धन्यवाद !
एक किट

12
मेरे लिए मुझे [Project_Name]> बिल्ड चरणों> कॉपी बंडल संसाधन पर जाना था और वहाँ के डुप्लिकेट को हटाना था
user3322509

5
@Bharath अपने प्रोजेक्ट से info.plist फ़ाइलें न निकालें। आपको केवल टारगेट से हटाने की जरूरत है जैसा कि मैंने उल्लेख किया है। हम info.plist को नहीं हटा सकते, यह परियोजना के लिए बहुत महत्वपूर्ण है।
एक किट

69

मैं कोर डेटा के साथ प्रयोग कर रहा था। मैंने एक साधारण चेकलिस्ट प्रोग्राम के लिए एक डेटा मॉडल बनाया और NSManagedObjects उत्पन्न किया। जब मैंने प्रोजेक्ट संकलित किया तो मुझे निम्नलिखित त्रुटि मिली:

error: Multiple commands produce '/Users/myUSerName/Library/Developer/Xcode/DerivedData/myCoreDateExperiment-gzbslaqdwglkzxemijpdqmizgyzc/Build/Intermediates.noindex/ myCoreDateExperiment /Debug-iphonesimulator/ myCoreDateExperiment.build/Objects-normal/x86_64/CheckListItem+CoreDataProperties.o':
1) Target ' myCoreDateExperiment ' (project ' myCoreDateExperiment ') has compile command for Swift source files
2) Target ' myCoreDateExperiment ' (project ' myCoreDateExperiment ') has compile command for Swift source files

समस्या डेटा मॉडल (मेरे मामले में CheckList.xcdatamodeld) "संकलन स्रोत" सूची में थी। जब मैंने इसे सूची से हटाया, तो परियोजना को साफ-सुथरा संकलित किया गया।

  1. प्रोजेक्ट नेविगेटर खोलें और प्रोजेक्ट का चयन करें (शीर्ष पर पहली प्रविष्टि)
  2. "प्रोजेक्ट्स और लक्ष्य" फलक में लक्ष्य के तहत अपना निर्माण लक्ष्य चुनें
  3. शीर्ष के पास बिल्ड चरण विकल्प चुनें
  4. "संकलन स्रोत" प्रविष्टि का विस्तार करें और अपने डेटा मॉडल नाम की तलाश करें। "Xcdatamodeld" की खोज करें यदि आपको इसे खोजने में परेशानी हो।
  5. संकलन सूची से मॉडल हटाएं
  6. सुनिश्चित करें कि डेटा मॉडल "प्रतिलिपि बंडल संसाधन" सूची में शामिल है। अगर यह गायब है तो इसे जोड़ें।

संपादित करें

जैसा कि @WilliamT। टिप्पणियों में बताते हैं, आपको संकलन सूची में xcdatamodeld की आवश्यकता है। इसके बजाय, xcdatamodeld फ़ाइल के भीतर अपनी संस्थाओं पर जाएं। जो मॉडल गलत हैं उनका चयन करें, बाएं पैनल का विस्तार करें, और "कोडेन" के क्षेत्र को "मैनुअल / कोई नहीं" में बदलें।


36
Xcdatamodeld फ़ाइल वास्तव में संकलित स्रोतों में होनी चाहिए। यदि आप कोर डेटा के संबंध में इस त्रुटि को देख रहे हैं, तो इसकी संभावना है क्योंकि आपने "Create NSManagedObject Subclass" को लागू किया है, लेकिन आपके पास कोडीन = "क्लास डेफिनिशन" के लिए आपका एंटिटी सेट है। इसका मतलब है कि यह स्वचालित रूप से आपके लिए इन कक्षाओं को बना रहा है और आपने उन्हें मैन्युअल रूप से बनाया है ताकि वे दो बार मौजूद हों।
विलियम टी।

1
आप एक जीवन रक्षक हैं
user578386

1
@WilliamT। तो अगर कोड NSManaged ऑब्जेक्ट उपवर्ग को लागू कर रहा है, तो कोडेन का मूल्य क्या होना चाहिए?
स्वयंसेवी

2
@Kaunteya प्रत्येक CoreData विशेषता (टेबल) पर कोडगन को "मैनुअल" पर सेट करने का एक विकल्प है
विलियम टी।

1
@WilliamT का पालन करें। सलाह और फिर साफ और निर्माण।
प्रूटीगोए

40

बिल्ड लॉग की जाँच करते समय, मैंने एक चेतावनी देखी:

note: Using new build system
note: Planning build
note: Constructing build description
Build system information
warning: The Copy Bundle Resources build phase contains this target's Info.plist file '/Users/<redacted>/Repositories/Whitesmith/optimize-ios/Carthage/Checkouts/WSStatusBarNotification/Miscellaneous/Info.plist'. (in target 'JDStatusBarNotification')

तो, अगर आपका मामला है तो बस अपने लक्ष्य पर जाएं:

  1. चरणों का निर्माण
  2. बंडल संसाधन कॉपी करें
  3. हटा दें info.plist

32
info.plist फ़ाइल कॉपी बंडल संसाधनों में मौजूद नहीं है, फिर भी वही त्रुटि हो रही है
बंटी कुमार

प्रतिलिपि बंडल संसाधन निर्माण चरण से अत्यधिक Info.plist निकालना मेरे लिए इसे हल करता है। हालाँकि, मेरी चेतावनी अलग थी क्योंकि गलती से एक अलग लक्ष्य का एक Info.plist लेकिन एक ही परियोजना के भीतर कॉपी बंडल संसाधन निर्माण चरण में जोड़ा गया था। चेतावनी थी: "चेतावनी: डुप्लिकेट आउटपुट फ़ाइल '... MyApp.app/Info.plist' कार्य पर: ProcessInfoPlistFile"। और मूल प्रश्न के समान त्रुटि के लिए अग्रणी: "त्रुटि: एकाधिक कमांड '... MyApp.app/Info.plist' का उत्पादन करते हैं।"
मार्टिन पोलाक

मेरे मामले में यह "LICENSE" फ़ाइल थी - एक बार जब मैंने इसे हटा दिया, तो मुद्दा तय हो गया था, इसलिए मुझे लगता है कि समस्या "प्लिस्ट" की तुलना में अधिक सामान्य है, बस लगता है कि अभी और अधिक सामना करना पड़ा है
हमें

37

यदि आप कोकोआपोड्स का उपयोग करते हैं तो आप फली को अलग करने और फिर से स्थापित करने का प्रयास कर सकते हैं। इससे मेरा काम बनता है।

pod deintegrate

pod install


हां, मेरी समस्या फली पैकेज के कारण हुई और केवल इसने समस्या को ठीक किया! धन्यवाद
CodeBrew

@ मिंग चू धन्यवाद
एन। डेर

30

इसकी कोशिश करो:

Xcode में, फ़ाइल-> प्रोजेक्ट / कार्यक्षेत्र सेटिंग्स पर जाएं।

बिल्ड सिस्टम को लिगेसी बिल्ड सिस्टम में बदलें।


2
इस मामले में Xcode प्रोजेक्ट में एक समस्या को चिह्नित कर रहा है, इसलिए लीगेसी बिल्ड सिस्टम पर वापस लौटना अभी के लिए इसे छिपा देगा। इस तरह की समस्याओं की Xcode की रिपोर्टिंग जानबूझकर की जाती है और इस समस्या को ठीक करना सबसे अच्छा है। अधिक जानकारी के लिए कृपया help.apple.com/xcode/mac/10.0/#/dev14a2fd0c0 देखें ।
रिक बलार्ड

27

यह उत्तर पढ़ें यदि त्रुटि संदेश कोर डेटा फ़ाइलों को संदर्भित करता है

Synopsis: आपके पास स्वतः उत्पन्न और मैन्युअल रूप से जेनरेट किया गया कोर डेटा प्रबंधित ऑब्जेक्ट क्लास फाइलें दोनों हो सकती हैं।

यह उत्तर लागू होता है यदि त्रुटि की पहली पंक्ति Foo + CoreDataProperties.o या Foo + CoreDataClass.o फ़ाइल को संदर्भित करती है । उदाहरण:

error: Multiple commands produce '/Users/me/Library/Developer/Xcode/DerivedData/MyApp-uebslaqdwgldkjemijpdqmizgyzc/Build/Intermediates.noindex/ MyApp /Debug-iphonesimulator/ MyApp.build/Objects-normal/x86_64/Foo+CoreDataProperties.o':

1) Target ' MyApp ' (project ' MyApp ') has compile command for Swift source files

2) Target ' MyApp ' (project ' MyApp ') has compile command for Swift source files

मूल कारण बिल्ड ट्रांसक्रिप्ट के संकलन स्विफ्ट स्रोत फ़ाइलें खंड का विस्तार करके देखा जा सकता है । उदाहरण के लिए:

<unknown>:0: error: filename "Address+CoreDataClass.swift" used twice: '/Users/myUserName/Projects/Jnky/Foo+CoreDataProperties' and '/Users/jk/myUserName/Developer/Xcode/DerivedData/MyApp-uebslaqdwgldkjemijpdqmizgyzc/Build/Intermediates.noindex/MyApp.build/Debug/MyApp.build/DerivedSources/CoreDataGenerated/Jnky/Foo+CoreDataProperties.swift'

आपकी परियोजना निर्देशिका में स्रोत फ़ाइल का उल्लेख किया गया है, जिसे किसी ने प्रोजेक्ट नेविगेटर में आपके डेटा मॉडल का चयन करके और मेनू संपादक > प्रबंधित प्रबंधित ऑब्जेक्ट उपवर्ग में क्लिक करके उत्पन्न किया है । यह सुविधा Xcode 7 या तो में जोड़ी गई थी।

दूसरी फ़ाइल उसी नाम की एक फ़ाइल है लेकिन जिसे Xcode में दफनाया गया है DerivedData। इस फ़ाइल के दौरान स्वचालित रूप से Xcode द्वारा उत्पन्न होता है कि हर निर्माण करता है, तो डेटा मॉडल ( .xcdatamodeld) फ़ाइल लक्ष्य के में शामिल है संकलित सूत्रों का कहना है निर्माण के चरण। यह सुविधा Xcode 9 या तो में जोड़ी गई थी। प्रत्येक इकाई / वर्ग के लिए शून्य, एक या दो फाइलें उत्पन्न होती हैं, जो कोडेन पॉपअप की सेटिंग पर निर्भर करता है । जब आप अपने डेटा मॉडल को संपादित करते समय किसी इकाई का चयन करते हैं तो वह पॉपअप डेटा मॉडल इंस्पेक्टर में होता है ...

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

सेटिंग्स हैं:

  • मैनुअल / कोई नहीं फ़ाइलें उत्पन्न होती हैं
  • श्रेणी / विस्तार एक फ़ाइल, फू + CoreDataProperties.m या .swift उत्पन्न होती है, जिसमें एक उद्देश्य-सी श्रेणी या स्विफ्ट एक्सटेंशन होता है।
  • वर्ग परिभाषा वही श्रेणी / एक्सटेंशन फ़ाइल उत्पन्न होती है, और इसके अलावा एक Foo + CoreDataClass.m या .swift उत्पन्न होती है, जिसमें वर्ग घोषणा और परिभाषा होती है।

तो आप देखते हैं कि समस्या तब होती है जब एक डेवलपर (मेरे जैसे) जो पुराने Xcode का आदी होता है, एक नए Xcode में एक परियोजना शुरू करता है। हमें लगता है कि हमें Create Managed Object Subclass मेनू आइटम का उपयोग करने की आवश्यकता है , जो हम करते हैं, उन फ़ाइलों को बनाने के लिए जिन्हें हम प्रोजेक्ट नेविगेटर में देख सकते हैं, जबकि यह एहसास नहीं है कि कोडजेन पॉपअप में हमारी सेटिंग्स Xcode डुप्लिकेट फ़ाइलें बनाने के लिए पैदा कर रही हैं, जो Apple "चालाकी से" प्रोजेक्ट नेविगेटर में नहीं दिखता है, क्योंकि वे डेवलपर्स को पढ़ने के लिए विश्वास नहीं करते हैं और हेडर में टिप्पणी को ध्यान में रखते हैं // यह फ़ाइल स्वचालित रूप से उत्पन्न हुई थी और इसे संपादित नहीं किया जाना चाहिए।

समाधान 1 - पुराने तरीके का उपयोग करें

आप केवल एक सेटिंग के साथ डेटा मॉडल के लिए सभी स्वचालित कोडेन को अक्षम कर सकते हैं :

  • समस्या का लक्ष्य खोलें चरण बनाएँ ( प्रोजेक्ट नेविगेटर में , प्रोजेक्ट का चयन करें, फिर TARGETS की सूची में , जो प्रकट होता है, समस्या लक्ष्य का चयन करें, फिर टैब बनाएँ चरण )।
  • कंपाइल सोर्स प्रविष्टि का विस्तार करें और समस्या डेटा मॉडल ( .xcdatamodeldफ़ाइल) ढूंढें ।
  • इसे संकलन सूची से हटाएं
  • सुनिश्चित करें कि डेटा मॉडल कॉपी बंडल रिसोर्स सूची में शामिल है।

समाधान 2 - शुरुआती के लिए कोर डेटा मैजिक

यहां, आप सभी नए तरीके से जाते हैं।

  • अपने डेटा मॉडल को उस संकलन सूत्रों में छोड़ दें ।
  • अपने डेटा मॉडल में प्रत्येक एंटिटी इंस्पेक्टर में कोडगेन को क्लास डेफिनिशन पर सेट करें ।
  • प्रोजेक्ट नेविगेटर में, किसी भी Foo + CoreDataClass फ़ाइलों को हटाएं और उन्हें मिटा दें , और किसी भी Foo + CoreDataProperties.m या .swift फ़ाइलों को Foo + MyProperties जैसी किसी चीज़ में बदल दें
  • प्रत्येक में फू + MyProperties.m या .swift फ़ाइल, अगर वहाँ Xcode द्वारा उत्पन्न गुण हैं, क्योंकि वे द्वारा बनाई छिपा फ़ाइलों में होगा इन गुणों को नष्ट Codegen

इस समाधान के साथ, आपकी कक्षा की परिभाषाएं प्रत्येक बिल्ड पर डेटा मॉडल से स्वचालित रूप से उत्पन्न होती हैं। आप उन्हें देख भी नहीं सकते। यह कोर डाटा मैजिक है , जो शुरुआती लोगों के लिए अच्छा और सरल है।

समाधान 3 - अधिकांश वास्तविक-विश्व ऐप्स के लिए

लेकिन यदि आप वास्तव में गैर-प्रबंधित गुण जोड़ना चाहते हैं तो समाधान 2 अच्छा नहीं है। (ऑब्जेक्टिव-सी संपत्तियों को श्रेणियों में जोड़ने की अनुमति नहीं देता है, और स्विफ्ट संग्रहीत संपत्तियों को एक्सटेंशन में जोड़ने की अनुमति नहीं देता है।) इसलिए अधिकांश वास्तविक दुनिया के ऐप्स में, आप शायद समाधान 1 और 2 के बीच आधे रास्ते पर जाना चाहते हैं ...

  • अपने डेटा मॉडल को संकलित स्रोतों की सूची में छोड़ दें
  • अपने डेटा मॉडल में प्रत्येक एंटिटी इंस्पेक्टर में, कोडगन को श्रेणी / एक्सटेंशन पर सेट करें ।
  • परियोजना नेविगेटर में, हटा सकते हैं और कचरा किसी भी फू + CoreDataClass.m या .swift फ़ाइलें, और, भविष्य भ्रम को कम किसी भी नाम बदलने के लिए फू + CoreDataProperties.m या .swift शायद सिर्फ करने के लिए फ़ाइलों Foo.m या .swift
  • सुनिश्चित करें कि प्रत्येक Foo.m या .swift फ़ाइल वर्ग परिभाषा, आप अपने खुद के गैर-प्रबंधित गुण जोड़ सकते हैं जो करने के लिए होता है।

(पोजीट्रान द्वारा उत्तर के लिए आभार। मेरा उत्तर यहां बताता है कि पोजीट्रान का उत्तर (मेरा समाधान 1) क्यों काम करता है, और समाधान 2 और समाधान 3 जोड़ता है)


यह मेरे लिए काम किया। तुम कमाल हो!
सर्जन सिम्हा

अच्छा उत्तर। बस जोड़ना चाहते थे कि आप कोडेन को मैनुअल करने के बाद 'प्रोडक्ट> क्लीन बिल्ड फोल्डर' का उपयोग करके डुप्लिकेट की गई छिपी हुई फाइलों को साफ कर सकते हैं
indubitably

21

एक विकल्प जो मेरी समस्या को हल करता है वह है बिल्ड सिस्टम को लीगेसी बिल्ड सिस्टम में बदलना। कृपया Xcode 10+ में निम्न चरणों का पालन करें।

यहाँ मैंने समस्या और उसके समाधान पर एक विस्तृत लेख लिखा है। Xcode Error: कई कमांड का उत्पादन होता है

यहाँ छवि विवरण दर्ज करें

यहाँ छवि विवरण दर्ज करें


1
मेरी ज़िंदगी बचाई। पूरी तरह से काम किया।
रीनाल्डो

2
यह उत्तर एकल-हाथ की तरह तय किया गया है जैसे कि 12 समस्याएँ हैं जो मैं रिएक्ट नेटिव के साथ एक्सकोड में रहा हूं। धन्यवाद!
क्रिस गिलार्डी

19

मेरे मामले में PDFGenerator एक info.plist फ़ाइल तैयार कर रहा था, मैंने इसे हटा दिया।

यहाँ छवि विवरण दर्ज करें


18

मेरे पास एक ही समस्या थी, मेरे पास मुख्य ऐप में एक और सहायक ऐप था और संसाधन में इसे कॉपी किया। मेरे मामले में हल: -

1) लक्ष्य -> ​​2) चरण 2 बनाएँ) कॉपी फ़ाइल (एन आइटम) 3) कॉपी फ़ाइल निकालें।

हेल्पर ऐप Xcode 10.0 में स्वचालित रूप से कॉपी हो जाता है।

यहाँ छवि विवरण दर्ज करें


3
कॉपी फ़ाइलें + कॉपी बंडल संसाधन विलोपन में मदद मिली।
ओलेकेंड्रा

यह मेरे लिए मामूली संशोधन के साथ काम करता है - मेरे मामले में कॉपी फाइलों के चरण में कई फाइलें थीं, किसी तरह एक ही फाइलनाम को कई बार / दो बार बंडल में कॉपी किया गया था - जिसके परिणामस्वरूप त्रुटि: एकल पंक्ति को हटाने से आपको पंक्ति को हाइलाइट करने की आवश्यकता होती है / त्रुटि में शिकायत किए गए नाम को फ़िल्टर करें और उस संपूर्ण प्रतिलिपि फ़ाइल चरण को हटाने के बजाय माइनस साइन (इसकी हमेशा नीचे पंक्ति पर) द्वारा एक पंक्ति हटाएं।
एज़्टेकवर्यर_25

16

यहां प्रस्तावित किसी भी समाधान ने मेरे लिए काम नहीं किया। यह विशेष रूप से कोकोआपोड्स के कारण था। मैं पहले कोकोपोड्स 1.3.1 का उपयोग कर रहा था। केवल 1.5.3 में अपग्रेड करने से समस्या तुरंत हल नहीं हुई।

मैंने जिन चरणों का पालन किया, वे थे:

  1. Podfile.lock हटाएं
  2. पॉड्स निर्देशिका को हटा दें
  3. डिलीट डाटा और क्लीन डिलीट करें
  4. एक्सकोड से बाहर निकलें
  5. CocoaPods को 1.5.3 पर अपडेट करें
  6. Daud pod install
  7. कार्यक्षेत्र खोलें और निर्माण करें

5
CocoaPods को 1.5.3 पर अपडेट करना (sudo gem install cocoapods) और रनिंग (पॉड इंस्टॉल) मेरे लिए काम करने के लिए पर्याप्त था। धन्यवाद!
mikemike396

मैंने ऊपर कुछ सिफारिशें कीं, लेकिन मेरे लिए यह एकमात्र समाधान था। धन्यवाद
अल्मेडा

इसने मेरे लिए भी इसे हल कर दिया। मुझे लगता है कि यह विरासत निर्माण समाधान से बेहतर है क्योंकि यह वास्तव में मुद्दे का ध्यान रखता है।
मट्टुसक

1
यह मेरे लिए काम करता है, लेकिन मुझे install! 'cocoapods', :disable_input_output_paths => trueअपने पॉडफाइल के शीर्ष पर भी जोड़ना था । इसके अतिरिक्त, यदि आप अपने पॉड को अपडेट नहीं करना चाहते हैं - तो पॉडफाइल को अनलॉक न करें। सभी पॉड्स को उनके वर्तमान संस्करण में स्थापित किया जाएगा।
दत्तदास

11

इससे पहले कि मैं ध्यान दें कि मेरी परियोजना एक निर्भरता प्रबंधक के रूप में कार्थेज का उपयोग करती है।

यहां मौजूद किसी भी जवाब ने मेरा मसला हल नहीं किया। मेरे लिए इस मुद्दे का हल क्या था निम्नलिखित था

सबसे पहले, मैंने देखा कि निर्माण त्रुटि ने विशेष रूप से एक रूपरेखा को इंगित किया। इसके बाद मैंने ऐप टारगेट को फ़िल्टर किया> उस फ्रेमवर्क के लिए फेज बनाएँ। मैंने देखा कि फ्रेमवर्क "लिंक बाइनरी विद लाइब्रेरी" और "एंबेड फ्रेमवर्क" दोनों में मौजूद था। यह देखते हुए कि "एंबेड फ्रेमवर्क" के तहत सूचीबद्ध कोई भी फ्रेमवर्क नहीं है, जिन्हें कार्टाज द्वारा प्रबंधित किया गया था, मैंने "एंबेड फ्रेमवर्क" से प्रश्न में फ्रेमवर्क को हटा दिया। मैंने फिर से अपनी परियोजना का निर्माण किया और सब कुछ ठीक काम करता है, जिसमें प्रश्न में रूपरेखा द्वारा सक्षम कार्यक्षमता शामिल है।


1
मैंने PODS का इस्तेमाल किया। एंबेड फ्रेमवर्क से सब कुछ हटाकर काम किया। मैं साफ करता हूं और कोई त्रुटि नहीं है। विरासत समाधान भी काम करता है, लेकिन इस मुद्दे को हल नहीं करता है (यह पढ़ने वाले किसी के लिए)। मैं xcode 10.2, कोकोपोड्स-1.6.1 पर हूं।
नादिन रोज

1
मैं कार्थेज का उपयोग कर रहा हूं और इसने मेरे लिए इसे ठीक कर दिया है!
डेविन बी

मैंने कोकोपोड्स का भी इस्तेमाल किया। फ्रेमवर्क को विकास फली के रूप में जोड़ा जाता है। "एंबेड फ्रेमवर्क" खाली है और अभी भी यह मुद्दा मिला है
ल्यूटन

11

कदम:

  1. Xcode फाइल पर जाएं
  2. कार्यस्थान सेटिंग्स पर क्लिक करें
  3. बिल्ड सिस्टम लिगेसी बिल्ड सिस्टम के रूप में चुनें

4
इस मामले में Xcode प्रोजेक्ट में एक समस्या को चिह्नित कर रहा है, इसलिए लीगेसी बिल्ड सिस्टम पर वापस लौटना अभी के लिए इसे छिपा देगा। इस तरह की समस्याओं की Xcode की रिपोर्टिंग जानबूझकर की जाती है और इस समस्या को ठीक करना सबसे अच्छा है। अधिक जानकारी के लिए कृपया help.apple.com/xcode/mac/10.0/#/dev14a2fd0c0 देखें ।
रिक बलार्ड

यह मेरे लिए काम करता है। उत्पाद का नाम बदलना नहीं है जैसा कि मेरा उत्पाद आधे उद्देश्य-सी कोड और स्विफ्ट कोड के साथ मिलाया गया है। मेरा मुद्दा है "मल्टीपल कमांड्स स्विफ्टमॉडल का निर्माण"
wzhang84

10

इस 3 विकल्प में से किसी एक को आज़माएं, आपके लिए यह 3 विकल्प निश्चित रूप से काम करेगा

Option 1: Remove all files from

लक्ष्य >> बिल्ड चरण >> संकलित स्रोत

लक्ष्य >> बिल्ड चरण >> कॉपी बंडल संसाधन

Option 2: Change the build system

Xcode-> फाइल-> प्रोजेक्ट सेटिंग्स-> बिल्ड सिस्टम -> लिगेसी बिल्ड सिस्टम

Option 3: remove and update existing pod

पॉड कैश क्लीन PromisesObjC
पॉड कैश क्लीन
प्रोमिसस्विफ्ट cd [your_project_dir]
rm -rf पॉड्स /
rm पॉडफाइल.लॉक
पॉड अपडेट

I hope this will help you, Happy coding :-)

-1। नहीं, यह "सुनिश्चित करने के लिए" काम नहीं करता है। संकलन स्रोतों को हटाने और बंडल संसाधनों को कॉपी करने का क्या मतलब है ?! कोड और संसाधनों के संकलन के बिना प्रोजेक्ट काम नहीं करेगा।
ल्यूटन

9

इसलिए मुझे जो समस्या हो रही थी वह यह है कि मैंने गलती से Info.plist को प्रोजेक्ट सेटिंग्स में शामिल कर लिया था -> बिल्ड चरणों -> अपने लक्ष्य के लिए कॉपी बंडल संसाधन।


यह मेरे लिए भी ठीक समाधान था, क्योंकि Xcode 10 में tflite_camera_example को चलाने की कोशिश करते समय यह त्रुटि आई थी
zai chang

9

यह मुद्दा एसडीके के फैब्रिक सूट के दूसरे भाग को ऐप में जोड़ने के बाद मेरे लिए उत्पन्न हुआ।

वास्तव में क्या हुआ था कि पॉड्स प्रोजेक्ट में GoogleUtilly फ्रेमवर्क दो बार जोड़ा गया था

GoogleUtilities.framework के लिए दो प्रविष्टियाँ

यह Xcode 10 से पहले ठीक होता लेकिन Xcode 10 शिकायत करेगा कि किसी फाइल में इसके खिलाफ दो कार्रवाई (इस मामले में एक कॉपी कार्रवाई) है।

दूसरा ढांचा निकालना सुरक्षित है।


मेरे लिए भी ऐसा ही है, लेकिन कार्टाहेग का उपयोग करके सभी .frameworks को पुस्तकालयों के खंड परियोजना में लाया जा रहा है
रोनाल्डो अल्बर्टिनी

क्या आपने यह तय किया है @Damo
हरीकरथिक के

मैं इस मुद्दे का सामना कर रहा हूं, क्या आप मुझे बता सकते हैं कि इसे कैसे ठीक किया जा सकता है, बिना विरासत को बदले
हरिकार्थिक के

9

यहाँ एक और कार्य समाधान है: (यदि आप कस्टम पॉड का उपयोग कर रहे हैं)

  • स्क्रीनशॉट में हाइलाइट के रूप में साइडबार से "पॉड्स" चुनें।
  • बिल्ड चरण पर क्लिक करें। "हेडर्स" अनुभाग का विस्तार करें। 3 विकल्प हैं पब्लिक, प्राइवेट, प्रोजेक्ट
  • सार्वजनिक का विस्तार करें और जांच करें कि डुप्लिकेट फाइलें हैं। इसे हटा दो। किया हुआ!!

यहाँ छवि विवरण दर्ज करें


यह उत्तर उस मामले में एक समाधान के रूप में देखा जाना चाहिए (कस्टम) फली समस्या पैदा कर रहा है!
MkaysWork

इसके अलावा, आप किसी भी * .plist फ़ाइलों को यहाँ से हटा सकते हैं। यह कस्टम फली के लिए काम करने लगता है।
अमित अहीरे

8

मेरे पास Multiple commands produceचेतावनी का गुच्छा था - एक लक्ष्य में info.plist दोहराव तक सीमित नहीं। जिसमें स्थानीयकृत संसाधन और स्ट्रिंग फाइलें, हेडर आदि शामिल हैं।

समाधान: लक्ष्य सदस्यता में सभी दोहराव को हटा दें।


मेरे पास यह त्रुटि थी क्योंकि मेरे पास इसका स्वयं का infoplist.strings फ़ाइल के साथ एक घड़ी का लक्ष्य था, जिसे मुख्य एप्लिकेशन के infoplist.strings फ़ाइल के समान निर्देशिका में कॉपी किया जा रहा था। निर्माण होने पर वे दोनों एक ही स्थान पर समाप्त हो जाएंगे।
लाइक

7

मुझे यह समस्या तब हुई जब मेरे पास दो अलग-अलग लक्ष्यों में एक ही नाम वाली एक फ़ाइल थी। किसी कारण से उन फ़ाइलों में से एक मेरे पास दोनों लक्ष्यों का हिस्सा था। तो मूल रूप से मेरे पास दो फाइलें थीं। और वे दोनों फाइलें एक लक्ष्य की थीं।

यह समझ में आता है कि एक लक्ष्य में प्रति लक्ष्य केवल एक फ़ाइल का नाम हो सकता है, इसलिए मुख्य लक्ष्य से संबंधित फ़ाइल के लिए लक्ष्य सदस्य बॉक्स को अनचेक करना समस्या को निर्धारित नहीं करता है।


7

मैं कार्थेज और Xcode 10 का उपयोग कर रहा हूं।

मेरा समाधान है -> परियोजना -> लक्ष्य -> ​​सामान्य ->

"एंबेडेड बायनेरिज़" से कार्थेज के साथ जोड़े गए फ्रेमवर्क निकालें

सामान्य तौर पर यू को ऐप स्टोर के लिए आर्किटेक्चर को स्ट्रिप करने के लिए बिल्ड चरणों में एक स्क्रिप्ट जोड़ना पड़ता है।

Xcode 10 में स्क्रिप्ट हमेशा कहा जाता है। तो यह फ्रेमवर्क को सही जगह पर कॉपी करता है और आपको उन्हें जनरल टैब में नहीं जोड़ना है।

ध्यान दें: यदि सेट नहीं है -> बिल्ड सेटिंग्स में -> खोज पथ -> फ़्रेमवर्क खोज पथ -> कार्टहाज के साथ जोड़े गए फ्रेमवर्क यू के लिए पथ सेट करें .... उदा। "$ (PROJECT_DIR) / कार्थेज / बिल्ड / iOS"


7

यह ध्यान देने योग्य है कि यह त्रुटि कोरडता मॉडल के ऑटो जनरेशन के बाद उत्पन्न की जा सकती है जहां कोडगन मैनुअल / कोई नहीं पर सेट है।

Xcode 10 में इसे ठीक करने के लिए अपनी xcdatamodeId फ़ाइल पर डबल क्लिक करें और अपनी प्रत्येक इकाई का चयन करें और अपने डेटा मॉडल इंस्पेक्टर में Codegen को मैन्युअल / कोई भी कक्षा में सेट न करें।


हाँ! और एक "क्लीन बिल्ड फोल्डर" भी करें।
डिर्क

6

इसी तरह की समस्या थी लेकिन .swiftdoc फ़ाइलों के साथ।

मेरे पास परियोजना में एक्सटेंशन और यूनिट टेस्ट लक्ष्य हैं। और उनके पास आवेदन के रूप में एक ही "उत्पाद मॉड्यूल नाम" (PRODUCT_MODULE_NAME) था। नाम बनाने के बाद अद्वितीय मुद्दा चला गया।


6

Xcode 10 पर जा रहे हैं, त्रुटियों की तरह

error: Multiple commands produce '/Users/uesr/Library/Developer/Xcode/DerivedData/OptimalLive-fxatvygbofczeyhjsawtebkimvwx/Build/Products/Debug-iphoneos/OptimalLive.app/Info.plist':

निम्नानुसार हल किया जा सकता है:

के पास जाओ Xcode->File->Workspace/Project Settings-> Build System -> Legacy Build System


2
इस मामले में Xcode प्रोजेक्ट में एक समस्या को चिह्नित कर रहा है, इसलिए लीगेसी बिल्ड सिस्टम पर वापस लौटना अभी के लिए इसे छिपा देगा। इस तरह की समस्याओं की Xcode की रिपोर्टिंग जानबूझकर की जाती है और इस समस्या को ठीक करना सबसे अच्छा है। अधिक जानकारी के लिए कृपया help.apple.com/xcode/mac/10.0/#/dev14a2fd0c0 देखें ।
रिक बलार्ड

यह मेरे लिए किया, तुम श्रीमान एक
प्रतिभाशाली

6

प्रोजेक्ट बिल्ड फेज में जाएं और संकलित स्रोतों से info.plist निकालें। यह उस मुद्दे को हटा देगा और परियोजना फिर से सक्रिय हो जाएगी।

यहाँ छवि विवरण दर्ज करें


6

मेरे कोकोपॉड्स में से एक को हटा दिया गया और इस मुद्दे का कारण बना। एक फली अद्यतन किया और यह ठीक काम किया।

मेरा मानना ​​है कि यह लाइवपर्सन एसडीके रहा होगा


मेरे लिए मुझे बस install पॉड इन्स्टॉल ’करना था
पारन Sbi Wer

6

मेरा मुद्दा Mojave में चलाए जा रहे Xcode 10 में था, और XCode 10 को अपडेट करने से पहले लिखी गई यूनिट परीक्षणों को चलाने की कोशिश कर रहा था।

मेरे मामले में, मेरे पास अपना TestTargetलक्ष्य चलाते समय यह मुद्दा था । हल करने के लिए, मुझे करना पड़ा:

  • लक्ष्य निर्भरता में से एक को हटाएँ (में TestTarget > build phases > Target Dependencies)

चूँकि मेरे पास मेरे अलावा दो अन्य लक्ष्य TestTargetथे और दोनों एक ही स्क्रिप्ट पर चल रहे थे और एक निश्चित बिंदु पर फाइल बना रहे थे।

और Xcode 10 के लिए बिल्ड सिस्टम रिलीज़ नोट्स में जो उल्लेख किया गया था, उसके साथ यहाँ विरोध किया गया है :

यह किसी भी व्यक्तिगत फ़ाइल के लिए एक से अधिक बिल्ड कमांड द्वारा निर्मित की जाने वाली त्रुटि है। उदाहरण के लिए, यदि दो लक्ष्य एक ही आउटपुट फ़ाइल को शेल स्क्रिप्ट चरण से घोषित करते हैं, तो आउटपुट फ़ाइल की घोषणा को एक ही लक्ष्य में शामिल करें।

Xcode 10.1 से 10.2 तक अपडेट होने के बाद नया अद्यतन

Xcode 10.2 में अपडेट होने के बाद इसी तरह का मुद्दा फिर से दिखा। मेरे पास परियोजना द्वारा कई लक्ष्य हैं: Target1और Target2, और मैंने इस समस्या को हल कर दिया है:

  • करने के लिए नेविगेट करने Edit Scheme > Buildऔर
  • निर्मित किए जा रहे लक्ष्य में से एक को हटाना: जब से मैं आयात किया था, तब से Target1अंडर का चेकबॉक्स अनचेक कर दूंगाTestTarget2Target1

यहां यह भी ध्यान रखना Target2है कि चेकबॉक्स को किसके तहत चेक किया जाना हैTest


6
error: Multiple commands produce '/Users/KunshtechNew/Library/Developer/Xcode/DerivedData/chat21-fgjaqebxysmggqfdnetggdbzfqih/Build/Products/Debug-iphonesimulator/Chat21.app/Base.lproj/Chat.strings':
1) Target 'chat21' (project 'chat21') has copy command from '/Users/KunshtechNew/Downloads/chat21-ios-demo-master/TildeskWidget/Chat21Core/Base.lproj/Chat.strings' to '/Users/KunshtechNew/Library/Developer/Xcode/DerivedData/chat21-fgjaqebxysmggqfdnetggdbzfqih/Build/Products/Debug-iphonesimulator/Chat21.app/Base.lproj/Chat.strings'
2) Target 'chat21' (project 'chat21') has copy command from '/Users/KunshtechNew/Downloads/chat21-ios-sdk-master 2/Chat21Core/Base.lproj/Chat.strings' to '/Users/KunshtechNew/Library/Developer/Xcode/DerivedData/chat21-fgjaqebxysmggqfdnetggdbzfqih/Build/Products/Debug-iphonesimulator/Chat21.app/Base.lproj/Chat.strings'

इस समस्या से छुटकारा पाने के लिए 2 अलग-अलग उपाय हो सकते हैं:

समाधान 1

हम देख सकते हैं मैं एक ही त्रुटि हो रही थी .. मेरे मामले में वहाँ फ़ोल्डर की एक अतिरिक्त प्रति था Chat21Core में TildeskWidget ..This फ़ोल्डर मुद्दा बनाने गया था .. तो संभव समाधान में से एक भी बस त्रुटि पढ़ा जा सकता है पूरी तरह से और यह पता लगाने की कोशिश करें कि परियोजना से संदर्भित कोई अतिरिक्त प्रति है या नहीं।

समाधान २

एक और सरल समाधान मुझे तब मिला जब मैं विभिन्न परियोजना के लिए एक ही प्रकार के मुद्दे का सामना करता हूं। इस बार मुझे अलग समाधान लागू करना पड़ा।

  • pod deintegrate परियोजना से।
  • प्रोजेक्ट फ़ोल्डर से कार्यक्षेत्र फ़ाइल और पॉडलॉक फ़ाइल निकालें।
  • फिर से pod install और परियोजना के निर्माण का प्रयास करें।

आशा है कि यह आपके लिए काम कर सकता है ।।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.