Estou tentando fazer upload de um aplicativo para a loja de aplicativos e estou recebendo este erro na página que contém os certificados. Pelo que posso dizer, mudei o campo para que eles combinassem, mas estou faltando alguma coisa.
Qualquer ajuda seria muito apreciada.
entitlements.plist
arquivo.Respostas:
Não sei por que isso corrigiu, mas entrei na guia Recursos do alvo, liguei o iCloud, tentei fazer uma compilação de arquivo, falhou, desliguei o iCloud novamente, tentei fazer uma compilação de arquivo e deu certo, e depois disso, ele foi capaz de resolver automaticamente os certificados novamente.
fonte
Clique com o botão direito no Finder -> Ir para a pasta ...
~/Library/MobileDevice/Provisioning
Para Xcode 11
~/Library/MobileDevice/Provisioning Profiles/
Exclua todos os perfis de provisionamento, pronto.
fonte
~/Library/MobileDevice/Provisioning Profiles/
O aplicativo que você criou tem um
application-identifier
valor incorreto , para o que o perfil de provisionamento está esperando. O cert para appIDcom.example.foo
para a equipe2ABCDEFG
será esperadoapplication-identifier: 2ABCDEFG.com.example.foo
, seu app declarou que seu appID eracom.example.foo
, mas oapplication-identifier
não correspondeu, ou você está usando o prefixo de equipe errado ou o bundleID está configurado incorretamente.No meu caso, estou usando esquemas de compilação para me permitir construir um aplicativo de produção e um aplicativo de qa.
com.example.foo
para prod, ecom.example.foo.qa
para QA.Eu tinha definido meu bundleIdentifier no
Info.plist
para$(PRODUCT_BUNDLE_IDENTIFIER)$(BUNDLE_SUFFIX)
, que funciona muito bem no simulador e no dispositivo por ter aplicativos diferentes, no entanto, quando o aplicativo gera seuapplication-identifer
durante a fase de arquivamento, ele não deve estar lendo o bundleIdentifier gerado pelo Info.plist.Para remediar a situação, eu editei
FooProject.xcodeproj/project.pbxproj
(com um editor de texto) para alterar meu buildSettings de QAPRODUCT_BUNDLE_IDENTIFIER
paracom.example.foo.qa
Você pode ver as perguntas e respostas técnicas da Apple e esta página para ver como se aprofundam na solução disso. Depois de executar o seguinte em seu aplicativo exportado:
codesign -d --entitlements :- ./Payload/myApp.app
e ver com o que
application-identifier
seu aplicativo foi criado, será muito rápido perceber o que você está fazendo de errado.Não encontrei essa página na minha pesquisa do Google, porque eles não usam a frase da mensagem de erro nem chamam o identificador do aplicativo pelo nome completo, mas sim pelo ID do aplicativo.
Além disso, a solução para esse problema não é gerar um novo perfil de provisionamento que tenha o
application-identifier
direito, ele tem esse direito, no entanto, o valor no perfil de provisionamento e seu aplicativo devem corresponder.fonte
Talvez o arquivo {project} .entitlements esteja faltando. Fazer o que @samkass mencionou irá gerar automaticamente o arquivo e ele funcionará. Então, basicamente, vá para a guia de recursos, habilite qualquer coisa e desabilite.
fonte
Alterar o botão do iCloud para ativar, construir e desativar o iCloud eliminou o erro dizendo que:
fonte
No Xcode 11, isso pode acontecer quando um arquivo .entitlement não está presente para o seu projeto. A solução seria adicionar qualquer recurso aleatório clicando em '+ Recurso' em 'Assinatura e recursos' (que leva à criação de um arquivo .entitlement) e, em seguida, removendo o recurso. Isso permitirá que você provisione automaticamente um certificado também.
fonte
Verifique os recursos do aplicativo que são necessários para seu aplicativo, como compra no aplicativo, notificação push, áudio Inter App, kit Siri etc.
Essa é a única causa para esse tipo de erro.
Certifique-se de que no id do seu aplicativo as sinalizações acima devem estar ativadas.
Na maioria das vezes isso acontece quando você não configurou a notificação push, na compra do aplicativo em seu ID de aplicativo de desenvolvimento.
fonte
Entrei na guia Recursos do alvo, ativei o Compartilhamento de Chaves e começou a funcionar
fonte
Para mim, o truque era
fonte
No Xcode 10, comecei a trabalhar movendo o arquivo de direitos para a pasta correta no Project Navigator. Eu não tinha o arquivo de direitos, mas consegui obtê-lo alternando os recursos na guia capacidades.
fonte
Recebi este mesmo erro e nenhuma das soluções acima resolveu o problema no meu caso.
O que funcionou para mim foi alterar a configuração "Pode ser depurado" no arquivo "Entitlements.plist" de "NÃO" para "SIM".
fonte
No meu caso, o problema era o seguinte: o perfil de provisionamento usado para a etapa de compilação foi criado para um ID de aplicativo diferente do perfil de provisionamento usado para a etapa de exportação.
Portanto, certifique-se de usar o mesmo perfil de provisionamento para a etapa de construção e exportação.
fonte
O que funcionou para mim foi que fiz o arquivo no XCode 11 e fiz o upload para o Xcode 12 beta.
fonte
Faça a verificação cruzada dos recursos do aplicativo com as opções que você habilitou para o ID do aplicativo em sua conta de desenvolvedor.
fonte
Tentei algumas opções listadas nas respostas aqui, mas nenhuma ajudou. No entanto, alternar a caixa de seleção "Gerenciar automaticamente a assinatura" e desligar corrigiu o problema.
fonte
TL; DR: verifique o ID do seu aplicativo e certifique-se de que os serviços correspondem ao que está em seu destino.
O que aconteceu comigo foi que deixei o Xcode 10.1 me ajudar a criar um ID de aplicativo e, depois disso, encontrei o problema descrito aqui. (Eu selecionei o ID do aplicativo whildcard quando criei o aplicativo no iTunesConnect, então nem percebi que isso foi feito.) Quando abri o portal do desenvolvedor iOS, o novo ID do aplicativo tem Game Center e In App Purchase ativados automaticamente.
Como não consegui habilitar o Game Center no seu
Target -> Capabilities
, habilitei In App Purchase e, em seguida, meu aplicativo pôde ser assinado e carregado.fonte
Quando enfrentamos o mesmo problema, tentamos todas as coisas acima, mas nada funcionou.
O que funcionou para nós foi alterar o identificador do pacote para que não fosse idêntico ao anterior, por exemplo "com.name.App" para "com.name.App2"; deixe o xcode tentar buscar / criar o perfil de provisionamento e, em seguida, alterá-lo para o original.
Tive essa ideia a partir deste tópico nos fóruns de desenvolvedores da Apple- https://forums.developer.apple.com/thread/114539
fonte
Eu encontrei esta página recentemente depois de tentar criar um destino duplicado - nenhuma das sugestões estava funcionando para mim. Uma investigação mais aprofundada e um pouco de puxão de cabelo eventualmente me levaram a vasculhar as configurações de compilação do meu aplicativo para tentar descobrir o que estava errado.
Acontece que meu projeto ainda estava apontando para o arquivo de direitos do destino ORIGINAL, ao invés de ter um próprio. Para resolver isso, naveguei até o arquivo de direitos original no Finder (por exemplo, $ {SRCROOT} /MyProject/Entitlements/TargetName.entitlements ), criei uma cópia dentro da mesma pasta e a renomeei (por exemplo, NewTargetName.entitlements).
Em seguida, abri meu novo arquivo de direitos e alterei o campo do identificador do aplicativo para corresponder ao final do identificador de pacote do meu novo destino (por exemplo, ABCDEFGH.US.co.fake-company.superduperapp-newtargetname ).
Por fim, atualizei o campo 'Code Signing Entitlements' nas configurações de compilação para o caminho do meu arquivo de direitos (para mim, era algo próximo a $ {SRCROOT} /MyProject/Entitlements/TargetName.entitlements ).
Voltei para a guia Signing & Capabilities e, eis que o problema foi corrigido. Espero que alguém por aí ache isso útil.
fonte
Vá para a guia Info do Xcode e altere o campo Bundle identifier - depois de alterar o nome do aplicativo, ele não mudou, embora eu tenha alterado o Bundle Identifier na guia General. As correções acima não funcionaram para mim, mas esta funcionou instantaneamente.
fonte
Tive esse problema com um aplicativo totalmente novo, no Xcode 12 beta 3 (os envios de aplicativos começaram hoje ).
O Xcode tinha a opção "Gerenciar automaticamente o login". No entanto, a ID da equipe exibida no "Certificado de assinatura" não correspondia à ID da equipe exibida no site iTunes Connect. Essa era a causa raiz que impedia o upload do aplicativo.
Como eu consertei:
fonte
Encontrei o mesmo problema ao configurar um pipeline Gitlab que executa exportArchive cmd e carrega para AppStore. Consegui fazê-lo funcionar alterando o DEVELOPMENT_TEAM em Build Settings para a mesma equipe selecionada em Signing & Certs.
Porque anteriormente estava definido como em branco que estava usando outro id DEV TEAM por padrão que estava incorreto e não correspondia e estava reclamando do "identificador do aplicativo" = 12331232.com.bannana.apples.peach não corresponder. O que me levou a definir o DEV TEAM correto e funcionou.
Xcode ver: Versão 11.3.1
Espero que isso ajude alguém.
fonte
Nossa configuração
Múltiplos alvos:
... e use o iCloud.
Ligar e desligar o iCloud não era uma opção para nós. Já a usamos na produção e preferimos não mexer com ela ... Recebi a mensagem da pergunta original e esta variação em algum momento também:
Solução
Com base em outras respostas aqui, garantimos que todos os destinos teriam um
.entitlements
arquivo. Se o alvo não tivesse nenhum, criamos um vazio como:<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict/> </plist>
... e apontou-alvo
Code Signing Entitlement
emBuild Settings
que o vazio.entitlements
arquivo.Resolvido!
fonte
Exclua todos os perfis localizados em
~/Library/MobileDevice/Provisioning Profiles/
fonte
Estou desenvolvendo um aplicativo Flutter com Flavors que usa o comando --dart-define. Fiquei muito inspirado por este ótimo artigo .
No entanto, encontrei esse problema de 'identificador de aplicativo' durante a implantação. Eu tentei muitas opções. Esta solução é a que funcionou para mim. É muito parecido com o comentário de @ n8tr , mas a diferença era o 'ao invés'.
Para retomar, basta definir o Identificador do Pacote de Produtos como
your.id.here$(DEFINEEXAMPLE_APP_SUFFIX)
Embalagem nas Configurações de Compilação em vez de em Info.plist.fonte