Estou recebendo um erro estranho: 'Could not find a storyboard named 'Main' in bundle NSBundle'
ao tentar executar meu aplicativo em um dispositivo iOS real.
Tenho o arquivo no meu diretório e funciona bem no simulador. No entanto, na Copy Bundle Resources
seção, o arquivo Main.storyboard
está vermelho.
Tentei removê-lo e adicioná-lo novamente, reiniciando o Xcode, limpando a compilação, etc. sem sucesso. Este é o aviso que recebo no 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
fonte
fonte
Respostas:
abra o info.plist do seu projeto e remova a linha selecionada exibida na captura de tela
Se você receber uma tela preta, certifique-se de que seu novo storyboard inicial seja selecionado como sua interface principal
fonte
Você pode verificar a associação de destino do storyboard. Pode ser aí que está o problema:
Deve ser parecido com isto:
fonte
Para qualquer pessoa que enfrente esse problema no Xcode 11, veja como corrigi-lo se você enfrentar esse problema ao fazer a configuração do projeto sem storyboard
(Somando algumas peças que ricardopereira faltou)
1) Primeiro, exclua o arquivo Main.storyboard
2) Em seguida, vá para PROJECT_NAME -> GERAL
No menu suspenso da interface principal, exclua o texto Principal
3) Agora vá para info.plist e exclua o nome do storyboard
4) Por fim, modifique o código da cena (_: willConnectTo: options) no arquivo SceneDelegate.swift (Sim! Não está mais no 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() }
Você também pode consultar este vídeo: https://www.youtube.com/watch?v=Htn4h51BQsk
fonte
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() }
Uma atualização para aplicativos criados para iOS 13.0 e superior. (Xcode 11)
Se você receber o erro "Não foi possível encontrar um storyboard chamado 'Principal' no pacote, mesmo após alterar o" Nome base do arquivo do storyboard principal "no info.plist e" Interface principal "em Implementação no destino.
Em seguida, você deve alterar outra entrada no arquivo info.plist.
E seu aplicativo começará a funcionar.
fonte
Em um projeto que usa
UIScene
no iOS 13 e Xcode 11, você precisa remover aUISceneStoryboardFile
chave do.plist
.Xcode 11:
Alterando diretamente do arquivo:
fonte
Excluí o aplicativo do meu telefone, selecionei Produto -> Limpar e o carreguei novamente. Isso é tudo que eu preciso.
fonte
Recebi este erro, no entanto, era minha intenção remover completamente os storyboards.
Remover a chave 'nome da base do arquivo do storyboard principal' do meu plist corrigiu o erro.
fonte
Não foi possível encontrar um storyboard chamado 'Principal' no pacote
Razão pela qual eu poderia pensar:
Pelo que meu conhecimento de iOS me concluiu, isso aconteceu porque o XCode não conseguiu encontrar a referência ao arquivo Main.storyboard dentro do diretório do meu projeto para copiá-lo para o aplicativo.
Resolução:
Selecionado o arquivo Main.storyboard e tentei excluí-lo, e na caixa de diálogo que aparece da seguinte maneira:
Clique no botão "Remover Referência".
Então, do lugar real onde eu poderia encontrar o arquivo Main.storyboard dentro do diretório do projeto, arrastado e solto no XCode, e novamente na caixa de diálogo que aparece da seguinte maneira:
Escolhi "Criar referências de pasta" (porque era isso que pretendia fazer porque alterei a estrutura de arquivos e pastas do meu projeto). Mas na maioria das vezes, escolher "Criar grupos" também pode funcionar. E clicou no botão "Concluir". Meus arquivos de storyboard já estavam dentro, conforme mostrado na captura de tela, já dentro de um
Base.lproj
diretório da seguinte forma:Nota: Uma coisa importante a lembrar aqui nesta etapa é, não se esqueça de marcar ON a caixa de seleção "Adicionar aos destinos" em seu aplicativo.
Limpe o Produto, reconstrua-o e, se for bem-sucedido, na maioria das vezes, tente executá-lo com êxito.
Espero que isso possa ser útil para alguém por aí! Eu tentei isso no XCode 7.3.1 e no iOS Sim 9.3 e iPhone 6S!
fonte
Siga os passos:
1) Primeiro clique em seu storyboard
2) Em seguida, clique em Inspetor de arquivo
3) Em seguida, selecione "Associação-alvo"
fonte
O simulador não diferencia maiúsculas de minúsculas, mas o dispositivo sim. Se o seu storyboard se chamar MainStoryboard, não MainStoryBoard, isso causará o problema. e também * não use as extensões, escreva apenas o nome do storyboard
main.storyboard -> apenas principal é o nome do storyboard
fonte
Swift 5.1 e xCode 11.2
No meu caso, eu esqueci de mudar
Storyboard Name
emInfo.plist
Info.plist
Código fonte<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>
fonte
fonte
Este erro ocorre enquanto você recupera o arquivo main.storyboard da lixeira após excluí-lo. Eu também enfrentei o mesmo problema ontem.
Você deve definir o caminho de localização de main.storyboard como Relativo ao Grupo no inspetor de arquivos de main.storyboard. Depois disso, no mesmo atributo, você deve garantir a marca de seleção no destino do seu aplicativo (como você pode ver na imagem anexa).
fonte
Duas soluções diferentes que funcionaram para mim após a atualização para o Xcode 10.1:
Em Arquivo-> Configurações do Espaço de Trabalho (ou Projeto) . Mude para o sistema de compilação legado .
Em suas fases de construção de destino , remova a pasta Base.lproj de Copy Bundle Resources (se listada) e certifique-se de que cada um de seus storyboards sejam listados e copiados separadamente.
Depois de aplicar qualquer uma das correções acima, certifique-se de limpar a pasta de compilação no menu Produto uma vez, caso contrário, as correções podem não funcionar corretamente.
fonte
Excluir linha no plist causou tela preta em meu aplicativo também. E eu corrigi isso ativando a associação de destino do storyboard
fonte
Como Kalpit Gajera disse, "abra o info.plist do seu projeto e remova a linha selecionada exibida na imagem". Você simplesmente remove 'Nome da base do arquivo de storyboard principal' do Info.plist. Depois de removê-lo, limpar e executar, o programa não falhará mais, mas mostrará uma tela preta. Abra Info.plist novamente e adicione manualmente a linha de volta. Problema resolvido.
fonte
escolha main.storyboard, mude a visualização para iOS 6.1 e anteriores, então o xcode dirá a você o que você precisa fazer.
fonte
Minha solução é:
Quando adicionei uma conexão Seque entre duas visualizações e na configuração do projeto, o destino de implantação é menor que 8,0, recebo este erro.
ok, fácil entendimento quando você desenvolve para IOS 6.0 (por exemplo) você não pode usar o Seque, porque o Seque precisa do IOS 8.0 ou posterior ...... ;-)
então, eu defino o Deployment Target para 8.0 e o erro desapareceu !!!! de outro modo, cancelo todas as conexões do Segue e manejo com IBAction, old school ;-)
fonte
Eu estava movendo o arquivo Main.Storyboard para a subpasta "azul" que estava causando problemas, eu tive que adicionar subpastas seguindo estas instruções Xcode 6.3 New File Issue
então mover o arquivo Main.Storyboard para a subpasta amarela funcionou para mim
fonte
Meu problema foi resolvido removendo o
.xml
sufixo doMain.storyboard.xml file
.Aparentemente, o sufixo mudou da versão da qual importei o projeto.
Portanto, renomear o arquivo (removendo o
.xml
sufixo) e reiniciá-lo,Project-> clean....
corrigiu o problema.fonte
Se ainda assim você tiver a tela preta, tente adicionar o código abaixo em seu delegado de cena
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()
fonte
Se o seu storyboard for adicionado ao projeto (que você determinará na seção Project File Inspector da área do utilitário xcode)
Você apenas tem que remover
Main.Storyboard
de "Copiar recurso de pacote" (inBuild Phase
) e adicioná-lo novamente em "Copiar recurso de pacote". Isso funcionou para mim.fonte
Ok, isso foi um processo. Tentando tantas coisas diferentes. Executando o xcode 6.4 no OS 10.11. Tendo o problema não é possível encontrar 'Principal'. O que eu finalmente fiz foi remover o main.storyboard da minha área de trabalho do Finder. Limpei, construí e fechei o xcode. reiniciou o xcode agora ele tem um main.storyboard vermelho. eu o executo virtualmente faz a mesma coisa. em seguida, clico com o botão direito na pasta do projeto e escolho a opção adicionar arquivos a ... Navegue até onde está e abro. então, quando estiver lá, à direita, deverá estar o inspetor de identidades. clique na pequena pasta em localização. navegue até essa pasta novamente e selecione escolher. Então eu corri e funcionou. Amém !!!
fonte
Selecione o controlador de visualização que deseja exibir primeiro na lista do lado esquerdo do storyboard e, em seguida, no inspetor de atributos, certifique-se de que o título seja "Principal" e a caixa de seleção "É o controlador de visualização inicial" marcada.
fonte