चेतावनी: प्रतिलिपि बंडल संसाधन निर्माण चरण में इस लक्ष्य की Info.plist फ़ाइल होती है


269

मैंने एक प्रोजेक्ट को दो बिल्ड में अलग किया है और उनमें से प्रत्येक को एक plistफाइल दिया है। सब कुछ ठीक काम करता है, लेकिन मैं इस बिल्ड चेतावनी को जारी रखता हूं:

चेतावनी: प्रतिलिपि बंडल संसाधन निर्माण चरण में इस लक्ष्य की Info.plist फ़ाइल 'MyApp-Info.plist' है

मुझे यह तब मिलता है जब मैं निर्माण करने की कोशिश करता हूं MyApp। दूसरे लक्ष्य के लिए निर्माण एक ही त्रुटि देता है ( SecondTarget-Info.plistचेतावनी में)। मुझे यकीन नहीं है कि यह चेतावनी क्यों है, क्योंकि मैं चाहता हूं कि बिल्ड में वह .plistफ़ाइल हो। .plistफ़ाइलों में से प्रत्येक में एक लक्ष्य सदस्यता है (अपने स्वयं के निर्माण के लिए)।

इस चेतावनी का क्या मतलब है? क्या इसे दूर करने का कोई तरीका है?


आपको प्रत्येक लक्ष्य में Info.plist जोड़ने की आवश्यकता नहीं है। प्रत्येक लक्ष्य के बजाय सेटिंग बनाएँ -> पैकेजिंग -> Info.plist फ़ाइल -> लक्ष्य के लिए स्थान Info.plist
onmyway133

जवाबों:


595

https://developer.apple.com/library/content/qa/qa1649/_index.html

अंश:

आपको यह चेतावनी इसलिए मिल रही है क्योंकि आपने संभवतः अपने कॉपी बंडल संसाधन में अपनी Info.plist फ़ाइल जोड़ी है जैसा कि चित्र में दिखाया गया है

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

INFOPLIST_FILE बिल्ड सेटिंग आपके लक्ष्य से जुड़े Info.plist का नाम निर्दिष्ट करती है। लक्ष्य बनाते समय, Xcode इस बिल्ड सेटिंग को पढ़ता है और संदर्भित Info.plist को आपके एप्लिकेशन बंडल में कॉपी करता है। चूँकि Xcode स्वचालित रूप से Info.plist को संसाधित करता है, इसलिए आपको इसे अपने कॉपी बंडल संसाधनों में नहीं जोड़ना चाहिए और न ही इसे लक्षित सदस्य बनाना चाहिए।

इस चेतावनी को हल करने के लिए, चित्र 1 में दिखाए अनुसार कॉपी बंडल रिसोर्स बिल्ड चरण से अपने Info.plist का चयन करें, फिर चरण से हटाने के लिए निकालें (-) बटन पर क्लिक करें।


यदि यह हल नहीं हुआ तो क्या समस्या होगी?
हसन

2
@ hasan83, आपको बिल्ड चेतावनी मिलेगी, और निर्मित उत्पाद में Info.plist की एक अतिरिक्त प्रतिलिपि होगी जिसमें थोड़ी सी जगह होगी।
JWWalker

1
@kraftydevil, क्या आपके प्रोजेक्ट में कोई सबप्रोजेक्ट है, जिससे कि चेतावनी आपके द्वारा जांचे गए के अलावा किसी अन्य लक्ष्य को संदर्भित कर रही है?
JWWalker

5
अभी भी प्रासंगिक है, 7 साल बाद।
जंगलबेदेव

1
समाधान ने मेरे लिए Xcode 9 पर काम किया। @jungledev अभी भी प्रासंगिक है क्योंकि Apple हमें हर समय अजीब नंबरों की अजीब त्रुटियों का समाधान दिखाने के लिए Xcode विकसित करने के बजाय स्विफ्ट संस्करणों को अपडेट करने में व्यस्त है।
एमबीएच

65

Xcode 4 में ठीक करने के लिए:

1) अपनी जानकारी के संदर्भ निकालें। फाइल को चुनकर हटाएं।

2) फिर से info.plist फ़ाइल जोड़ें, लेकिन कोई गंतव्य न चुनें और "लक्ष्य में जोड़ें" विकल्प को अनचेक करें।


2
अब मैं देख रहा हूँ कि मेरे प्रोजेक्ट में प्लिस्ट फ़ाइल की प्रतिलिपि बनाते समय "लक्ष्यों में जोड़ें" को अनचेक नहीं किया गया, यही कारण था कि मुझे यह समस्या हुई। समस्या को ठीक करने के लिए, मैंने ऊपर "सही उत्तर" में दिए गए चरणों का पालन किया, हालांकि लक्ष्य को जोड़ने के बिना हटाने और फिर से जोड़ने पर भी काम किया होगा। =)
RanLearns

1
इसने मेरे लिए Xcode 6.4 में काम किया। चयनित उत्तर नहीं दिया गया।
kraftydevil

2

यदि कोई इसे Xcode 3 के साथ चलाता है, तो इसे "समूह और फ़ाइलें" के तहत बाएँ कॉलम में .plist फ़ाइल पर क्लिक करने के लिए, और ऊपरी दाएँ क्षेत्र में, .plist फ़ाइल के नाम के आगे स्थित बॉक्स को अनचेक करें। बुल्सआई आइकन के तहत। चेकबॉक्स दिखाने के लिए आपको संपादक को ज़ूम आउट करना होगा (देखें -> ज़ूम संपादक आउट)।


0

एक और उपाय है:

आपने गलती से "लक्ष्य सदस्यता" कोर डेटा से एक परियोजना फ़ाइल को हटा दिया हो सकता है।

  1. बाईं ओर प्रोजेक्ट नेविगेटर से अपना Main.storyboard चुनें

  2. दाईं ओर "फ़ाइल इंस्पेक्टर" (पहला टैब) पर जाएं

  3. "लक्ष्य सदस्यता" सूची प्राप्त करें

  4. चेक बॉक्स सक्षम करें

  5. इसे संसाधित करने के लिए थोड़ा समय दें, लेकिन जब आप इसे देखते हैं, तो अपने प्रोजेक्ट में LaunchScreen.storyboard, .xcdatamodelid, Assets.xcassets और सभी .swift फ़ाइलों को भी देखें। वे सभी लक्ष्य सदस्यता के लिए सक्षम होना चाहिए।

  6. नोट: Info.plist के पास लक्षित सदस्यता सक्षम नहीं होनी चाहिए।

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


-2

बस एक नोट के रूप में ... मैं इसके बारे में एक अच्छा रडार लिखने की कोशिश करने जा रहा हूं, लेकिन यह वास्तव में अजीब है कि स्थानीयकरण को एक्सकोड में स्टोरीबोर्ड में संभाला जाता है। यदि आप "खोजक में दिखाएँ" पूछते हैं, तो आप अपनी .storyboard फ़ाइल को चयनित नहीं बल्कि इसके युक्त फ़ोल्डर को देखेंगे। मुझे लगता है कि इसका स्टोरीबोर्ड के स्थानीयकरण के साथ क्या करना है। जैसे ही मैंने अंग्रेजी से जर्मन में बदलाव किया (और इस तरह अब रूट या en.lproj में फाइल नहीं है), मुझे परेशानी होने लगी।

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