Recibo un error extraño: 'Could not find a storyboard named 'Main' in bundle NSBundle'
cuando intento ejecutar mi aplicación en un dispositivo iOS real.
Tengo el archivo en mi directorio y funciona bien en el simulador. Sin embargo, en la Copy Bundle Resources
sección, el archivo Main.storyboard
es rojo.
Intenté eliminarlo y agregarlo nuevamente, reiniciar Xcode, limpiar la compilación, etc. sin éxito. Esta es la advertencia que recibo en 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
iphone
ios
objective-c
xcode
Carpetfizz
fuente
fuente
Respuestas:
abra el info.plist de su proyecto y elimine la fila seleccionada que se muestra en la captura de pantalla
Si obtiene una pantalla negra, asegúrese de que su nuevo guión gráfico inicial esté seleccionado como su interfaz principal
fuente
Puede verificar la membresía objetivo del guión gráfico. Puede ser allí donde está el problema:
Debería verse así:
fuente
Para cualquiera que enfrente este problema en Xcode 11, así es como puede solucionarlo si se enfrenta a este problema al realizar la configuración del proyecto sin guión gráfico.
(Añadiendo algunas partes que ricardopereira se perdió)
1) Primero, elimine el archivo Main.storyboard
2) A continuación, vaya a PROJECT_NAME -> GENERAL
En el menú desplegable de la interfaz principal, elimine el texto Main
3) Ahora vaya a info.plist y elimine el nombre del guión gráfico
4) Finalmente, modifique el código de la escena (_: willConnectTo: options) en el archivo SceneDelegate.swift (¡Sí! Ya no está en App Delegate).
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() }
En su lugar, también puede consultar este video: https://www.youtube.com/watch?v=Htn4h51BQsk
fuente
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() }
Una actualización para aplicaciones creadas para iOS 13.0 y superior. (Xcode 11)
Si recibe el error "No se pudo encontrar un guión gráfico llamado 'Principal' en el paquete incluso después de cambiar el" Nombre base del archivo del guión gráfico principal "en info.plist y la" Interfaz principal "en Implementación en Target.
Entonces tienes que cambiar otra entrada en el archivo info.plist.
Y tu aplicación comenzará a funcionar.
fuente
En un proyecto que se usa
UIScene
en iOS 13 y Xcode 11, debe eliminar laUISceneStoryboardFile
clave de.plist
.Xcode 11:
Cambiar directamente desde el archivo:
fuente
Eliminé la aplicación de mi teléfono, hice Producto -> Limpiar y la cargué nuevamente. Eso es todo lo que necesité para mí.
fuente
Recibí este error, sin embargo, mi intención era eliminar los guiones gráficos por completo.
Eliminar la clave 'Nombre base del archivo del Storyboard principal' de mi plist solucionó el error.
fuente
No se pudo encontrar un guión gráfico llamado 'Principal' en el paquete
Razón en la que pude pensar:
Por lo que mi conocimiento de iOS me llegó a la conclusión, esto solo sucedió porque XCode no pudo encontrar la referencia al archivo Main.storyboard dentro del directorio de mi proyecto para copiarlo en la aplicación.
Resolución:
Seleccioné el archivo Main.storyboard e intenté eliminarlo, y en el cuadro de diálogo que aparece de la siguiente manera:
Haga clic en el botón "Eliminar referencia".
Luego, desde el lugar real donde pude encontrar el archivo Main.storyboard dentro del directorio del proyecto, lo arrastré y soltó en el XCode, y nuevamente desde el cuadro de diálogo que aparece de la siguiente manera:
Elegí "Crear referencias de carpeta" (porque eso es algo que tenía la intención de hacer porque cambié la estructura de archivos y carpetas de mi proyecto). Pero la mayoría de las veces, elegir "Crear grupos" también puede funcionar. Y haga clic en el botón "Finalizar". Mis archivos de Storyboard ya estaban dentro como se muestra en la captura de pantalla ya dentro de un
Base.lproj
directorio de la siguiente manera:Nota: Una cosa importante para recordar aquí en este paso es que no olvide marcarlo en la casilla de verificación "Agregar a objetivos" de su aplicación.
Limpie el Producto, vuelva a construirlo y, si tiene éxito, la mayoría de las veces intente ejecutarlo correctamente.
¡Espero que esto pueda ser útil para alguien más! ¡Probé esto en XCode 7.3.1 y en iOS Sim 9.3 y iPhone 6S!
fuente
Sigue los pasos:
1) Primero haga clic en su storyboard
2) Luego haga clic en Inspector de archivos
3) Luego seleccione "Membresía objetivo"
fuente
El simulador no distingue entre mayúsculas y minúsculas, pero el dispositivo sí. Si su guión gráfico se llama MainStoryboard, no MainStoryBoard, esto causará su problema. y también * no use las extensiones escriba solo el nombre del storyboard
main.storyboard -> solo main es el nombre del guión gráfico
fuente
Swift 5.1 y xCode 11.2
En mi caso, se me olvidó cambiar
Storyboard Name
enInfo.plist
Info.plist
código fuente<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>
fuente
fuente
Este error se produce mientras recupera su archivo main.storyboard de la papelera después de eliminar su archivo. También enfrenté el mismo problema ayer.
Debe establecer la ruta de ubicación de main.storyboard como Relativa al grupo en el inspector de archivos de main.storyboard. Después de eso, en el mismo atributo, debe asegurar la marca de verificación en el objetivo de su aplicación (como puede ver en la imagen adjunta).
fuente
Dos soluciones diferentes que funcionaron para mí después de actualizar a Xcode 10.1:
En Archivo-> Configuración del área de trabajo (o proyecto) . Cambie a Legacy Build System .
En sus Fases de compilación de destino , elimine la carpeta Base.lproj de Copiar recursos del paquete (si está en la lista) y asegúrese de que cada uno de sus guiones gráficos se enumeren y se copien por separado.
Después de aplicar cualquiera de las correcciones anteriores, asegúrese de limpiar la carpeta de compilación desde el menú Producto una vez; de lo contrario, es posible que las correcciones no funcionen correctamente.
fuente
Eliminar la fila en plist también provocó una pantalla negra en mi aplicación. Y lo arreglé habilitando la membresía de destino del guión gráfico
fuente
Como ha dicho Kalpit Gajera, "abre el info.plist de tu proyecto y elimina la fila seleccionada que se muestra en la captura de pantalla". Simplemente elimine el 'Nombre base del archivo del guión gráfico principal' del Info.plist. Después de eliminarlo, limpiarlo y ejecutarlo, el programa ya no fallará, pero mostrará una pantalla negra. Abra Info.plist nuevamente y agregue manualmente la fila nuevamente. Problema resuelto.
fuente
elija main.storyboard, cambie la vista como iOS 6.1 y anterior, luego xcode le dirá lo que debe hacer.
fuente
Mi solucion es:
Cuando agregué una conexión de secuencia entre dos vistas y en la configuración de Projekt, el objetivo de implementación es inferior a 8.0, obtengo este error.
ok, fácil comprensión cuando desarrolla para IOS 6.0 (por ejemplo) no puede usar Seque, porque Seque necesita IOS 8.0 o posterior ...... ;-)
entonces, configuré el objetivo de implementación en 8.0 y el error desapareció. otro tiempo, cancelo todas las conexiones de Segue y las manejo con IBAction, vieja escuela ;-)
fuente
Estaba moviendo el archivo Main.Storyboard a la subcarpeta "azul" que estaba causando problemas, tuve que agregar subcarpetas siguiendo estas instrucciones Xcode 6.3 New File Issue
luego mover el archivo Main.Storyboard a la subcarpeta amarilla funcionó para mí
fuente
Mi problema se resolvió eliminando el
.xml
sufijo deMain.storyboard.xml file
.Aparentemente, el sufijo cambió de la versión desde la que importé el proyecto.
Por lo tanto, cambie el nombre del archivo (elimine el
.xml
sufijo) y reinicie, luegoProject-> clean....
solucionó el problema.fuente
Si aún tiene la pantalla en negro, intente agregar el siguiente código en su delegado de escena
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()
fuente
Si su guión gráfico se agrega en el proyecto (lo que determinará en la sección Inspector de archivos del proyecto del área de utilidad xcode)
Solo tiene que eliminarlo
Main.Storyboard
de "Copiar recurso de paquete" (enBuild Phase
) y agregarlo nuevamente en "Copiar recurso de paquete". Esto funcionó para mí.fuente
Ok, esto ha sido un proceso. Probar tantas cosas diferentes. Ejecutando xcode 6.4 en OS 10.11. Tener el problema "principal" no se puede encontrar. Lo que finalmente hice fue mover main.storyboard también en mi escritorio desde Finder. Hice una limpieza, compilé y salí de xcode. reiniciado xcode ahora tiene un main.storyboard rojo. Lo ejecuto virtualmente hace lo mismo. luego hago clic derecho en la carpeta del proyecto y elijo la opción agregar archivos a ... Navegar hasta donde está y abrirlo. luego, cuando esté a la derecha, debería ser el inspector de identidades. haga clic en la carpeta pequeña debajo de la ubicación. busque esa carpeta nuevamente y seleccione elegir. Luego corrí y funcionó. Amén !!!
fuente
Seleccione el controlador de vista que desea que aparezca primero en la lista del lado izquierdo del guión gráfico, luego, en el inspector de atributos, asegúrese de que su título sea "Principal" y la casilla de verificación "Es el controlador de vista inicial" esté seleccionada.
fuente