Estou com um problema ao gerar um arquivo do aplicativo iOS a partir de um aplicativo. O aplicativo compila muito bem e até funciona no simulador. Agora eu queria fazer um teste ad hoc e não conseguir gerar o iOS App Archive. Quando clico em Produto -> Arquivo, ele gera um arquivo xcode genérico. Alguém pode me ajudar. Devo mencionar que já gerei um arquivo de aplicativos para iOS deste aplicativo. Parou de gerar o arquivo iOS por algum motivo. Muito obrigado.
175
xcodebuild
. A solução é especificar o destino:xcodebuild -destination generic/platform=iOS
Respostas:
Verifique as configurações de compilação:
fonte
/usr/local/include
. Se você estiver construindo uma biblioteca estática, os cabeçalhos devem ser Públicos, portanto, é mais correto alterar o Caminho da Pasta de Cabeçalhos Públicos para algo mais sensatoinclude/$(TARGET_NAME)
. O @CopperCash observa isso em uma resposta abaixo.Isso pode acontecer se você adicionou uma estrutura / biblioteca ... você precisa editar o Target-> Build Settings dessa biblioteca e definir a configuração 'Ignorar instalação' como 'Sim'. Ao arquivar novamente, o XCode deve começar a produzir um 'iOS App Archive' novamente em vez de um 'arquivo genérico xcode'.
fonte
Além de Pular instalação para Sim, e caso você tenha aberto outro projeto lib / framwork no seu aplicativo, você deve mover os cabeçalhos (se houver) de público para projeto na fase de criação / copiar cabeçalhos .
fonte
Fiz o seguinte para fazê-lo funcionar para mim:
Absolute path
paraproducts directory
. Nota: veja a dica abaixo para restringir sua pesquisa e encontrar a biblioteca que está causando esse erro.e foi isso!
dica: para ter uma idéia dos arquivos incorretos que estão fazendo com que o seu archive crie um arquivo em vez de um ipa, faça o seguinte:
usr/local/include
, identificará os arquivos de cabeçalho culpados que você precisa mover de Público para Projeto ou os arquivos que você precisa alterar do caminho absoluto para o diretório de produtos (ou mesmo os arquivos que você esqueceu de definir a opção Ignorar instalação como Sim). mas esse diretório (ou seja, usr / local / include) varia de acordo com a estrutura de diretórios da sua sub-biblioteca. Em muitos casos .. você verá todos os arquivos listados em Copiar arquivos na etapa 3 acima listados aqui. Se você os encontrar aqui, terá uma resposta definitiva para a causa do seu problema.atualize para a dica: para tornar a vida ainda mais simples .. quaisquer arquivos que aparecem na etapa 4 da dica acima .. simplesmente procure-o na pesquisa global do xcode .. e você deverá obter resultados imediatos para o que deseja .. por exemplo, esse era o conteúdo da minha pasta (seguindo as etapas na dica acima):
Então, eu poderia dizer que isso tem algo a ver com as bibliotecas de criptografia e ssl .. procurando por elas:
me fez perceber que eu esqueci de definir skip install para yes.
fonte
./usr/local/include
.Se você exportar o arquivo, abra-o e veja
/urs/local/include
em Produtos, tente esta sugestão :Trabalhou para mim depois de atualizar meu aplicativo React Native para
0.11.0
, Xcode7
e CocoaPods0.39.0.beta.4
.fonte
Se você estiver usando o CocoaPods, o WatchKit ou uma extensão Today, há um problema em aberto no repositório do CocoaPods que explica qual pode ser o seu problema.
A solução para mim foi remover a
Copy Pod Resources
fase dos destinos WatchKit Extension e Today Extension abaixoBuild Phases
. O projeto foi compilado e arquivado conforme o esperado, uma vez que eu fiz isso.Espero que isso ajude alguém, isso me deixou perplexo por um dia inteiro!
fonte
Se alguma das respostas acima não funcionar, é provável que o seu problema esteja
cocoaPods
. A atualização mais recente0.38.1
estragou tudo para mim, mas depois fiz o downgrade0.37.1
e as coisas voltaram ao normal. UsandoXcode 6.3.1
Edição posterior: a atualização para
0.38.2
também corrigirá isso. Mais informações sobre o que causou esse problema aqui: O Cocoapods 0.38.1 falhou ao criar um arquivo válidofonte
0.38.2
e ainda tenho problemas. Você está no Xcode 7?/Library/Frameworks
. Eu acho que pode ter algo a ver com as vagens de cacau do Google não sendo construídas como uma estrutura dinâmica. Parece semelhante ao github.com/CocoaPods/CocoaPods/issues/3889Embora eu esteja usando o Xcode5 e o que o classificou para mim foi a edição do esquema de compilação - tentar todas as sugestões acima aplicáveis não ajudou no meu caso.
Eu tinha dois alvos, digamos, "App" e "App FREE". Meus problemas com o arquivo genérico ocorreram quando eu estava tentando arquivar a versão GRATUITA, que eu adicionei após a versão 'normal' do aplicativo. No meu caso, quando selecionei seu esquema na barra de ferramentas e escolhi Editar esquema ... vi que a seção Build tinha dois destinos, a saber, App e App FREE.
Desmarquei todas as colunas do App, deixando apenas as colunas do App FREE marcadas e cliquei em OK. Da próxima vez que escolhi Produto> Arquivo, recebi meu aplicativo GRATUITAMENTE, em vez de um arquivo genérico. :)
fonte
Se você tiver apenas um projeto, talvez essa solução seja útil. Esse problema ocorreu quando eu dupliquei o alvo. Como resultado, tive dois alvos construídos em paralelo. Isso estava causando o problema. O arquivo IOS genérico foi criado.
Para desligar o paralelo, vá para
fonte
Eu tive esse problema depois de atualizar para o iOS 9 e o Xcode 7. A solução de Josh H funcionou para mim:
Também fiz um script de pós-instalação para o meu Podfile fazer isso automaticamente!
Basta adicioná-lo ao final do seu Podfile e executar
pod install
fonte
Tenho vários projetos no meu espaço de trabalho (GTL, Pods e meu projeto principal) e é isso que funcionou para mim:
Selecione o projeto, haverá dois tipos, o projeto e os alvos .
Para projetos que não é a sua principal como
GTL
ouPODS
:Projetos:
Metas:
Para o projeto principal (que geralmente é nomeado igual ao nome do seu produto):
Projetos:
Metas:
Verifique o destino de implementação do ios em cada projeto e destino para garantir que todos sejam iguais.
fonte
Eu tive esse problema. No meu caso, isso foi causado pela manutenção de um destino de aplicativo para Mac como uma dependência do aplicativo para iOS.
A razão pela qual foi configurada dessa maneira foi que o aplicativo Mac era uma ferramenta usada para gerar alguns dados para o aplicativo iOS, que foi incluído no pacote.
Tive que remover essa dependência e criar a ferramenta separadamente antes de criar o próprio aplicativo iOS.
fonte
No meu cenário, eu estava obtendo o "Arquivo Genérico" incorreto somente depois que comecei a incluir o código Swift no meu projeto predominantemente Objective-C. Após muita solução de problemas e análise do arquivo que o Xcode estava lançando, notei que o arquivo
SwiftSupport
pasta (com os dylibs necessários para o tempo de execução Swift) estava em um local diferente no meu arquivo do que em um arquivo de aplicativo de projeto Swift novinho em folha da baunilha .Encontrei a
Installation Directory
configuração de compilação e notei que ela estava definida como um caminho personalizado no meu projeto. Simplesmente excluí-o (definindo-o como seu valor genérico de/Applications
) e o próximo Build -> Archive funcionou conforme o esperado e me deu um iOS App Archive adequado.TL; DR: verifique se a
Installation Directory
configuração de compilação está definida como seu valor padrão/Applications
ao incluir o código Swift no seu aplicativo, especialmente se você está começando com um arquivo de projeto mais antigo que pode ter algumas configurações de compilação herdadas inesperadas.fonte
Deixando isso aqui para salvar outras pessoas da mesma jornada.
Descobri que também era necessário remover a mesma fase de criação de recursos de pod de cópia de um destino de biblioteca estática no meu espaço de trabalho.
fonte
Além da resposta de Alex L.
Ponto 3. Altere 'Build Settings' -> 'Public Header Folder Path' para 'include / xxx' também funciona.
fonte
Se nenhuma das opções acima o ajudou ... depois de muito tempo .......
Excluí o valor no Info.plist para a versão do pacote porque estava feliz o suficiente com apenas o Bundle Version Short 1.0. Ruim. Não faça isso.
* Observe que eu realmente fiz isso editando-o na interface do usuário à direita, sem perceber que colocaria uma chave vazia no arquivo Info.plist. Eu acho que isso torna inválido. Meu pacote apareceu como outros itens durante o arquivamento e não tinha ícone, e não foi possível fazer o upload para qualquer lugar.
Isso se resume a valores inválidos no Info.plist. Se não for um arquivo válido, tente descompactar um arquivo antigo e soltar / substituir o atual e ver se ele o corrige ao reconstruir o arquivo.
fonte
Vá para Configurações de compilação e adicione
yourAppName / Resources / dist.plist aos direitos de assinatura de código
Pressione cmd + B com o dispositivo iOS ou um dispositivo real selecionado como destino da compilação
Quando terminar -> role para a pasta "Produtos" e clique com o botão direito em yourAppName.app
Escolha "Mostrar no localizador"
Crie uma pasta com o nome Payload ( capital "P" )
Copie yourAppName para sua pasta Payload
Crie um zip a partir da sua pasta Payload
Renomeie o zip para yourAppName.ipa
FEITO
fonte
Depois de tentar praticamente tudo:
Percebi então que minha partição de inicialização estava com pouco espaço livre em disco ... cerca de 1 GB. Reiniciei e recebi cerca de 18 GB de graça.
Em seguida, abri o Xcode e o projeto, executei o Archive ... e, surpreendentemente (depois de uma hora tentando criar um Archive), finalmente consegui um Archive não genérico.
Não faço ideia se é um problema de disco livre que o corrigiu ou uma reinicialização do macOS que o corrigiu, mas funcionou para mim.
fonte
Se você tiver algum arquivo .xcodeproj em Projeto> Destinos> Construir fases> dependências de destino, remova-o de lá e, em seguida, construa seu ipa. Funciona para mim. Felicidades
Você pode obter resposta aqui: xcode está criando um arquivo genérico xcode em vez do iOS App Archive
fonte
No meu caso, tive que mover o FMDB e o BlocksKit para bibliotecas estáticas. Anteriormente, eles foram construídos como subprojetos. Lembre-se de que você pode usar o lipo para criar bibliotecas universais. Ao construir os produtos finais, o código do simulador será retirado automaticamente.
fonte
Outro motivo possível para isso é ter referências em "Dependências de destino" a projetos para uma plataforma diferente. No meu caso particular, eu estava trabalhando em um projeto que compartilha código para OSX e iOS. Em um dos destinos do iOS, adicionei acidentalmente um destino OSX como dependência.
fonte
Para ser completo, estou postando minha solução.
Eu experimentei exatamente o mesmo problema ao tentar criar um arquivo morto de um projeto iOS no Xcode 5.1.1 (5B1008). Nenhuma das sugestões acima resolveu o problema, e a maioria delas era irrelevante (eu não adicionei nenhuma estrutura e não tinha nenhuma entrada pública na seção Copiar cabeçalhos das minhas fases de construção).
No meu caso, corrigir o problema consistia em simplesmente fechar meu projeto, excluir todos os arquivos que eu criara anteriormente, ir para Preferências> Contas, remover minha conta de desenvolvedor, sair do Xcode, reiniciar, adicionar novamente minha conta de desenvolvedor, iniciar o processo de arquivamento novamente. Isso corrigiu meu problema imediatamente.
fonte
Mais uma solução, uma vez que todas as opções acima não funcionaram para mim ...
Alterou o
User Header Search Paths
(suponhoHeader Search Paths
que funcionaria com a mesma elegância) para"$(BUILT_PRODUCTS_DIR)/BlocksKit"
.fundo :
No BlockKit, os desenvolvedores estruturaram os cabeçalhos no projeto principal de maneira diferente da estrutura na implantação. Portanto, você não pode fazer referência aos cabeçalhos no projeto e deve fazer referência aos cabeçalhos copiados no diretório de construção.
fonte
Como isso funcionou para mim no (Xcode 5), eu tinha dois destinos e, quando editei o esquema, no painel esquerdo do editor de esquemas, você verá os itens [BUILD, RUN, TEST, PERFILE XXX.APP, ANALYZE, ARCHIVE ] no painel BUILD, você verá os destinos do seu projeto listados em uma lista. No extremo direito, você verá as seleções de ARQUIVO, verifique se apenas um destino está selecionado para arquivamento.
Eu selecionei duas das minhas metas no meu projeto, verifiquei apenas a meta que queria no produto e funcionou!
fonte
Resolvi esse erro abrindo apenas o projeto do aplicativo no XCode, ou seja. não abrir um espaço de trabalho inclua o aplicativo e outros projetos / bibliotecas / estruturas.
Tendo 2 projetos separados, uma estrutura ou biblioteca compartilhada e um aplicativo iOS, tive que abrir 2 janelas XCode diferentes, cada uma abrindo diretamente o arquivo .xcodeproj em vez do espaço .xcworkspace comum , a fim de construir cada uma delas.
Como um bom efeito colateral, o XCode não reconstrói mais todos os destinos de todos os projetos depois que eu faço uma Limpeza , resultando em tempos de construção reduzidos.
Antecedentes: estou criando um SDK de código aberto e um aplicativo iOS de demonstração. Os dois abriram em um único espaço de trabalho. Definir Ignorar instalação como YES nos destinos do SDK impediria qualquer pessoa de criar um arquivo morto, pois ele estaria vazio; portanto, essa não era uma opção. Usar o Project em vez de cabeçalhos públicos levaria a um arquivo ausente dos arquivos de cabeçalho que deveriam ser distribuídos, portanto, essa também não era uma opção.
fonte
Pois era porque eu estava trabalhando em um espaço de trabalho. O projeto foi arquivado, mas não seria exibido na janela do organizador. Fechei a área de trabalho e abro o projeto por conta própria. O arquivo foi aberto no organizador ... espero que seja de ajuda.
fonte
No meu caso, eu tinha um script personalizado que copiava alguns arquivos temporários em:
Isso significava que, depois de investigar o arquivo para inspecionar seu conteúdo, encontrei ao lado do arquivo .app uma pasta myTempDir. Uma vez que modifiquei o script para salvar em outro lugar, as coisas foram classificadas.
fonte
Tente definir os cabeçalhos $ (PROJECT_NAME) no caminho da pasta de cabeçalhos públicos do projeto do Framework. Você precisa criar configurações do destino da biblioteca e editar o caminho da pasta Public Headers como $ (PROJECT_NAME) Headers.
fonte
Se estiver usando o Xcode 7 com cocoapods v.0.38.2 . Tente remover
copy pod resources
do seu destino de extensão hoje.fonte
Encontrei esse problema depois de adicionar uma ferramenta de linha de comando do OS X ao projeto do meu aplicativo iOS e o Skip Install foi definido como NO por padrão para o destino da ferramenta de linha de comando. Como você obviamente não pode instalar um binário do OS X em um dispositivo iOS, o arquivamento padrão é um arquivo Xcode genérico. A configuração de Ignorar instalação como SIM para este destino corrigiu o problema.
fonte