Ich erhalte eine seltsame Fehlermeldung: 'Could not find a storyboard named 'Main' in bundle NSBundle'
Beim Versuch, meine App auf einem echten iOS-Gerät auszuführen.
Ich habe die Datei in meinem Verzeichnis und sie funktioniert im Simulator einwandfrei. In diesem Copy Bundle Resources
Abschnitt ist die Datei Main.storyboard
jedoch rot.
Ich habe versucht, es zu entfernen und erneut hinzuzufügen, Xcode neu zu starten, Build zu bereinigen usw. ohne Erfolg. Dies ist die Warnung, die ich in Xcode erhalte:
/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
iphone
ios
objective-c
xcode
Carpetfizz
quelle
quelle
Antworten:
Öffnen Sie die info.plist Ihres Projekts und entfernen Sie die ausgewählte Zeile, die im Screenshot angezeigt wird
Wenn Sie einen schwarzen Bildschirm erhalten, stellen Sie sicher, dass Ihr neues anfängliches Storyboard als Hauptoberfläche ausgewählt ist
quelle
Sie können die Zielmitgliedschaft des Storyboards überprüfen. Möglicherweise liegt dort das Problem:
Es sollte so aussehen:
quelle
Wenn Sie dieses Problem unter Xcode 11 haben, können Sie es wie folgt beheben, wenn Sie dieses Problem haben, wenn Sie ein Storyboard ohne Projekt einrichten
(Hinzufügen einiger Teile, die Ricardopereira übersehen hat)
1) Löschen Sie zuerst die Datei Main.storyboard
2) Gehen Sie als nächstes zu PROJECT_NAME -> GENERAL
Löschen Sie im Dropdown-Menü Hauptschnittstelle den Text Main
3) Gehen Sie nun zu info.plist und löschen Sie den Storyboard-Namen
4) Ändern Sie abschließend den Szenencode (_: willConnectTo: options) in der Datei SceneDelegate.swift (Ja! Er ist nicht mehr in App Delegate enthalten.)
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() }
Sie können stattdessen auch auf dieses Video verweisen: https://www.youtube.com/watch?v=Htn4h51BQsk
quelle
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() }
Ein Update für Anwendungen, die für iOS 13.0 und höher erstellt wurden. (Xcode 11)
Wenn die Fehlermeldung "Ein Storyboard mit dem Namen" Main "im Bundle konnte nicht gefunden werden, obwohl der" Basis-Storyboard-Dateibasisname "in der info.plist und" Main Interface "unter" Deployment in Target "geändert wurde.
Dann müssen Sie einen weiteren Eintrag in der Datei info.plist ändern.
Und Ihre Anwendung wird funktionieren.
quelle
In einem Projekt, das
UIScene
in iOS 13 und Xcode 11 verwendet wird, müssen Sie denUISceneStoryboardFile
Schlüssel aus dem entfernen.plist
.Xcode 11:
Direkt aus der Datei ändern:
quelle
Ich habe die App von meinem Telefon gelöscht, Produkt -> Bereinigen ausgeführt und sie erneut geladen. Das war alles was ich brauchte.
quelle
Ich habe diesen Fehler erhalten, aber ich wollte Storyboards vollständig entfernen.
Durch Entfernen des Schlüssels 'Name der Basis-Storyboard-Dateibasis' von meiner Liste wurde der Fehler behoben.
quelle
Es konnte kein Storyboard mit dem Namen "Main" im Bundle gefunden werden
Grund, an den ich denken könnte:
Nach meinem iOS-Wissen geschah dies nur, weil der XCode den Verweis auf die Datei Main.storyboard in meinem Projektverzeichnis nicht finden konnte, um ihn in die App zu kopieren.
Auflösung:
Wählen Sie die Datei Main.storyboard aus und versuchen Sie sie zu löschen. Dies wird im folgenden Dialogfeld angezeigt:
Klicken Sie auf die Schaltfläche "Referenz entfernen".
Dann von der tatsächlichen Stelle, an der ich die Main.storyboard-Datei im Projektverzeichnis finden konnte, per Drag & Drop in den XCode und erneut aus dem Dialogfeld, das wie folgt angezeigt wird:
Ich habe "Ordnerreferenzen erstellen" gewählt (weil ich dies beabsichtigt habe, weil ich die Datei- und Ordnerstruktur meines Projekts geändert habe). In den meisten Fällen funktioniert die Auswahl von "Gruppen erstellen" jedoch auch. Und klickte auf "Fertig stellen". Meine Storyboard-Dateien befanden sich bereits in einem
Base.lproj
Verzeichnis wie im Screenshot gezeigt wie folgt:Hinweis: Eine wichtige Sache, an die Sie bei diesem Schritt erinnern sollten, ist, dass Sie das Kontrollkästchen "Zu Zielen hinzufügen" in Ihrer App aktivieren.
Reinigen Sie das Produkt, erstellen Sie es neu, und wenn es erfolgreich ist, versuchen Sie es meistens erfolgreich.
Hoffe, das könnte jemand anderem da draußen helfen! Ich habe dies auf XCode 7.3.1 und auf iOS Sim 9.3 und iPhone 6S versucht!
quelle
Folge den Schritten:
1) Klicken Sie zuerst auf Ihr Storyboard
2) Klicken Sie dann auf Dateiinspektor
3) Wählen Sie dann "Zielmitgliedschaft"
quelle
Der Simulator unterscheidet nicht zwischen Groß- und Kleinschreibung, das Gerät jedoch. Wenn Ihr Storyboard MainStoryboard und nicht MainStoryBoard heißt, verursacht dies Ihr Problem. und auch * nicht die Erweiterungen verwenden schreiben nur den Storyboard-Namen
main.storyboard -> nur main ist der Name des Storyboards
quelle
Swift 5.1 & xCode 11.2
In meinem Fall habe ich vergessen zu ändern
Storyboard Name
inInfo.plist
Info.plist
Quellcode<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>
quelle
quelle
Dieser Fehler tritt auf, wenn Sie Ihre main.storyboard-Datei nach dem Löschen Ihrer Datei aus dem Papierkorb wiederherstellen. Ich hatte gestern auch das gleiche Problem.
Sie müssen den Speicherortpfad des main.storyboards im Dateiinspektor des main.storyboards als Relativ zur Gruppe festlegen. Danach müssen Sie im selben Attribut das Häkchen auf Ihrem App-Ziel setzen (wie Sie im beigefügten Bild sehen können).
quelle
Zwei verschiedene Lösungen, die nach dem Upgrade auf Xcode 10.1 für mich funktionierten:
In den Einstellungen Datei-> Arbeitsbereich (oder Projekt) . Wechseln Sie zu Legacy Build System .
Entfernen Sie in den Build-Phasen Ihrer Ziele den Ordner " Base.lproj " aus den Ressourcen "Bundle-Ressourcen kopieren" (falls aufgeführt) und stellen Sie sicher, dass jedes Ihrer Storyboards separat aufgelistet und kopiert wird.
Stellen Sie nach dem Anwenden eines der oben genannten Fixes sicher, dass Sie den Build-Ordner einmal im Produktmenü bereinigen, da die Fixes sonst möglicherweise nicht ordnungsgemäß funktionieren.
quelle
Das Löschen einer Zeile in der Liste verursachte auch in meiner App einen schwarzen Bildschirm. Und ich regelte es durch Aktivierung Ziel Mitgliedschaft des Storyboards
quelle
Wie Kalpit Gajera gesagt hat, "öffnen Sie die info.plist Ihres Projekts und entfernen Sie die ausgewählte Zeile, die im Screenshot angezeigt wird". Sie entfernen einfach den Basisnamen der Haupt-Storyboard-Datei aus der Info.plist. Nachdem Sie es entfernt, bereinigt und ausgeführt haben, schlägt das Programm nicht mehr fehl, sondern zeigt einen schwarzen Bildschirm an. Öffnen Sie die Info.plist erneut und fügen Sie die Zeile manuell wieder hinzu. Problem behoben.
quelle
Wählen Sie main.storyboard, ändern Sie die Ansicht als iOS 6.1 und früher, und xcode teilt Ihnen mit, was Sie tun müssen.
quelle
Meine Lösung ist:
Wenn ich eine Seque-Verbindung zwischen zwei Ansichten hinzugefügt habe und in der Projektkonfiguration das Bereitstellungsziel kleiner als 8,0 ist, wird dieser Fehler angezeigt.
ok, leicht zu verstehen, wenn Sie für IOS 6.0 entwickeln (zum Beispiel), können Sie Seque nicht verwenden, da die Seque IOS 8.0 oder höher benötigt ...... ;-)
Also habe ich das Bereitstellungsziel auf 8.0 gesetzt und der Fehler ist weg !!!! andernfalls kündige ich alle Segue-Verbindungen und kümmere mich um IBAction, old school ;-)
quelle
Ich habe die Main.Storyboard-Datei in den "blauen" Unterordner verschoben, was zu Problemen führte. Ich musste Unterordner gemäß diesen Anweisungen hinzufügen. Xcode 6.3 New File Issue
Das Verschieben der Main.Storyboard-Datei in den gelben Unterordner hat bei mir funktioniert
quelle
Mein Problem wurde behoben, indem das
.xml
Suffix aus dem entfernt wurdeMain.storyboard.xml file
.Anscheinend hat sich das Suffix von der Version geändert, aus der ich das Projekt importiert habe.
Daher wurde das Problem behoben , indem die Datei umbenannt (das
.xml
Suffix entfernt) und neu gestartet wurdeProject-> clean....
.quelle
Wenn Sie immer noch einen schwarzen Bildschirm haben, fügen Sie Ihrem Szenendelegierten den folgenden Code hinzu
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()
quelle
Wenn Ihr Storyboard im Projekt hinzugefügt wird (was Sie im Abschnitt "Projektdatei-Inspektor" des Xcode-Dienstprogrammbereichs bestimmen)
Sie müssen nur
Main.Storyboard
aus "Bundle-Ressource kopieren" (inBuild Phase
) entfernen und unter "Bundle-Ressource kopieren" erneut hinzufügen. Das wurde für mich gearbeitet.quelle
Ok, das war ein Prozess. Ich versuche so viele verschiedene Dinge. Ausführen von xcode 6.4 unter OS 10.11. Das Problem kann nicht gefunden werden. Was ich schließlich getan habe, war, das main.storyboard auch auf meinem Desktop von Finder zu entfernen. Habe einen sauberen und erstellten und xcode beendet und beendet. xcode neu gestartet jetzt hat es ein rotes main.storyboard. Ich lasse es praktisch das gleiche tun. Dann klicke ich mit der rechten Maustaste auf den Projektordner und wähle die Option Dateien hinzufügen zu ... Navigiere zu dem Ort, an dem er sich befindet, und öffne ihn. dann, wenn es dort rechts ist, sollte der Identitätsinspektor sein. Klicken Sie auf den kleinen Ordner unter Speicherort. Navigieren Sie erneut zu diesem Ordner und wählen Sie Auswählen. Dann rannte ich und es funktionierte. Amen !!!
quelle
Wählen Sie den Ansichts-Controller aus, der zuerst in der Liste auf der linken Seite des Storyboards angezeigt werden soll. Stellen Sie dann im Attributinspektor sicher, dass der Titel "Main" lautet und das Kontrollkästchen für "Is Initial View Controller" aktiviert ist.
quelle