Xcode 4: crie um arquivo IPA em vez de .xcarchive

182

No Xcode 3.2.5, uso "Build And Archive" para criar um arquivo IPA. No Xcode 4, você pode usar "Produto -> Arquivar" para arquivar um aplicativo em um pacote .xcarchive.

Como posso criar um arquivo .ipa com o Xcode 4?

Manni
fonte
3
Sempre que construo uma nova versão adhoc, minha pesquisa no Google me leva aqui. Eu já vi essa página várias vezes nos últimos meses. Boa pergunta, boa solução
coneybeare
Aqui é um Plugin Xcode para exportar IPA github.com/rajeshbeats/Xcode-Plugin-Export-IPA
Raj

Respostas:

391

A criação de um IPA é feita da mesma maneira que a criação de um .xcarchive: Produto -> Arquivo. Após a conclusão da operação de arquivamento, vá para o Organizer, selecione seu arquivo, selecione Compartilhar e, no painel "Selecione o conteúdo e as opções para compartilhamento:", defina Conteúdo como "Pacote da App Store da iOS (.ipa) e Identidade para distribuição do iPhone (que deve corresponder ao seu perfil de provisionamento ad hoc / loja de aplicativos para o projeto).

Provavelmente, a opção "Pacote da App Store do iOS (.ipa)" pode estar desativada. Isso acontece quando sua compilação produz mais de um único destino: por exemplo, um aplicativo e uma biblioteca. Todos eles acabam nos produtos de construção de pasta e Xcode se ingenuamente confundido sobre como empacotá-los tanto em um arquivo .ipa, por isso apenas desativa a opção.

Uma maneira de resolver isso é a seguinte: siga as configurações de compilação para cada um dos destinos, exceto o destino do aplicativo, e defina o sinalizador Ignorar Instalação como YES. Em seguida, faça o tango Product -> Archive mais uma vez e vá para o Organizer para selecionar seu novo arquivo. Agora, ao clicar no botão Compartilhar, a opção .ipa deve estar ativada.

Eu espero que isso ajude.

eploko
fonte
2
Isso resolveu meu problema, obrigado! No meu caso, o problema era, na verdade, um dos projetos filhos (ProtocolBuffers para mim), que tinha vários alvos que precisavam da instalação de ignorar para serem definidos.
Josephh
Pode ser necessário Produto -> Limpar e abrir / fechar sua área de trabalho antes que a opção Produto -> Arquivar seja exibida.
precisa saber é o seguinte
Eu tive o problema com vários alvos. A configuração da lib compartilhada como Ignorar instalação SIM e o aplicativo como Ignorar instalação NÃO a corrigiu. Isso não foi um problema para mim no Xcode 3.2, apenas 4.1.
Logueutrell
44
"Compartilhar" é agora "Distribuir ..." Em seguida, selecione "Salvar para a empresa de Ad Hoc-implantação"
Rembrandt Q. Einstein
"Ignorar instalação" não é suficiente - eu tenho esse bug com o Xcode 4.5 e ele se recusa a distribuir corretamente, desde que adicionei uma biblioteca com um pacote.
Adam
44

A configuração de Ignorar instalação como SIM não funcionou para mim. Espero que isso ajude alguém.

Eu fui para a dependência dos meus objetivos de projeto: Coreplot-CocoaTouch. Em seguida, foi para os alvos Coreplot-CocoaTouch. Em seus alvos, abriu fases de construção. Em seguida, abra Copiar cabeçalhos. Lá eu tive alguns cabeçalhos em Público, alguns em Particular e outros em Projeto. Moveu TODOS eles para o Project.

Obviamente, nas Configurações de compilação dos destinos Coreplot-CocoaTouch, verifique se Ignorar instalação foi definido como SIM nas opções de implantação.

E desta vez o Archive criou um arquivo que poderia ser assinado e produzido pela .ipa.

Boris Gafurov
fonte
1
Depois de mover os cabeçalhos para o Project, funciona perfeitamente junto com as etapas acima. Obrigado
iOSAppDev
Como uma brisa fresca! Qualquer pessoa que solte github.com/sprhawk/ytoolkit.git para OAuth em seu projeto exigirá isso. THX.
vmanjz
2
Por que, oh, por que o Xcode ainda está cheio de bugs tão sérios quanto isso? 18 meses depois desse comentário e o bug ainda está lá! Obrigado pela ajuda.
Ben Clayton
Você não tem idéia do quanto eu te amo agora ... pelo menos um dos meus problemas está resolvido! Obrigado!
Dmytro
15

Para arquivos do Xcode 4.6 (e Xcode 5)

  • No Organizer, clique com o botão direito do mouse em um arquivo, selecione Mostrar no Finder
  • No Finder, clique com o botão direito do mouse em um arquivo, selecione Mostrar Conteúdo do Pacote
  • Abra a pasta Produtos> Aplicativos
  • O aplicativo está lá
  • Arraste o aplicativo para a pasta iTunes Apps

    insira a descrição da imagem aqui

  • Clique com o botão direito do mouse no aplicativo no iTunes Apps, selecione Mostrar no Finder

  • O .ipaestá lá!
Oh Ho
fonte
Isto é o que eu realmente preciso para o meu xcode 4.6.3. Tudo acima não faz sentido para mim, apenas este funciona. Ótimo !
Forrest
cuidado, criará um ipa, mas poderá não ser instalado corretamente; ele mostra o ícone no telefone após a sincronização, mas diz que a instalação é por baixo e nunca termina. de qualquer forma, essa é a minha experiência até agora depois de tentar isso, o Xcode 5.1.1.
Colin lamarre 14/10
4

No organizador, você pode clicar em Compartilhar e salvar como pacote da iOS App Store (.ipa). Você também pode ter que selecionar 'Arquivo' no menu 'Produto' para gerar o arquivo no Organizer. Por fim, acho que você precisa ter uma compilação arquivada devidamente assinada para fazer isso.

Joshua Smith
fonte
3
Foi fácil descobrir como criar o arquivo morto a partir do projeto. O problema é que ao compartilhar a opção 'Pacote' fica acinzentado. Você pode estar certo de que o arquivo morto deve ser assinado corretamente para que essa opção seja ativada. Uso a chave para distribuição Ad-Hoc e também tenho Direitos especificados para uma distribuição Ad-Hoc. Você poderia compartilhar como possibilitar a criação do arquivo IPA?
krasnyk
4

Eu tive esse mesmo problema, usando uma versão antiga da biblioteca route-me. "Ignorei" todas as bibliotecas e as bibliotecas dentro das bibliotecas (proj4), mas ainda tinha o mesmo problema. Acontece que o route-me e o proj4 estavam instalando arquivos de cabeçalho público, mesmo quando as bibliotecas estavam sendo ignoradas, o que estava atrapalhando da mesma maneira! Então, eu apenas entrei na guia "meta-me" e na guia proj4 "Build Phases", abri "Copy Headers", abri "Public" e arrastei esses cabeçalhos de "Public" para "Project". Agora eles não são instalados em $ (BUILD) / usr / local / include e eu consigo criar um arquivo ipa a partir do arquivo morto!

Espero que a Apple resolva esse problema horrível de usabilidade com o XCode. Não dá absolutamente nenhuma indicação do que está errado, simplesmente não funciona. Eu odeio controles esmaecidos que não dizem nada sobre por que eles estão esmaecidos. Que tal, em vez de ignorar os cliques, os controles desativados podem exibir uma mensagem informando por que diabos eles estão desativados quando você clica neles com frustração?

Don Hopkins
fonte
Sim! Todos os arquivos de cabeçalho marcados como públicos fazem o problema. Defini-los como projeto corrigiu o problema!
JakubKnejzlik
3

Supondo que você tenha feito um Produto> Arquivamento bem-sucedido, no Organizer (Shift Apple 2), clique em Arquivos.

Selecione seu arquivo. Selecione Compartilhar. No painel "Selecione o conteúdo e as opções para compartilhamento:", defina Conteúdo como "Pacote da App Store do iOS (.ipa) e Identidade como Distribuição do iPhone.

Clique em Avançar, digite o nome do aplicativo e clique em Salvar.

Detalhes sangrentos completos com capturas de tela estão aqui: Xcode4UserGuide

Snowcrash
fonte
2

Alguém que tentou todas as outras respostas e não teve sorte, marque esta caixa de seleção, espero que ajude (fiz o truque para mim xcode 6.0.1)

insira a descrição da imagem aqui

Inder Kumar Rathore
fonte
0

Eu tive o mesmo problema ... tive que recriar o projeto do zero.

Nota: meu projeto foi criado no XCode 3.1 e estava vinculado a uma biblioteca estática que estava sendo construída como um subprojeto (para um destino comum). Alterei isso para criar a fonte quando recriei o projeto XCode no XCode 4.

Agora, fazer um Produto / Arquivar / Compartilhar ... obtém a opção "Pacote da App Store do iOS (.ipa)" diretamente acima de "Aplicativo" (que agora está acinzentado) e "Arquivar" (que exporta o .xcarchive).

Graeme Wicksted
fonte
0

O mesmo problema. Resolvi definir o sinalizador "ignorar instalação" como SIM para cada projeto externo, deixando inalterados os outros destinos do projeto principal.

Eu também tive que ir para "Editar esquema ...", escolher o painel "Arquivamento" e definir a configuração de compilação correta para meu propósito ad-hoc.

Então, um simples Produto -> Arquivo -> Compartilhar fez o trabalho esperado.

nebillo
fonte
0

Você precisará criar e arquivar seu projeto. Pode ser necessário verificar quais configurações de assinatura de código você possui no projeto e no executável.

Use o Organizer para selecionar sua versão do arquivo morto e, em seguida, você pode compartilhar essa versão do seu projeto. Você precisará selecionar a assinatura de código correta novamente. Isso permitirá que você salve o arquivo .ipa onde desejar.

Arraste e solte o arquivo .ipa no iTunes e sincronize com o seu iPhone.

Surjit Joshi
fonte
0

Se for um jogo (também pode ser app) e você tiver algumas bibliotecas estáticas como cocos2d ou outra biblioteca de terceiros ... basta selecionar * SOMENTE A * biblioteca estática (NÃO O APP) e em suas configurações de compilação em Implantação, defina o sinalizador Ignorar Instalação YESe Arquive-o ... ... !!

vivek
fonte
0

Eu joguei o mesmo problema. Nenhuma das respostas acima funcionou para mim, mas acabei encontrando a solução sozinha. O arquivo ipa não foi criado porque havia arquivos de biblioteca (libXXX.a) em Destino-> Fases de Construção -> Copiar Pacote com Recursos

Espero que ajude alguém :)

Shrolox
fonte