Criei um novo aplicativo que suporta o IOS 7. Peguei o novo XCode 5 GM e tentei assinar meus aplicativos usando meu novo perfil de provisionamento e certificado de distribuição, mas estou tendo problemas com a distribuição. Eu constantemente recebo o seguinte erro:
"Direitos de assinatura de código inválidos. Os direitos na assinatura do pacote de aplicativos não correspondem aos que estão contidos no perfil de fornecimento. De acordo com o perfil de fornecimento, o pacote contém um valor-chave que não é permitido: '[XXXX.com.sample .company] 'para a chave' keychain-access-groups ".
Também o mesmo erro para um valor-chave chamado application-identifier
.
Captura de tela do erro:
fonte
Se você é como eu e acha que tentou TUDO , arquivou seu projeto mais de dez vezes, bateu a cabeça no teclado e ainda assim recebe esse erro. Por favor, faça um favor a si mesmo e simplesmente reinicie o XCode , funcionou para mim. Algum tempo a Apple ... eu te odeio.
fonte
Eu segui muitas das etapas acima, mas o que finalmente funcionou para mim foi atualizar meus perfis no Xcode. Não sei por que isso era necessário, pois o perfil de distribuição do meu aplicativo já estava aparecendo na lista. Aqui estão os passos:
fonte
No meu caso, ativei os mesmos recursos no Xcode que nos serviços de aplicativos em developer.apple.com. Isso funciona para mim
fonte
No meu caso (desculpe), mudei "Equipe" para "Nenhum" em -> Geral -> Identidade
Em outro caso, eu precisava mudar essa identidade de "Nenhuma" para a conta de desenvolvedor que gerenciava as identidades e os perfis.
Às vezes, o Xcode mexe muito com a assinatura de código. Ou, meros mortais simplesmente não são inteligentes o suficiente para entender o que estão fazendo, é claro. Não desista, todos nós estamos passando por algumas torturas de assinatura de código às vezes!
fonte
No meu caso, tive que definir o perfil de provisionamento correto para a versão e depois reiniciar o Xcode. Antes de reiniciar, tinha o mesmo perfil de provisão e não funcionava. Então, às vezes, um reinício pode fazer milagres. Talvez isso ajude alguém.
fonte
Se alguém usa um GameCenter, verifique esta seção no seu destino. Eu trabalhei com algum projeto antigo e houve 2 erros (mas tudo funcionou bem). Desativar e ativá-lo de volta resolveu esse problema.
Provavelmente, essa ação adiciona o direito do Game Center ao ID do aplicativo e o trata por si próprio.
fonte
1. Vá para a pasta do projeto, exclua os arquivos * .entitlements. 2.Em seguida, vá para o destino do projeto xcode -> configurações de construção -> direitos de assinatura de código - exclua valores 3.Clean 4.Run
fonte
Ah, esse erro glorioso. Para mim, sempre que vejo esse erro, verifico o seguinte:
1. Permita que o XCode acesse suas informações de perfil de provisionamento o tempo todo - se o XCode continuar perguntando quando você o inicia para ter acesso aos arquivos particulares do computador, para que ele possa obter informações de perfil de provisionamento com as opções para permitir o acesso sempre, não agora, ou apenas uma vez - defina-o para permitir sempre o acesso
2. Se você tiver algum arquivo de direitos antigo disponível no seu projeto, livre-se deles e faça qualquer sinal deles - se você vir um arquivo .entitlements no seu projeto, exclua-o (ou pelo menos remova a referência a ele, se não tiver certeza você está pronto para excluí-lo completamente) e verifique se a linha 'Autorizações para assinatura de código' na seção 'Assinatura de código' em Configurações de compilação está vazia
3. Verifique on-line os serviços de aplicativos e faça a correspondência com os serviços no XCode para o aplicativo - Vá para o Apple Member Center e verifique o ID do aplicativo, clique no aplicativo para ver seus 'Serviços de aplicativos' e veja o que você foram verificados, acesse o XCode e verifique a seção 'Recursos' para garantir que os dois tenham a mesma lista de serviços da Apple nos dois
4. Certifique-se de atribuir um perfil de aprovisionamento válido ao seu aplicativo antes de validar - verifique novamente o perfil de aprovisionamento do aplicativo no Apple Member Center, verifique se ele não está vencido, se possui o ID do aplicativo correto, com o ID do pacote e a distribuição corretos . Faça o download e clique no novo perfil de aprovisionamento para garantir que o XCode o possui, ou vá para XCode> Preferências> Contas> clique na sua conta e em 'Exibir detalhes' e clique no botão do canto inferior para sincronizar todos os perfis com o XCode. Você deve ter o perfil disponível para seleção agora na seção 'Assinatura de código'. Depois de ter o perfil de provisionamento correto, você pode definir as linhas 'Identidade de assinatura de código' para a opção correta para esse perfil de provisionamento.
Nota - se estiver executando um certificado de distribuição, poderá ajudar a definir todas as linhas 'Identidade de assinatura de código' para a identidade que você usa para distribuição, incluindo as linhas de depuração
5. SE TODO O OUTRO FALHAR - Limpe seu projeto e reinicie o XCode, e alguma mágica da Apple poderá funcionar bem na próxima vez em que você abrir o projeto e tentar validar
fonte
Se você está construindo um projeto 3.1.5 antigo, o Xcode 5 tem alguns bugs que, infelizmente, tornam a resposta de Benjamin impossível, pois não há perfis de provisionamento para escolher. Depois de muitas horas de leitura atormentada dos arquivos do projeto Xcode, eu vim com esta solução que funcionou para mim:
open -a TextEdit path/to/name.xcodeproj/project.pbxproj
isa=XCBuildConfiguration
).PBXNativeTarget
uma e uma emPBXProject
XCConfigurationLists
)Agora você está pronto para reabrir, arquivar e enviar para a App Store - voilà! Funciona de novo!
Como eu acho que funciona
Suponho que isso funcione porque a Apple, em algum momento da linha, decidiu abandonar a necessidade de qualquer configuração de distribuição separada, o que é uma coisa boa. Quando eu arquivo, o Xcode codifica automaticamente sinais para distribuição. É assim que deveria ter sido implementado, é uma pena que a Apple não consiga fazer a migração automática parte do IDE; em vez disso, nos forçam a desenvolvedores a gastar décadas de trabalho para fazer essas coisas funcionarem.
fonte
Estou lutando com esse problema há mais de um dia, tentando todos os tipos de soluções sugeridas aqui e em outros lugares na Internet. Nada funcionou...
Mas finalmente consegui resolver o problema!
O problema que tive foi com um aplicativo antigo que não toquei há mais de três anos e agora estava prestes a lançar uma atualização há muito esperada. Desde o lançamento do aplicativo, a Apple atualiza o funcionamento dos certificados e do ID do aplicativo. Eles introduziram o conceito de ID da equipe que parece recomendado. Em particular, o site "Certificados, identificadores e perfis" da Apple sofreu muitas mudanças desde então.
Lá, percebi que o perfil de provisionamento que eu estava usando para a App Store Distribution estava conectado ao ID do aplicativo,
ED8xxxxxxx.com.rostsolutions.*
mas olhando para o ID do aplicativo para o jogo que estava prestes a enviar, observei que o ID do aplicativo eraATMxxxxxxx.com.rostsolutions.Swisch
. Portanto, o prefixo do ID do aplicativo não corresponde! Essa parecia ser a raiz do problema. Então, o que fiz foi criar um novo perfil de provisionamento conectado ao ID do aplicativoATMxxxxxxx.com.rostsolutions.Swisch
. Usando esse perfil de provisionamento, enviei meu aplicativo com sucesso à App Store e agora mantenho meus dedos cruzados para que tudo funcione bem do lado da Apple.(Tentei conectar-me primeiro ao novo perfil de provisionamento no ID do curinga
ATMxxxxxxx.com.rostsolutions.*
, mas isso não pareceu funcionar).Mas o que me intriga é que, quando olho para o antigo aplicativo no iTunes Connects e vou para Detalhes binários, ele diz que o ID do aplicativo é
ED8xxxxxxx.com.rostsolutions.Swisch
. Então, por que a página "Certificados, identificadores e perfis" lista o ID do aplicativo comoATMxxxxxxx.com.rostsolutions.Swisch
?fonte
Meu problema foi resolvido removendo meu ID Apple de Preferências-> Contas e adicionando-o novamente. Todos os meus arquivos de perfil de provisionamento apareceram no painel do utilitário Visualizar detalhes. Eu estava escolhendo errado "Perfil de provisionamento da equipe Mac: *" em vez do perfil de provisionamento de distribuição real do projeto, pensando que era uma seleção genérica. Os arquivos de provisionamento devem ser específicos ao projeto. Ah, e BTW, verifique se o seu perfil de aprovisionamento tem os direitos corretos (por exemplo, Maps). Consegui lançar um aplicativo com o OSX Maps sem o direito e a Apple o aprovou - mas nenhum Maps apareceu na versão de produção!
fonte
No meu caso, eu tive o mesmo problema, minha solução foi alterar o 'Release Provisioning Profile' nas Configurações de compilação antes de fazer o Archive. Faço isso duas vezes, uma para distribuição na App Store e outra para distribuição Ad Hoc. Também adiciono um comentário nos meus arquivos. Minha conclusão é que há algo quebrado na "assinatura do arquivo".
fonte
Há um tutorial muito bom para resolver esse problema neste site.
Ele afirma que esse problema pode ocorrer quando o Identificador de pacote de projetos é diferente daquele que você inseriu no site do iTunes Connect .
fonte
Eu acho que o xcode 5 usa "release" em vez de "distribuição" que você mesmo criou.
fonte
Se tudo acima não funcionou (no meu caso, depois de alguns dias sem sorte, tentando de tudo), tenho apenas um aplicativo para Mac. CUIDADO COM A REVOGAÇÃO!
1) Revogue manualmente todas as "Mac App Distribution" e "Mac Installer Distribution"
2) Limpe os certificados e as chaves abertas relevantes no Keychain ( Aviso: exporte antes de excluir)
3) Reinicie o Xcode 4) Acesse (no Safari) developer.apple .com -> certificados etc. 5) Crie CertificateSigningRequest.certSigningRequest no Keychain-> Assistente de certificado
6) Crie manualmente em developer.apple.com as "Mac App Distribution" e "Mac Installer Distribution" com seu * .certSigningRequest
7) Provisioning Perfis -> Distribuição -> criar / corrigir provisão personalizada para AppStore (eu sou nomeado especialmente como "perfil de provisão para Mac para AppStore"
8) Xcode -> Configurações -> Conta -> Sua conta ->Atualizar 9) Xcode Clean -> Arquivo -> Validar
fonte
Eu tenho lutado com problemas semelhantes (eu estava construindo para a distribuição Ad-Hoc). A única coisa que mudou desde a última implantação bem-sucedida foi adicionar dois dispositivos ao perfil de provisionamento.
Depois de verificar duas e três vezes todas as configurações de compilação, regenerei o perfil de provisionamento (sem alterar nada), baixei novamente e funcionou bem.
Portanto, observe a si mesmo: se não houver explicação lógica, você sempre poderá experimentar o bom e velho vodu de TI.
Também recomendo o Utilitário de configuração do iPhone , que, apesar do nome, é útil para verificar quais perfis de provisionamento você possui no computador.
fonte
ERRO ITMS-9000: “Este pacote é inválido. Novos aplicativos e atualizações de aplicativos enviados à App Store devem ser criados com versões públicas (GM) do XCode 5.1.1 ou superior e do iOS 7 SDK. Não envie aplicativos criados com software beta.
fonte
Se vários desenvolvedores estiverem usando a mesma conta do centro de membros. Um deles não pode usar um certificado criado por outras pessoas porque eles usaram uma solicitação de certificado criada usando seus computadores.
Em alternativa, disse-lhes para enviar o perfil de desenvolvedor. não tenho certeza do nome. para usar um certificado criado em outro computador.
fonte
Os direitos de assinatura de código ocorrem porque seu recurso não contém o arquivo de direitos nos recursos. Basta ir para a configuração de criação e procurar Direitos de assinatura de código excluir a entrada para depuração e liberação, criar projeto novamente e você verá que não há erro. Felicidades
fonte
Eu tive o mesmo problema, mas nada escrito aqui funcionou para mim. No entanto, eu encontrei uma maneira simples que funcionou para mim. Veja como fazê-lo:
1) Nas configurações de criação do seu Projeto e seus Objetivos, escolha "Nenhum" para todos os perfis de provisionamento e escolha "Não assinar código" para todas as identidades de assinatura de código.
2) Agora, escolha seu alvo e vá para criar configurações. Na configuração Liberação de identidade da assinatura de código, escolha "Distribuição iOS" para "Qualquer iOS SDK". E, na configuração Liberação do perfil de provisionamento, escolha seu perfil de distribuição para "Qualquer iOS SDK". Depois disso, sua configuração de Liberação de identidade com assinatura de código deve mudar automaticamente para "Distribuição do iPhone".
3) Arquive sua compilação e valide. Agora deve funcionar bem. É isso aí!
fonte