Problema no Xcode 6 beta 2 exportando .ipa: "Sua conta já possui um certificado de distribuição iOS válido"


193

Estou tendo problemas para exportar um aplicativo para distribuição ad hoc no Xcode 6 beta 2:

Falha ao localizar ou gerar ativos de assinatura correspondentes

Ao exportar meu projeto para desenvolvimento ad hoc no Xcode 6, recebo este alerta. Eu tentei exportá-lo no Xcode 5 e não tive problemas para salvar o arquivo .ipa. Alguém está enfrentando esse problema também?


2
@ christopher.ryan.cruz Eu tenho o mesmo problema. Ainda posso exportar com o xcode5 no meu mac, mas obtendo a mesma mensagem de erro ao tentar com o novo xcode6. Você já descobriu isso?
Gal

1
Alguma sorte em resolver esse @Gal?
simonthumper

1
@ christopher.ryan.cruz essa é a solução. O Xcode está dizendo "Não há certificado de distribuição válido". A recriação ou o download novamente deve corrigir o problema.
precisa saber é

8
Só tive esse problema com a versão GM do XCode6. : - {
Kendall Helmstetter Gelner

4
Estou tendo esse problema mesmo com o lançamento oficial do xCode 6. Tente revogar muitas vezes, exclua do keychain, faça logout e conta de login no xcode novamente, mas nada disso me traz resultados positivos! qualquer ajuda?
Steven

Respostas:


52

Isto é o que funcionou para mim.

  1. Na minha máquina, mantive o Xcode 5 e o Xcode 6 beta.

  2. No Xcode 6 beta, arquive o projeto. Feche o Xcode 6.

  3. Abra o Xcode 5, vá para o Organizer e exporte conforme o Ad Hoc for construído com o perfil de provisionamento adequado.

É isso aí!


9
Estou fazendo com que isso aconteça no GM. Essa não será uma solução válida por muito mais tempo, pois o Xcode 6 e o ​​iOS8 serão lançados esta semana.
bergy 15/09/14

20
No Xcode 6.0.1, o problema desapareceu. A Apple mudou o modo de distribuição Ad Hoc para desenvolvedores. Agora você não pode criar versões da distribuição Ad Hoc usando o Certificado de Desenvolvimento. Você precisa de um certificado de distribuição com o perfil de provisionamento "Ad Hoc" (não o perfil de provisionamento de desenvolvimento) para criar compilações Ad Hoc. É uma dor real e você não pode mais usar uma conta Apple Developer em vários Macs para compilações de Archiving TF (TestFlight). Parece que todo desenvolvedor deve pagar US $ 99 / ano individualmente! O TestFlight da Apple parece promissor, mas as versões beta serão analisadas pela equipe de revisão de aplicativos. :(
Adnan

3
Mais tarde - depois de revogar e gerar novamente todos os certificados e perfil de provisionamento para a conta de desenvolvedor em questão, o problema foi finalmente resolvido.
Graham Dawson

1
No Xcode 6.1, o problema não existe mais. Mas se você deseja criar o Ad Hoc para a distribuição TestFlight (testflight.com), use o Ad Hoc Distribution Provision. A provisão de desenvolvimento não permitirá que você arquive mais para distribuição ad hoc. Não é uma boa abordagem da Apple.
Adnan

Ainda estou tendo esse problema no Xcode 6.1 e no Xcode 5.1.1 agora está mostrando um triângulo de aviso amarelo por todos os meus perfis quando tento exportar. Isso não aconteceu antes de eu começar a construir com o Xcode 6.1.
Greg

66

Eu tive o mesmo problema há dois dias. Acontece que o problema era:

  1. Eu tenho meu próprio certificado de distribuição de desenvolvedor com uma chave privada adequada
  2. Tenho certificado de distribuição de desenvolvedor corporativo do meu cliente sem uma chave privada
  3. Eu tento fazer um pacote de distribuição corporativa para meu cliente
  4. O Xcode gera um erro vago: sua conta já possui um certificado de distribuição iOS válido

A solução é: obter uma chave privada para a conta corporativa do meu cliente. Existem 2 opções possíveis:

  1. Peça ao cliente credenciais para acessar sua conta de desenvolvedor corporativo no site da Apple. Revogue o certificado antigo e recrie-o. Você criará a chave privada no processo. CUIDADO : a revogação de um certificado de distribuição empresarial invalida todos os aplicativos que foram assinados e implantados com esse certificado ( informações oficiais ).
  2. Peça ao seu cliente para exportar sua chave privada do aplicativo Keychain Access como um arquivo * .p12 e envie-a com uma senha. Você não pode baixar a chave privada existente no site da Apple. A única maneira de obtê-lo é perguntar ao seu cliente. Eu fiz e fiz e finalmente consegui fazer o pacote.

Como descobrir se você possui uma chave privada para um certificado: Abra o aplicativo Acesso ao Keychain. Escolha certificados. Encontre o seu certificado. Se você vir um pequeno triângulo cinza no lado esquerdo do certificado, abra-o e você verá sua chave privada. Sem triângulo = sem chave privada.

Como descobrir se você possui uma chave privada para certificado


1
Eu tive esse erro hoje, totalmente perplexo, até ler sua excelente resposta. Muito obrigado! +1
Dal

2
Que resposta fantástica para um problema totalmente impenetrável.
shmim

1
Excelente. Obrigado.
Wade Anderson

@AlexanderVasenin Tentei isso, mas o mesmo problema ainda existe. Alguma solução veio para isso?
Zalak Patel

49

Eu tive o mesmo problema, tive que usar a ferramenta "xcodebuild" da linha de comando como solução alternativa, com apenas o Xcode 6 instalado (não foi necessário reinstalar o Xcode 5).

http://www.thecave.com/2014/09/16/using-xcodebuild-to-export-a-ipa-from-an-archive/

Exemplo:

xcodebuild -exportArchive -archivePath $projectname.xcarchive -exportPath $projectname -exportFormat ipa -exportProvisioningProfile "Provisioning Profile Name"

2
Muito obrigado! Isso funcionou e recebeu uma compilação ad-hoc.
JocelynH 23/09/14

1
Consegui produzir um * .ipa dessa maneira, mas não consigo instalá-lo (o aplicativo trava em 'Instalando ...'). O log de dispositivo no Xcode mostra um erro de assinatura de código.
Alexander Vasenin

Em qual caminho da pasta podemos escrever esse código para criar ipa?
Esha

1
Esta foi a única solução que funcionou para mim depois de tentar e não para remover e revogar certificados, chaves e perfis localmente e no portal do desenvolvedor para Xcode 6.1 / iOS 8.1
David Wadge

1
Encontrei a solução semelhante em ótimas etapas descritivas, realmente ajuda muito para iniciantes datacalculation.blogspot.in/2014/10/…
Teste do iOS

28

No meu caso, o que resolveu o problema foi excluir todos os certificados de distribuição da minha conta de desenvolvedor da Apple. Em seguida, o Xcode conseguiu criar certificados de desenvolvimento e distribuição novamente, e isso fez o truque.


1
O que também significa que você precisa refazer todos os seus perfis de distribuição ad-hoc.
Kendall Helmstetter Gelner

1
@ Kendall, não refiz todos os meus perfis de distribuição ad-hoc. Apenas excluindo os certificados do keychain e do portal do desenvolvedor da Apple. Então Xcode conseguiu resolver todos os problemas por conta própria
lucaslt89

12
Isso funcionou para mim também ... esse tem sido um problema constante em todos os lançamentos do Xcode, e eu realmente gostaria que a Apple passasse algum tempo reformulando esse processo horrível.
Raconteur

2
Obras para mim também (com Xcode Beta 6), apenas certifique-se de excluir os certificados de site do desenvolvedor A Apple e chaveiro, então deixe Xcode corrigir o problema
Claus

Quando você diz que excluiu todos os seus certificados de distribuição, está dizendo que os excluiu do computador e o xcode os reinstalou ou está dizendo que os excluiu do portal do membro e que o xcode criou novos em seu lugar?
22964 JacksonJackson

19

Eu recebo uma solução sem renovar o certificado:

1 - Arquive o destino com o perfil de identidade e aprovisionamento de código apropriado

2 - Botão direito do arquivo criado no Organizer -> Mostrar no Finder

3 - Botão direito no arquivo xcarchive -> Mostrar conteúdo do pacote

4 - No Finder , vá para Produtos / Aplicativos /

5 - Carregue o arquivo Products / Applications / appName no iTunes

6 - Quando o aplicativo aparecer no iTunes, clique com o botão direito do mouse -> Mostrar no Finder . Este é o arquivo ipa

7 - Envie este ipa através do App Loader 3.0

Não acho que seja uma solução duradoura, mas não quero excluir meus certificados


2
Por que devemos usar o carregador de aplicativos aqui? Eu realmente não sei sobre isso.
Mejdi Lassidi

Quais são os perfis de identidade e provisionamento de código "apropriados"? Tentei definir a identidade de assinatura do código de versão como "Distribuição iOS" e isso não ajudou. Se eu definir o Perfil de provisionamento de versão para algo diferente de Xcode "Automático", altere a Identidade de assinatura de código.
Greg

Muito obrigado! Eu não conhecia esse.
Mihriban Minaz

17

Finalmente resolvi !!

1) Crie um NOVO certificado de produção através do developer.apple.com que exija o uso do Keychain Access às para criar uma nova chave privada no seu computador

2) No mesmo portal do desenvolvedor, abra seu Perfil de provisionamento de distribuição usado com este aplicativo e selecione o novo certificado de produção que você acabou de criar. Gere a provisão, faça o download e execute-o

3) Execute seu aplicativo, arquive-o e exporte-o.

viola

Demorei dias, se não semanas, para descobrir, espero que ajude você.


1
Parece que o seu "voilà" foi corrigido automaticamente; não é suficiente uma alteração para o Stack Overflow me permitir editar.
precisa

14

Crie um novo certificado de distribuição do iOS e escolha a seção Produção> App Store e AdHoc. Também não se esqueça de alterar Target> Build Settings> Code Signing all para iOS Distribution. (Mas depois de criado o ipa, configure-o novamente para iOS Developer). Somente isso resolveu o meu problema.


1
Essa opção está acinzentada. o que estou perdendo?
Greg


11

Eu enfrentei o mesmo problema hoje com o Xcode 6.1.1

Quando tentei adicionar o certificado de distribuição iOS via Xcode, o erro foi o mesmo. Já havia vários certificados de distribuição emitidos na Central de Membros e eu não queria invalidá-los porque, se eles forem usados ​​para distribuição Ad Hoc em um ambiente corporativo, isso também invalidará os aplicativos instalados nos dispositivos (pelo menos é isso que eu já li).

O que fiz foi:
1. Através do Keychain Access, foi gerado um pedido de certificado de uma autoridade de certificação. E salvou a solicitação em um arquivo;
2. Conectou-se à seção Produção da área de certificados do Centro de Membros e solicitou um novo certificado de produção "App Store e Ad Hoc", solicitando o arquivo da etapa 1;
3. Baixou o novo certificado e, quando importado no Keychain Access, agora tinha uma chave privada.

Posteriormente, limpei o Xcode, reiniciei-o, verifiquei que na minha conta o perfil está visível e construí um novo arquivo. E agora eu era capaz de validar o arquivo.

Agora, se eu tentar solicitar um novo certificado da "App Store e Ad Hoc", essa opção estará acinzentada para mim e acho que é porque minha conta já possui o certificado emitido. Se esse for o seu caso, você provavelmente precisará invalidar seu certificado anterior antes de poder emitir um novo. É por isso que a Apple recomenda fazer backup do seu certificado. Mas é muito provável que você não precise invalidar todos os certificados de produção, pois eu já tenho vários deles no perfil.

Espero que isso ajude alguém :)


Obrigado pela informação, Angel. Eu tenho o Xcode 6.1.1 e já tentei isso ontem e hoje, mas devo ter errado uma etapa frágil porque ainda não consigo validar meu arquivo. (FYI, a razão que você tem essa opção acinzentado, de acordo com o que li em outros lugares em SO, é que você tem dois certificados de produção já e que é aparentemente limite segredo da Apple)
ultrageek

Você viu a chave privada do certificado de distribuição através do Acesso às Chaves. Caso veja, você pode tentar: 1. Exclua todos os arquivos que você possui no Organizer para este projeto. 2. Antes de criar seu arquivo, verifique se você selecionou o destino do projeto e se o dispositivo de destino é um dispositivo real, não um simulador. 3. Faça uma "Limpeza da pasta de compilação" no menu Produto do Xcode. Essa é a mesma opção que Limpar, mas você precisa pressionar a tecla Alt. 4. Execute o projeto no dispositivo real e verifique se tudo está correto. 5 Crie seu arquivo. 6. Tente validá-lo.
Angel Naydenov

Mas se você não vir a chave privada, não poderá validar, pois não pôde assinar o pacote. Ontem, tentamos esse processo com um colega meu e tive que exportar minha chave privada através da conta Xcode com a distribuição iOS selecionada. Em seguida, nós o importamos pelo Keychain Access e ele conseguiu validar e fazer o upload das compilações no iTunes Connect. Para mim, o que eu precisava para obter esse processo é que você realmente precisa dos 2 certificados: Desenvolvimento iOS e Distribuição iOS. Eles são usados em casos diferentes e para iTunes Connect você precisa aquele Distribuição :)
Anjo Naydenov

Obrigado anjo. Finalmente, descobri qual certificado estava faltando a chave privada, excluí todos os certificados e perfis do Xcode> Accounts e Dev Center, e comecei de novo. O processo é muito frágil e, supostamente, ter duas contas de desenvolvedor no mesmo Mac parece desempenhar um fator parcial nos problemas.
ultrageek

1
É bom ouvir que você descobriu isso!
Angel Naydenov

7

A Apple mudou a maneira de criar Ad Hoc. Agora você não pode criar distribuições Ad Hoc usando o dev dev. Você deve usar um certificado de distribuição com um perfil de provisionamento "Ad Hoc".


Você tem um link de documentação para isso?
precisa saber é o seguinte

2
Você pode tentar remover todos os certificados e perfis e deixar o XCode fazer o resto; você verá automaticamente o certificado de distribuição e o perfil de provisionamento ad-hoc.
Son Nguyen

2
Eu fiz obrigado. Só estava me perguntando se a Apple havia realmente anunciado em algum lugar ou apenas nos deixou descobrir isso.
precisa saber é o seguinte

6

Acredito que o motivo real pelo qual você acabou nesta tela é ao tentar obter o arquivo .ipa para ser distribuído aos seus testadores e clientes. No Xcode 6, para obter o arquivo .ipa, você pode usar o método antigo para a geração de iPA:

  1. Selecione o organizador no Xcode. Na guia Arquivos, selecione o arquivo cujo arquivo iPA você precisa gerar.
  2. Clique com o botão direito e selecione a opção "Mostrar no Finder"
  3. Você verá o arquivo .xarchive. Clique com o botão direito e selecione "Mostrar conteúdo do pacote"
  4. Você verá pastas: dSYMs, Info.plist e Produtos.
  5. Abra Produtos> Aplicativos e você verá seu arquivo .app.
  6. Arraste e solte esse arquivo .app no ​​iTunes no Mac.
  7. Seu arquivo .app será listado em "Meus aplicativos" no iTunes.
  8. Clique com o botão direito do mouse no seu aplicativo e selecione "Mostrar no Finder".

Agora você tem o arquivo .ipa que pode ser enviado aos testadores para teste. Espero que isto ajude.


4

Houve mudanças na maneira como a apple gerencia nossa chave pública e privada. O método anterior para compartilhar conta em duas máquinas era o
provisionamento
1.download 2.export / certificado de checkout

instale os dois no outro mac

mas agora você não precisa fazer isso, exporta toda a sua conta.
1.XCode -> preferências -> conta (selecione conta) na parte inferior esquerda, existe a opção de exportar que insira a descrição da imagem aqui você será solicitado a fornecer uma senha e fornecer a senha necessária durante a importação em outro sistema. local de sua escolha.

2. faça o download em outro Mac e, quando aparecer o prompt, o dispositivo já possui uma identidade de assinatura válida, clique em Importar perfil do desenvolvedor e importe esse arquivo .developerprofile. insira a descrição da imagem aquidigite a senha quando solicitado.

tenho ajuda daqui


@Ranjit então Ouvia clara e fazer novos certificados
amar

3

Eu o resolvi seguindo as próximas etapas:

1) na sua conta de desenvolvedor da Apple: Crie um novo certificado de produção Escolha a App Store e a opção Ad Hoc

2) na sua conta de desenvolvedor da Apple: Crie um novo perfil de provisionamento com seu ID de pacote atual e o certificado criado na etapa um

3) no seu xcode:

  • Selecione seu alvo
  • Na guia Build Settings na zona Code Signing
  • Na subzona Identidade de assinatura de código - liberação
  • Defina seu novo certificado de distribuição (ad hoc)
  • No perfil de provisionamento - defina seu novo perfil de provisionamento (ad hoc)

Parece que o xcode 6 agora requer um certificado de distribuição ad hoc para exportar seu IPA.

insira a descrição da imagem aqui


3

Eu peguei o mesmo problema hoje e achei uma boa solução, eu acho.

Primeiro de tudo, há algo anormal:

insira a descrição da imagem aqui

o normal é:

insira a descrição da imagem aqui

e no chaveiro:

insira a descrição da imagem aqui

o normal é:

insira a descrição da imagem aqui

então, percebo que não tenho o perfil de provisionamento correto que contém o certificado de distribuição iOS correto.

Por fim, minha solução é: use meu arquivo CertificateSigningRequest.certSigningRequest para gerar um novo certificado de distribuição iOS e use o novo certificado de distribuição iOS para gerar um novo perfil de provisionamento .

Observe que não excluo o antigo perfil de certificação e provisionamento, porque meu colega trabalha bem com eles. Isso afeta os aplicativos que eu já publiquei? A resposta é NÃO . Acabei de alterar o certificado de assinatura de código, e alguns certificados importantes, como o push notification certificatevínculo com o ID do aplicativo:

insira a descrição da imagem aqui

Então não se preocupe com isso.

Espero que o acima seja útil.


2

Como apontado por um comentarista, isso provou ser uma solução para mim e para os outros:

Excluí e baixei novamente todos os meus certificados necessários, juntamente com as chaves necessárias para gerar e pude superar esse erro


4
Como você excluiu todos os seus certificados? Eu os removi do chaveiro, mas ainda tenho o mesmo problema.
Lucaslt89

1
você baixou novamente os certificados e se certificou de que eles tinham chaves nos certificados @lucas?
3254523 12/12

5
sim, eu fiz quase 20 vezes e ainda tenho o mesmo problema. Tirei todos os meus certificados, perfis de aprovisionamento, aplicativos arquivados anteriores, e ainda tem a "sua conta já tem um certificado válido iOS distribuição"
lucaslt89

2
fazendo dessa maneira, na verdade, você concede ao xCode permissão para criar e usar automaticamente um perfil de provisionamento ad-hoc, verifique seu programa dev da apple e verá esse perfil ad-hoc.
Son Nguyen

2

Revoco meus certificados de produção e solicito outro, resolvo este problema. Talvez você precise reiniciar seu xcode.


Isso funcionou para mim. Ironicamente, o certificado de produção tinha sua chave privada no meu chaveiro e ainda era válido !!
markshiz

2

Acabei de encontrar isso após a atualização do Xcode 5 para 6.

No meu caso, a criação de um novo certificado de produção e a recriação do perfil de provisionamento de distribuição para o meu aplicativo fizeram o truque.


1

No Xcode 6.0 mais recente oficial, isso acontecerá se você criar acidentalmente um registro em seu arquivo de direitos com uma chave como esta:

com.apple.security.application-groups

Não tenho certeza se o Xcode o criou automaticamente por padrão. Mas excluir essa chave resolveu meu problema. Não precisei recriar nenhum certificado. Não foi problema meu.


1
Onde você encontrou esse arquivo alocado?
Steven

É o arquivo plist chamado: PRODUCT_NAME.entitlements (foi criado por Xcode por padrão)
thkeen

com.apple.security.application-groupsfica ativado se você ativar o grupo de aplicativos de Recursos. Se você criar um novo destino para o desenvolvimento da extensão de aplicativo, ele será incluído automaticamente.
Adnan

1

Resolvi isso simplesmente regenerando o perfil de provisionamento no portal do desenvolvedor (no meu caso, um perfil da App Store) e adicionando ao meu computador via iPhone Configuration Utility. Eu não queria mexer com os certificados e evitei isso com sucesso.

Percebi essa mensagem de erro registrada no Xcode no meu console:

Nenhum dos perfis de provisionamento válidos permitia os direitos especificados: identificador de aplicativo, beta-reports-active, keychain-access-groups.

Após o download de um novo perfil de provisionamento, a falta beta-reports-active = trueestava presente e o Xcode assinou a compilação.


1

Minha solução foi Excluir o único certificado de produção iOS que estou usando e criá-lo novamente. Para fazer isso, você deve criar um novo perfil de provisionamento atribuindo o certificado recém-criado.

então eu fiz o processo de arquivamento novamente e funciona!


1

Além disso, descobri que as contas Xcode entram em jogo -

insira a descrição da imagem aqui

Aconteceu que eu tinha um certificado de distribuição válido em minha conta pessoal ( mobilologia ), então excluí-a temporariamente da seção Contas (você pode deixar apenas a conta da qual está distribuindo).

De repente, o processo de assinatura / arquivamento funcionou!


1

Etapa 1: -Faça login na sua conta de desenvolvedor da apple

Etapa 2: -Escolha Certificados

Etapa 3: -Excluir se houver mais de um certificado de distribuição

Etapa 4: -Em seguida, tente novamente o arquivamento (se ainda houver erro, revogue todos os certificados e crie um novo certificado de distribuição e edite seus perfis de fornecimento).


1

Eu acho que é um bug do Xcode. para fazê-lo funcionar, eu preciso excluir o perfil provisório de distribuição real e tive que criar um novo perfil de distribuição provisório do devcenter. Isso funciona de mim


1

Eu também enfrentei o mesmo problema, estava usando o certificado de desenvolvimento em vez do Adhoc. O problema foi corrigido após o uso do certificado Adhoc.


1

Exclua o certificado do ios Distribution do site de desenvolvedor da apple e regenere o ios Distribution com o arquivo certSignReq. Funciona para mim sempre. Seus outros aplicativos não seriam afetados. Pelo menos no meu caso, nunca aconteceu.


1

No meu caso, gerei um novo perfil de distribuição e o adicionei ao XCode, depois tentei enviar a compilação. Acontece que tudo que eu precisava fazer para me livrar dessa mensagem é reiniciar o XCode e tentar enviar novamente. Trabalhou.


1

No meu caso, recebi a mensagem de erro ao tentar exportar e criar o AdHoc a partir do Organizer. Fiz duas coisas, uma das quais pode ter corrigido o problema:

1) Exportou o certificado existente que alegava não possuir do meu chaveiro, excluiu-o do chaveiro e reimportou.

2) Criou um certificado de distribuição ad-hoc, conta XCode atualizada para obter o novo perfil de provisionamento de distribuição.

Depois disso, pude exportar exatamente o mesmo arquivo morto para uma compilação AdHoc. Eu realmente acho que era apenas esse fato que eu estava perdendo uma distribuição ad-hoc que tinha como alvo aquele bundleID específico que levou o XCode a ficar confuso.

Acompanhamento: o arquivo que eu criei antes não funcionou, tive que gerá-lo novamente. Uma pista de que esse era um problema era que, ao selecionar o arquivo e optar por exportar uma compilação Ad-Hoc, a conta padrão selecionada era a conta errada para a compilação (o projeto não tinha uma conta padrão selecionada quando arquivei a compilação).


1

Foi isso que funcionou para mim (conta corporativa)

Importe o perfil de desenvolvedor da outra máquina, que carregou o certificado necessário com a chave secreta.
Renomeie o pacote de aplicativos para o nome da empresa (foi nomeado sob o nome da loja de aplicativos).
Altere o nome da equipe na guia "Geral" para a equipe da minha empresa - o padrão era a minha conta pessoal de desenvolvedor!

Com essas alterações, eu poderia exportar um ipa como ad-hoc e corporativo, enviá-lo para o Hockey Rink e baixá-lo no meu telefone

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.