Estou tentando integrar o Janrain Engage como módulo personalizado com o Appcelerator Titanium. Eu criei um módulo de amostra e arrastei a pasta JREngage para o módulo de amostra xcodeproj conforme indicado na documentação do Jainrain.
Agora eu dou o comando de construção para este projeto, depois executo o ./build.py
e, finalmente, executo o titanium run
comando. Ele inicia o aplicativo no simulador com uma tela em branco e imediatamente trava, gerando o seguinte erro.
Encerrando o aplicativo devido à exceção não capturada 'NSInternalInconsistencyException', motivo: 'Não foi possível carregar o NIB no pacote:' NSBundle </ Users / abhilash / Library / Application Support / iPhone Simulator / 4.2 / Applications / CA167346-4091-4E16-B841-955D1D391713 / test.app> (carregado) 'com o nome' JRProvidersController ''
Por que esse erro pode estar ocorrendo?
No
Targets -> Build Phases
Certifique-se de que o .xib seja adicionado
Copy Bundle Resources
, se não estiver presente, adicione o arquivo .xib.fonte
tente descobrir tudo
em seu código e certifique-se de que
XXXController
está escrito corretamentefonte
initWithNibName:bundle:
métodoEu tive o mesmo problema (exceção 'Não foi possível carregar o NIB no pacote: ..') após atualizar meu xcode de 3.2 para 4.02. Enquanto a implantação do meu aplicativo com o Xcode 3.2 funcionou bem, ele travou com o xcode 4, levantando a exceção mencionada acima - mas apenas quando tentei implantar no IOS Simulator (v.4.2). A segmentação do dispositivo IOS (v.4.1) funcionou também com o Xcode 4.
Descobriu-se (após horas de busca desesperada) que o motivo era uma configuração quase "oculta" no arquivo .xib:
Visite as propriedades dos arquivos .xib no inspetor de arquivos: A propriedade 'Local' foi definida como 'Relativa ao Grupo' para todos os arquivos .xib. Eu mudei para 'Relativo ao projeto' e voila: todos os arquivos .xib agora estão carregados corretamente no simulador IOS!
Não tenho ideia de qual é a razão por trás disso para esse comportamento estranho do Xcode4, mas talvez valha a pena tentar?
fonte
No meu caso, foi muito estranho (use um storyboard): por algum motivo, ele mudou de "Nome da base do arquivo do storyboard principal" para "Nome da base do arquivo da ponta principal" no plist.
Alterar de volta para "Nome da base do arquivo de storyboard principal" (UIMainStoryboardFile) resolveu o problema
fonte
o erro significa que não há arquivo .xib com
"JRProvidersController"
nome. verifique novamente seJRProvidersController.xib
existe.você vai carregar
.xib file
comfonte
Usando uma visualização Swift personalizada em um controlador de visualização Objective-C (sim, mesmo depois de importar o
<<PROJECT NAME>>-Swift.h
arquivo), tentei carregar a ponta usando:... mas
NSStringFromClass([MyCustomView class])
retorna<<PROJECT NAME>>.MyCustomView
e o carregamento falha. TL; DR Tudo funcionou bem ao carregar a ponta usando um literal de string:fonte
Com o destino de compilação sendo um dos meus dispositivos iOS, cliquei com o botão direito no arquivo do produto (xyzw.app) e selecionei o item pop-up Mostrar no Finder. Ele abriu uma janela com o xyzw.app dentro; Abri o pacote usando Mostrar conteúdo do pacote e vi todos os arquivos que esperava, exceto um arquivo, aquele do qual ele estava reclamando, com I maiúsculo em vez de i minúsculo no nome (zoomieVIew.nib em vez de zoomieView.nib ) Eu tinha notado o I maiúsculo no nome do arquivo xib, mudei e reconstruí; aparentemente, o Xcode deixou o nome .nib gerado do jeito que estava. Excluí zoomieVIew.nib do pacote, recompilei e o Xcode recriou devidamente o arquivo como zoomieView.nib. O aplicativo começou a funcionar no dispositivo.
fonte
Tive esse problema com um storyboard e a ponta era chamada de algo como 'bKD-J3-fhr-view-ZSR-8m-2da'.
Foi porque eu estava tentando adicionar uma subvisualização a self.view no init de um controlador de visão (withCoder). Self.view ainda não existe.
Movido para viewDidLoad e tudo melhor!
fonte
Dê uma olhada no projeto
Target -> Buid Phases -> Copy Bundle Resources
Você encontrará seu xib / storyborad com a cor vermelha.
Apenas remova-o. Remova também todas as referências do arquivo ausente do projeto.
Agora arraste este arquivo storyboard / xib novamente para ele
Copy Bundle Resources
. Ele ainda mostrará seu arquivo com a cor vermelha, mas não se preocupe com isso.Basta limpar e construir o projeto.
Agora você terá seu projeto funcionando novamente com sucesso !!
fonte
Para Storyboard
Tentei todas as soluções postadas aqui, mas nada funcionou para mim, pois estou usando o Storyboard com Swift 5.
Acabei de começar a construir novos controladores e visualizações no aplicativo de teste de storyboard, o que descobri é que estava faltando o ID do storyboard do meu controlador de visualização.
Então aqui está minha solução, se você quiser ir de ViewController A -> View Controller B
Etapa 1. No storyboard: apenas certifique-se de que seu ViewControllerA esteja embutido no controlador de navegação
Etapa 2. No storyboard: agora verifique se você mencionou a ID do Storyboard para o seu ViewControllerB, que você usará no código como Identificador.
Etapa 3. e, finalmente, certifique-se de empurrar o controlador desta forma em seu ViewControllerA com um clique de botão.
fonte
NÃO COLOQUE .xib QUANDO VOCÊ INSERIR O NOME XIB! JÁ ESTÁ IMPLÍCITA!
Não faça isso:
Faça isso:
fonte
Exemplo Swift4 se seu MyCustomView.swift e MyCustomView.xib em uma estrutura. Coloque isso no init do MyCustomView :
fonte
Também descobri que ele falhou quando tentei carregar o XIB com um nome como @ "MeuArquivo.xib". Quando acabei de usar @ "MyFile" funcionou - aparentemente, ele sempre adiciona a extensão. Mas a mensagem de erro apenas dizia que não foi possível encontrar MyFile.xib no pacote - se tivesse dito MyFile.xib.xib, isso teria sido uma grande pista.
fonte
Trabalhando no Xcode 4.6.3 e localizando meus arquivos NIB, também me deparo com esse problema.
Para mim, nada mais ajudou além de alterar "Controle de versão do documento" no Inspetor de arquivos para Deployment 5.0 em vez de 6.1.
fonte
Acontece quando você renomeia o arquivo nib. Se você já fez isso, crie um novo nib (ou seja, copie o conteúdo do arquivo nib atual para o novo nib), exclua o arquivo nib antigo e isso resolverá seu problema.
Edit: Com o novo Xcode a partir da versão 4.6.3, se você renomear (com o recurso de refatoração) a classe Controller, ele renomeará o arquivo nib também e você não precisa se preocupar com o problema de carregamento do nib.
fonte
Acabei de ter uma experiência interessante usando o Xcode 6.3.
Também continuei recebendo esse erro, apesar de tentar tudo que você normalmente pensaria sobre ortografia, associação de destino etc., conforme sugerido acima. Também tentei limpar, excluir dados derivados e também excluir o aplicativo do simulador várias vezes para garantir que o pacote estava sendo construído corretamente, mas sem sucesso.
Finalmente, seguindo a resposta de Brian Michael Bentley, eu finalmente decidi inspecionar meu arquivo .app na pasta do meu simulador no meu HD. Descobri que todos os meus nibs estavam lá, mas com um abc ~ ipad.nib em vez do abc.nib esperado. Eu renomei manualmente todos esses arquivos para remover a parte ~ ipad, construí e funcionou!
Tentando ver por que eles foram anexados com a palavra-chave ~ ipad, olhei as configurações do meu projeto e, de fato, na minha guia Geral> Informações de implantação, eu tinha apenas o iPad selecionado. Eu estava tentando rodar em um simulador de iPhone. Acredito que, no passado, o Xcode dava um erro indicando que o binário não era compatível com o iPhone e você não conseguiria executar o aplicativo.
Excluí o aplicativo do simulador e fiz a mesma coisa novamente - novamente com suporte apenas para iPad. Desta vez, o .app continha abc ~ iphone.nib E abc ~ ipad.nib para cada storyboard esperado e funcionou perfeitamente no simulador do iPhone. Novamente - se escolhermos iPad apenas em nossas configurações de Informações de implantação, ele não deve ser executado no iPhone Simulator. Este é um bug do Xcode.
Portanto, há algum comportamento inconsistente aqui por parte do Xcode e, infelizmente, é um bug intermitente e pode ser difícil de reproduzir, mas coloquei isso aqui para que possa ajudar outros no futuro.
fonte
Tive esse mesmo problema, nada funcionou, então descobri algo estranho com dados derivados.
No xcode 6.3.2 eu tive que:
No menu XCode -> Preferências -> Guia Locais -> Em locais, altere os dados derivados para relativos e, em seguida, alterne de volta para o padrão
Então a ponta carregou bem.
fonte
Seu arquivo XIB provavelmente está fora da pasta do projeto. Isso faz com que o Inspetor de destino não seja exibido. No entanto, mover o arquivo XIB para a pasta do projeto deve corrigir isso.
fonte
Cuidado: o Xcode faz distinção entre maiúsculas e minúsculas nos nomes dos arquivos. Não é o mesmo "divertido" que "divertido".
fonte
Caso você esteja usando frameworks em seu projeto, você precisa se certificar de que está carregando do pacote correto:
fonte
para mim, foi resolvido apenas alterando o nome do arquivo da minha célula para o mesmo da classe.
No Inspetor de atributos (terceira guia na barra lateral direita do storyboard):
Registre a célula em seu controlador de visualização da seguinte forma:
tableView.register (UINib (nibName: "MyCellClass", pacote: nil), forCellReuseIdentifier: "MyCellId")
fonte
Tive este problema ao transformar meu código antigo de XCode 3x para XCode 4 e resolvi-o apenas renomeando wwwwwwww.xib para RootViewController.xib
fonte
Eu tive o mesmo problema. No meu caso, o nome da ponta era "MyViewController.xib" e mudei o nome para "MyView.xib". Isso eliminou o erro.
Eu também estava movendo um projeto do XCode 3 para 4.2. Alterar o tipo de caminho não importava.
fonte
Além disso, o motivo pode ser o arquivo procurado na pasta específica do idioma errado quando você mexeu nas localizações.
fonte
Toda vez que refatoro o nome de um controlador de visualização que está em meu appDelegate, perco tempo com isso. A refatoração não altera o nome da ponta em initWithNibName: @ "MYOldViewControllerName".
fonte
Eu tive o mesmo problema, renomear meu identificador de controlador de visualização no storyboard funcionou para mim.
fonte
Percebi que isso pode acontecer se você alternar entre branches no git e esquecer de fazer uma limpeza. Então o xib está lá e tudo é encontrado, mas a compilação exata pode ter problemas. Então, apenas no caso, não se esqueça de fazer uma limpeza
fonte
No código acima, se você também fornecer uma extensão de arquivo como "SecondView.xib", então ela está errada e apresentará o erro acima. Em vez disso, use "SecondView". Eu cometi esse erro.
fonte
Isso funcionou para mim. Verifique se você digitou o nome da ponta corretamente.
[[NSBundle mainBundle] loadNibNamed: @ "Graphview" owner: self options: nil];
Graphview (nome da ponta)
fonte