बंडल में 'मेन' ​​नाम का स्टोरीबोर्ड नहीं मिला


86

मुझे एक अजीब त्रुटि मिल रही है: 'Could not find a storyboard named 'Main' in bundle NSBundle'जब मैं असली आईओएस डिवाइस पर अपना ऐप चलाने की कोशिश कर रहा हूं।

मेरे पास मेरी निर्देशिका में फ़ाइल है, और यह सिम्युलेटर में ठीक काम करता है। हालाँकि, Copy Bundle Resourcesअनुभाग में, फ़ाइल Main.storyboardलाल है।

मैंने इसे हटाने और इसे फिर से जोड़ने की कोशिश की है, बिना किसी लाभ के साथ Xcode को फिर से शुरू करना, बिल्ड बिल्ड साफ करना आदि। यह चेतावनी मुझे Xcode में मिलती है:

/Users/ajay/Documents/avx/avx/Base.lproj/Main.storyboard: Internationalization of /Users/ajay/Documents/avx/avx/Base.lproj/Main.storyboard is not available when compiling for targets before iOS 6.0

मैंने इस पोस्ट के अंदर समस्या को हल करने का तरीका बताया: stackoverflow.com/a/21098195/1141395
एलेक्स Cio

यह समस्या मुख्य रूप से भ्रष्ट एप्लिकेशन इंस्टॉलेशन के कारण होती है। समाधान परियोजना की सफाई और निर्माण करना है। डिवाइस / सिम्युलेटर से मौजूदा ऐप को भी हटा दें और फिर से चलाएं।
कृष्णभद्र

Xcode 11 उपयोगकर्ता, stackoverflow.com/a/58452686 तक स्क्रॉल करते हैं , संभवतः यह बिल्कुल आपका मामला है।
Cemen

जवाबों:


92

अपने प्रोजेक्ट का info.plist खोलें और स्क्रीनशॉट में प्रदर्शित चयनित पंक्ति को हटा देंयहां छवि विवरण दर्ज करें

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


24
धन्यवाद, लेकिन इसने मेरे ऐप को एक ब्लैक स्क्रीन के साथ लॉन्च किया। हालांकि कोई दुर्घटना नहीं हुई।
कारपेटिफ़िज़

अपने (BOOL) एप्लिकेशन: (UIApplication *) एप्लिकेशन didFinishLaunchingWithOptions: (NS ढलान *) के लॉन्चिंग में ये दो पंक्तियां सुनिश्चित करें: ... (1) self.window = [[UIWindow आवंटन] initWithFrame: [[UIScreen MainScreen] सीमा]]; (२) स्व.विंडो.बैकग्राउंडकॉलर = [यूआईसी बॉर्डर व्हाइटकॉर्न];
जोएल हैनसेन

@ Carpetfizz Add '[self.window makeKeyAndV अदृश्य];) अपने AppDelegate को।
अलसेरा

4
"ब्लैक स्क्रीन के साथ ऐप लॉन्च", किसी को भी इसके लिए कोई विचार नहीं है?
उमित काया

@ यूमिट ने बैकग्राउंड को व्हाइट (view.backgroundColor =। सफेद) या किसी भी अन्य रंग की तरह सेट करें
स्टीफन पेकेट

59

आप स्टोरीबोर्ड की लक्ष्य सदस्यता की जांच कर सकते हैं। हो सकता है जहां समस्या है:

यह इस तरह दिखना चाहिए:

लक्ष्य सदस्यता


मेरे पास एक ही मुद्दा था और पहले मुझे लगा कि मैं लक्ष्य के लिए सही संसाधनों की नकल नहीं कर रहा हूं, लेकिन लक्ष्य सदस्यता को तय करने से समस्या ठीक हो गई।
pyj

2
धन्यवाद, काम किया! मैंने बिना किसी खुशी के क्लीन, रिनेम फाइल, अपडेट प्लास्ट किया। यह हमेशा सबसे स्पष्ट होता है जो आपको मिलता है।
जिम गेल्डरमैन

नमस्ते, मैं एक ही मुद्दा रहा हूँ लेकिन लक्ष्य सदस्यता विंडो नहीं दिखा रहा है, Xcode 7. कृपया मदद करें
DrPatience

किसी कारण से, मेरा लक्ष्य नहीं चुना गया था .. इस उत्तर के लिए धन्यवाद .. हल किया गया !!
Junmañg mürmån

58

Xcode 11 पर इस समस्या का सामना करने वाले किसी भी व्यक्ति के लिए, स्टोरीबोर्ड कम प्रोजेक्ट सेटअप करते समय इस समस्या का सामना करने पर आप इसे कैसे ठीक करते हैं

(कुछ हिस्सों को जोड़ना जो रिकार्डोपीरेरा से चूक गए)

1) सबसे पहले, Main.storyboard फ़ाइल को हटाएं

2) अगला, PROJECT_NAME -> सामान्य पर जाएं

मुख्य इंटरफ़ेस ड्रॉप-डाउन में, टेक्स्ट को हटाएं मुख्य

सामान्य सेटिंग्स से मुख्य के संदर्भ को हटाना

3) अब info.plist पर जाएं और स्टोरीबोर्ड का नाम हटाएं

info.plist से स्टोरीबोर्ड के संदर्भ को हटा रहा है

4) अंत में, दृश्य को संशोधित करें (_: willConnectTo: Options) कोड को फ़ाइल में SceneDelegate.ift (हां! यह ऐप डेलीगेट में अब और नहीं है।)।

var window: UIWindow?


    func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
        // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`.
        // If using a storyboard, the `window` property will automatically be initialized and attached to the scene.
        // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead).
        guard let windowScene = (scene as? UIWindowScene) else { return }
        window = UIWindow(frame: windowScene.coordinateSpace.bounds)
        window?.windowScene = windowScene
        window?.rootViewController = ViewController()
        window?.makeKeyAndVisible()
    }

आप इसके बजाय इस वीडियो को भी देख सकते हैं: https://www.youtube.com/watch?v=Htn4h51BQsk


3
आपका उत्तर लगभग सही है बस दृश्य समारोह में थोड़ा बदलाव है: guard let _ = (scene as? UIWindowScene) else { return } let viewController = ViewController() if let windowScene = scene as? UIWindowScene { self.window = UIWindow(windowScene: windowScene) self.window?.rootViewController = viewController self.window?.makeKeyAndVisible() }
रेजा देहणवी

3
कुछ जोर जोड़ने के लिए, info.plist प्रविष्टि केवल सामान्य मुख्य स्टोरीबोर्ड प्रविष्टि नहीं है, बल्कि एएलएसओ भी है जो एप्लिकेशन दृश्य मेले में आईओएस 13 के लिए नया है। मुझे महसूस होने से पहले दो बार पढ़ना पड़ा।
jboulter11

यह अब चीजों को करने का सही तरीका है! ^ ^ Apple चीजों को बदलता रहा।
युकेन झोंग

36

IOS 13.0 और इसके बाद के संस्करण के लिए बनाए गए एप्लिकेशन के लिए एक अपडेट। (Xcode 11)

यदि आपको त्रुटि मिलती है, तो जानकारी में "मेन स्टोरीबोर्ड फ़ाइल आधार नाम" को बदलने के बाद भी बंडल में 'मेन' ​​नामक स्टोरीबोर्ड नहीं मिल सकता है। लक्ष्य में तैनाती के तहत "मेन स्टोरीबोर्ड" और "मेन इंटरफेस"।

फिर आपको info.plist फ़ाइल में एक और प्रविष्टि को बदलना होगा।

  1. Info.plist फ़ाइल खोलें।
  2. "एप्लिकेशन दृश्य मैनिफेस्ट" का विस्तार करें।
  3. "दृश्य कॉन्फ़िगरेशन" का विस्तार करें।
  4. "एप्लिकेशन सत्र भूमिका" के तहत आइटम 0 का विस्तार करें और फिर वहां स्टोरीबोर्ड का नाम बदलें।

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

और आपका एप्लीकेशन काम करना शुरू कर देगा।


1
यह बिल्कुल सही जवाब है। जाहिरा तौर पर यह जनरल> मेन इंटरफेस ड्रॉपडाउन से मुख्य स्टोरीबोर्ड सेट करने के लिए पर्याप्त नहीं है।
NRitH

1
इसके लिए धन्यवाद। "एप्लिकेशन दृश्य मैनिफेस्ट" कुंजी (इसके सभी उप-कुंजी के साथ) को हटाने से मेरे लिए समस्या हल हो गई।
ग्रेग ब्राउन

1
मैं वास्तव में नहीं जानता कि क्या हुआ लेकिन यह काम करता है
बावनथा

1
आपने मेरी जान बचाई :)
यूसुफ कामिल एके

17

UISceneIOS 13 और Xcode 11 में उपयोग होने वाले प्रोजेक्ट में, आपको UISceneStoryboardFileकुंजी को निकालने की आवश्यकता है .plist

Xcode 11:

xcode11-uiscene

फ़ाइल से सीधे बदलना:

uiscene-plist


15

मैंने अपने फोन से एप्लिकेशन को हटा दिया, उत्पाद -> साफ किया, और फिर से लोड किया। यह सब मेरे लिए है।


हर निष्पादन के लिए यदि हटा दिया जाता है तो केवल उसका क्रियान्वयन मुझे ... कृपया मुझे xcode में मदद करें 10.1
अरुणा एम

12

मुझे यह त्रुटि मिली, हालांकि, स्टोरीबोर्ड को पूरी तरह से हटाने का मेरा उद्देश्य था।

मेरी कहानी से 'मुख्य स्टोरीबोर्ड फ़ाइल आधार नाम' को हटाने से त्रुटि ठीक हो गई।


10

बंडल में 'मेन' ​​नाम का स्टोरीबोर्ड नहीं मिला

कारण मैं सोच सकता था:

जहां तक ​​मेरे iOS ज्ञान ने मुझे निष्कर्ष निकाला है, यह सिर्फ इसलिए हुआ क्योंकि XCode ऐप में इसे कॉपी करने के लिए मेरे प्रोजेक्ट डायरेक्टरी के भीतर Main.storyboard फ़ाइल का संदर्भ खोजने में असमर्थ था।

संकल्प:

  1. Main.storyboard फ़ाइल का चयन किया और हटाने की कोशिश की, और संवाद है कि पॉप अप निम्नानुसार है: यहां छवि विवरण दर्ज करें

  2. "संदर्भ हटाएं" बटन पर क्लिक किया।

  3. फिर, वास्तविक जगह से जहाँ मैं प्रोजेक्ट डायरेक्टरी के भीतर Main.storyboard फ़ाइल ढूँढ सकता था, घसीटा गया, और XCode में छोड़ दिया गया, और फिर से संवाद जो कि निम्नानुसार पॉप अप करता है: यहां छवि विवरण दर्ज करें

  4. मैंने चुना, "फ़ोल्डर संदर्भ बनाएं" (क्योंकि यह एक चीज है जो मैंने करने का इरादा किया है क्योंकि मैंने अपनी परियोजना की फ़ाइल और फ़ोल्डर संरचना बदल दी है)। लेकिन ज्यादातर बार "समूह बनाएँ" भी काम कर सकते हैं। और "समाप्त" बटन पर क्लिक किया। मेरी स्टोरीबोर्ड फ़ाइलें पहले से ही स्क्रीनशॉट में पहले से ही एक Base.lprojनिर्देशिका के भीतर इस प्रकार दिखाई गई थीं :

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

    नोट: इस चरण में यहाँ याद दिलाने वाली एक महत्वपूर्ण बात यह है कि, अपने ऐप में "लक्ष्य में जोड़ें" चेकबॉक्स पर टिक करना न भूलें।

  5. उत्पाद को साफ़ करें, फिर से बनाएँ, और यदि यह सफल है, तो अधिकांश समय इसे चलाने का प्रयास करें यह सफल होगा।

आशा है कि यह किसी और के लिए उपयोगी हो सकता है! मैंने XCode 7.3.1 और iOS सिम 9.3 और iPhone 6S पर यह कोशिश की!


कृपया इस समस्या का सामना कर रहे हैं os10.14.1 और xc0de 10.1 को स्थापित करने के बाद 10.1..मैं 3 दिनों से हल करने की कोशिश कर रहा हूं, लेकिन फिर भी .. मेरा प्रोजेक्ट xcode9.1 में अच्छा काम करता है ..
अरुणा एम

@ArunaM क्या आपने उपरोक्त चरणों की कोशिश की जो मैंने उत्तर में दिए हैं? ऐसा करने के बाद क्या स्थिति थी?
Rand19 Vishman

1
यह एक समाधान था जब मैंने प्रोजेक्ट से एक ViewController को हटा दिया था जो एक ही त्रुटि का कारण बना!
स्लेर्टी बार्टफास्ट

8

उनके नक़्शे - कदम पर चलिए:

1) सबसे पहले अपनी स्टोरी बोर्ड पर क्लिक करें

2) इसके बाद फाइल इंस्पेक्टर पर क्लिक करें

3) फिर "लक्ष्य सदस्यता" चुनें

स्क्रीन शॉट


6

सिम्युलेटर संवेदनशील नहीं है, लेकिन डिवाइस है। यदि आपके स्टोरीबोर्ड को MainStoryboard कहा जाता है, तो MainStoryBoard नहीं, यह आपकी समस्या का कारण होगा। और इसके अलावा * एक्सटेंशन का उपयोग न करें केवल कहानी बोर्ड नाम लिखें

main.storyboard -> केवल मुख्य स्टोरीबोर्ड नाम है


6

स्विफ्ट 5.1 और एक्सकोड 11.2

मेरे मामले में, मैं बदलने के लिए भूल गया Storyboard NameमेंInfo.plist

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

Info.plist सोर्स कोड

    <dict>
        <key>UIApplicationSupportsMultipleScenes</key>
        <false/>
        <key>UISceneConfigurations</key>
        <dict>
            <key>UIWindowSceneSessionRoleApplication</key>
            <array>
                <dict>
                    <key>UISceneConfigurationName</key>
                    <string>Default Configuration</string>
                    <key>UISceneDelegateClassName</key>
                    <string>$(PRODUCT_MODULE_NAME).SceneDelegate</string>
                    <key>UISceneStoryboardFile</key>
                    <string>AccountViewController</string>
                </dict>
            </array>
        </dict>
    </dict>

4
  1. आप स्टोरीबोर्ड फ़ाइल खोलें
  2. इसके बाद फाइल इंस्पेक्टर पर क्लिक करें
  3. फिर "लक्ष्य सदस्यता" चुनें और अपनी परियोजना की जांच करें
  4. ViewController फ़ाइल के लिए भी ऐसा ही करें यदि आप अपने स्टोरीबोर्ड के साथ ViewController.swift या ViewController.m का उपयोग करते हैं तो करें !!!

3

यह त्रुटि तब आती है, जब आप अपनी फ़ाइल को हटाने के बाद अपने main.storyboard फ़ाइल को ट्रैश से पुनर्प्राप्त करते हैं। मुझे कल भी इसी मुद्दे का सामना करना पड़ा।

आपको main.storyboard के फाइल इंस्पेक्टर में मुख्य समूह के स्थान पथ को सापेक्ष के समूह के रूप में सेट करना होगा। उसके बाद उसी विशेषता में, आपको अपने ऐप लक्ष्य पर चेक मार्क का बीमा करना होगा (जैसा कि आप संलग्न चित्र में देख सकते हैं)।

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


2

दो अलग-अलग समाधान जो मेरे लिए Xcode 10.1 में अपग्रेड करने के बाद काम करते हैं:

  • में फ़ाइल> कार्यस्थान (या परियोजना) सेटिंग्सलीगेसी बिल्ड सिस्टम पर स्विच करें ।

  • अपने लक्ष्य बनाएँ बिल्ड चरणों में , Copy बंडल संसाधन (यदि सूचीबद्ध हो) से Base.lproj फ़ोल्डर को हटा दें और सुनिश्चित करें कि आपके प्रत्येक स्टोरीबोर्ड को सूचीबद्ध किया गया है और इसके बजाय अलग से कॉपी किया गया है।

उपरोक्त सुधारों में से किसी एक को लागू करने के बाद, सुनिश्चित करें कि आप उत्पाद मेनू से एक बार क्लीन बिल्ड फ़ोल्डर , अन्यथा ठीक से काम नहीं कर सकते हैं।


1

मेरे ऐप में काली स्क्रीन के कारण पंक्ति को हटाने से भी काली स्क्रीन दिखाई देती है। और मैंने स्टोरीबोर्ड की लक्ष्य सदस्यता को सक्षम करके इसे ठीक किया


1

जैसा कि कल्पित गजेरा ने कहा है, "अपने प्रोजेक्ट की जानकारी खोलें। स्क्रीनशॉट में प्रदर्शित चयनित पंक्ति को हटा दें"। आप बस Info.plist से 'मुख्य स्टोरीबोर्ड फ़ाइल आधार नाम' को हटा दें। आपके द्वारा इसे हटाए जाने के बाद, साफ़ करें और चलाएं, प्रोग्राम अब विफल नहीं होगा बल्कि एक काली स्क्रीन दिखाएगा। Info.plist को फिर से खोलें और मैन्युअल रूप से पंक्ति को वापस जोड़ें। समस्या हल हुई।


0

main.storyboard चुनें, आईओएस 6.1 और पहले के रूप में दृश्य बदलें, फिर एक्सकोड यू को बताएगा कि आपको क्या करने की आवश्यकता है।

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


0

मेरा समाधान है:

जब मैंने दो दृश्य और प्रॉजेक्ट कॉन्फ़िगरेशन के बीच एक Seque कनेक्शन जोड़ा है, परिनियोजन लक्ष्य कम है तो 8.0 मुझे यह त्रुटि मिलती है।

ठीक है, आसान समझ जब आप IOS 6.0 के लिए विकसित होते हैं (उदाहरण के लिए) तो आप Seque का उपयोग नहीं कर सकते हैं, क्योंकि Seque को IOS या या .......... ;-) की आवश्यकता है

इसलिए, मैंने 8.0 परिनियोजन लक्ष्य निर्धारित किया है और त्रुटि दूर हो गई है !!!! अन्य समय में, मैं सभी सेगमेंट कनेक्शन्स को रद्द करता हूं और IBAction, पुराने स्कूल ;-) के साथ इसे संभालता हूं;


0

मैं Main.Storyboard फ़ाइल को "ब्लू" उप फ़ोल्डर में ले जा रहा था, जो समस्या पैदा कर रहा था, मुझे इन निर्देशों के बाद उप फ़ोल्डर जोड़ना था Xcode 6.3 नई फ़ाइल समस्या

उसके बाद Main.Storyboard फ़ाइल को पीले सब फ़ोल्डर में ले जाना मेरे लिए काम किया


0

मेरे मुद्दे को .xmlप्रत्यय को हटाकर हल किया गया थाMain.storyboard.xml file

जाहिरा तौर पर, प्रत्यय उस संस्करण से बदल गया जिसमें से मैंने परियोजना को आयात किया था।

इसलिए, फ़ाइल का नाम बदलना ( .xmlप्रत्यय को हटाते हुए ) और पुनरारंभ करना, फिर Project-> clean....समस्या को ठीक किया।


0

यदि फिर भी आपके पास काली स्क्रीन है, तो अपने दृश्य प्रतिनिधि में नीचे दिए गए कोड को जोड़ने का प्रयास करें

willConnectTo

    guard let windowScene = (scene as? UIWindowScene) else { return }
    window = UIWindow(frame: windowScene.coordinateSpace.bounds)
    window?.windowScene = windowScene
    let navController = UINavigationController()
    let mainstoryboard:UIStoryboard = UIStoryboard(name: "Your storyboard name", bundle: nil)
    let initialController = mainstoryboard.instantiateViewController(withIdentifier: "your initial controller Identifier") as! initialController
    navController.addChild(initialController)
    window?.rootViewController = navController
    window?.makeKeyAndVisible()

0

यदि आपका स्टोरीबोर्ड प्रोजेक्ट में जोड़ा गया है (जो आप xcode उपयोगिता क्षेत्र के प्रोजेक्ट फाइल इंस्पेक्टर अनुभाग से निर्धारित करेंगे)चेक बॉक्स लक्ष्य सदस्यता क्षेत्र में चिह्नित है

आपको बस Main.Storyboard"कॉपी बंडल रिसोर्स" (इन Build Phase) से निकालना है और फिर से "कॉपी बंडल रिसोर्स" में जोड़ना है। यह मेरे लिए काम किया था।यहां छवि विवरण दर्ज करें


-1

ठीक है यह एक प्रक्रिया रही है। इतनी सारी अलग-अलग चीजों को आजमाना। OS 10.11 पर रनिंग xcode 6.4। 'मुख्य' समस्या नहीं मिल रही है। मैंने आखिरकार क्या किया। फाइंडर से भी अपने डेस्कटॉप पर main.storyboard को बंद कर दिया था। एक साफ और निर्माण और xcode छोड़ दिया। Xcode को पुनः आरंभ करने पर अब इसमें लाल main.storyboard है। मैं इसे चलाने के वस्तुतः एक ही बात करता है। फिर मैं प्रोजेक्ट फ़ोल्डर पर राइट क्लिक करता हूं और विकल्प फ़ाइलों को चुनता हूं ... ब्राउज़ करें कि यह कहां है और इसे खोलें। फिर जब यह दाईं ओर है तो पहचानकर्ता निरीक्षक होना चाहिए। स्थान के तहत छोटे फ़ोल्डर पर क्लिक करें। उस फ़ोल्डर में फिर से ब्राउज़ करें और चुनें चुनें। फिर मैं भागा और यह काम किया। तथास्तु !!!


-1

उस स्टोरी कंट्रोलर का चयन करें जिसे आप पहले स्टोरीबोर्ड के बाईं ओर सूची में दिखाना चाहते हैं, फिर विशेषता निरीक्षक में सुनिश्चित करें कि इसका शीर्षक "मेन" है और "इनिशियल व्यू कंट्रोलर" के लिए चेकबॉक्स चयनित है।

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