Recebo um erro conflitante nas configurações de aprovisionamento quando tento arquivar para enviar um aplicativo iOS

312

Agora estou tentando Produto> Arquivar meu aplicativo iOS para enviar. No entanto, estou recebendo os seguintes erros:

AppName tem configurações conflitantes de provisionamento. AppName é assinado automaticamente para desenvolvimento, mas uma identidade de assinatura de código conflitante do iPhone Distribution foi especificada manualmente. Defina o valor da identidade de assinatura de código como iPhone Developerno editor de configurações de compilação ou alterne para assinatura manual no editor de projeto.`

A assinatura de código é necessária para o tipo de produto 'Aplicativo' no SDK 'iOS 10.1' '

A situação não vai mudar mesmo aqueles em que eu repito todo o processo para recriar certificados iOS ou perfil de provisionamento.

Eu estava assentado como iOS Distributionem TARGETS > Code Signing Identity > Release > Any iOS SDK. Quando alterei a configuração como iOS Developeraqui e alterei a configuração PROJECTS > Code Signing Identity > Release > Any iOS SDKcomo iOS Distribution, consegui arquivar. Gostaria de saber se é necessário definir como iOS Distributionno editor de destino ou não. E, se for obrigatório, informe-me de como posso solucionar esse erro.

Minha versão do XCode é 8.1.

vanagar
fonte
4
Você precisa garantir que as configurações de assinatura de código não entrem em conflito entre o projeto e o destino.
max_ 27/11
1
Acho que tentei todas as combinações de configurações de assinatura de código entre o projeto e o destino. Meu problema está em qualquer configuração, não consigo obter êxito quando defino como iOS Distributionno editor Target, e estou me perguntando se é necessário.
vanagar
1
@BenLeggiero Consulte também stackoverflow.com/a/52573190/341994 . Existe uma maneira manual de limpar, como explico lá.
Matt
Obrigado pelo ponteiro, @matt! Isso não se aplica diretamente ao problema em que eu estava trabalhando, pois estamos criando um aplicativo para Mac e não usamos integrações como o Game Center. Será um favorito para mais tarde, no entanto!
Ben Leggiero

Respostas:

897

Eu tive o mesmo erro, mas já havia marcado "Gerenciar assinatura automaticamente".

A solução foi desmarcá-la, depois verificar novamente e selecionar novamente a equipe. O Xcode corrigiu o que estava causando o problema por conta própria.

Erin Geyer
fonte
15
Obrigado! Isso funcionou para mim, para quem está usando o cordova para gerar uma plataforma ios eu estava recebendo esse erro, mesmo usando a versão mais recente do cordova. a assinatura automática foi marcada por padrão, mas nenhuma equipe foi selecionada. foi somente quando cancelei a seleção de gerenciar assinatura e selecionei a assinatura automática e a equipe conseguiu fazer com que isso funcionasse. obrigado Erin!
Jtello
2
Quando o verifico novamente, a assinatura de código define automaticamente o iOs Developer, mas preciso configurá-lo com o iOs Distribution e, quando o configuramos, o icode Distribution XO através da mesma exceção novamente como mencionado acima.
ami ta
1
@ amirt Eu tenho exatamente o mesmo problema que o seu. Você consertou?
Kimi Chiu
@KimiChiu Sim irmão eu fiz.
ami rt
2
Isso está certo, mas para esclarecer um pouco mais, eis o que eu experimentei: - Você deve criar manualmente um Perfil de provisionamento de distribuição (via site do desenvolvedor da Apple) com antecedência. A assinatura automática não faz isso por você. - No caso das identidades de aprovação de código em configurações de compilação de alguma forma foram asneira: todos os 4 deles têm de ser definido como "iOS desenvolvedores" (mesmo os de Release) para a assinatura automática para o trabalho
jakob.j
153

Tive o mesmo problema, notei que, se você quiser fazer um lançamento do seu aplicativo iOs e publicá-lo na App Store, não precisará colocar a "Identidade de assinatura de código" como lançamento, apenas mantenha-o como desenvolvedor de iOs.

Vá para Seu projeto -> Configurações de compilação -> Identidade de assinatura de código e coloque tudo no desenvolvedor do iOs.

insira a descrição da imagem aqui

Máquina conduzida
fonte
3
Sim, isso funciona. Mas para compilações ad hoc, tenho que desativar a assinatura automática e ir até lá e definir "Distribuição do iOS". Por que a Apple implementou dessa maneira? Não faz nenhum sentido :(
algrid 5/0918
é a melhor resposta. O xcode reescreverá a configuração no local quando "arquivar".
Tom Marvolo Riddle
consulte o "Revisar o conteúdo xxx.ipa:" exibido após o arquivamento, é "Certificado: Distribuição do iOS".
Tom Marvolo Riddle
Essa deve ser a resposta correta. A solução aceita para esta pergunta está parcialmente correta.
Sanchit Kumar Singh
72

Para quem vem de Ionic ou Cordova, tente o seguinte:

Abra o arquivo yourproject/platforms/ios/cordova/build-release.xcconfige mude a partir disso:

CODE_SIGN_IDENTITY = iPhone Distribution
CODE_SIGN_IDENTITY[sdk=iphoneos*] = iPhone Distribution

nisso:

CODE_SIGN_IDENTITY = iPhone Developer
CODE_SIGN_IDENTITY[sdk=iphoneos*] = iPhone Developer

e tente executar ios cordova build ios --releasenovamente para compilar uma versão compilada.

Referência: https://forum.ionicframework.com/t/ios-build-release-error-is-automatically-signed-for-development-but-a-conflicting-code-signing-identity-iphone-distribution-has- foi especificado manualmente / 100633/7

Charlie Ang
fonte
3
Depois de tentar todas as outras respostas, essa foi a que finalmente conseguiu funcionar para mim. Obrigado!
Mikewagz
1
O arquivo agora é chamado de build-release.xcconfig . Você perdeu um 'c' Aqui está um script bash para fazer isso: `` `# # / usr / bin / env bash sed -i" "" s / Plataforma de distribuição do iPhone / iPhone Developer / iPhone Developer / g "/ ios / cordova / build-release.xcconfig saída 0; `` ``
Kent Bull
3
Você também pode apenas comentar as linhas; Se a configuração de desenvolvedor do iPhone estiver definida build.xcconfig, essas linhas simplesmente a substituem.
Jules
3
Eu simplesmente apaguei essas duas linhas e deixei o Xcode gerenciar automaticamente a assinatura.
Ryan H.
3
Você pode usar o plug-in cordova-custom-config para fazer isso automaticamente com as seguintes linhas em config.xml: <preferência-personalizada buildType = "release" name = "ios-XCBuildConfiguration-CODE_SIGN_IDENTITY" value = "iPhone Developer" xcconfigEnforce = " true "/> <preferência personalizada buildType =" release "name =" ios-XCBuildConfiguration-CODE_SIGN_IDENTITY [sdk = iphoneos *] "value =" Desenvolvedor de iPhone "xcconfigEnforce =" true "/>
FactualHarmony em
64

Você está pensando demais nisso. O processo é bastante aprimorado e extremamente fácil no Xcode 8. Aproveite esse fato.

Etapa 1 : Não tente, de forma alguma, definir as configurações de assinatura de código nas configurações de compilação. Não chegue perto deles. Você vai estragar tudo. Em vez disso, edite o destino e faça todo o trabalho no painel Geral. Melhor abordagem: prepare-se para a assinatura automática de código - basta inserir sua equipe e marcar a caixa de seleção, assim:

insira a descrição da imagem aqui

Etapa 2 : verifique se você possui uma identidade de distribuição do iOS (certificado). Você pode verificar isso em Preferências do Xcode> Contas, Exibir detalhes. Também seria uma boa ideia, nesse momento, ir ao centro de membros e obter uma provisão móvel da App Store para esse aplicativo, além de fazer o download e instalá-lo.

Etapa 3 : escolha "Dispositivo iOS genérico" como seu destino e escolha Produto> Arquivar. O aplicativo será compilado, o arquivo morto será criado e você estará pronto para enviar para a App Store.

mate
fonte
Muito obrigado! Foi bem sucedido. Deixe-me confirmar sobre a Etapa 2: carregando a "provisão móvel". Isso é "Perfis de provisionamento do iOS (distribuição)"? Apenas cliquei duas vezes no arquivo baixado e essa é a instalação que você mencionou aqui?
vanagar
Sim, exatamente. O arquivo baixado agora foi copiado no mundo do Xcode (você pode jogar fora o original) e será visto pelo Xcode quando você realmente enviar para a App Store.
Matt
Pode ser que, em determinadas circunstâncias, você não precise criar o arquivo de provisão móvel da App Store, porque o Xcode o criará automaticamente para você. Mas acho que é uma boa ideia fazer uma de qualquer maneira.
Matt
2
É engraçado que todos os tutoriais de implantação que vi dizem para você alterar manualmente as configurações de assinatura de código em cada destino. Eu tinha o Gerenciamento automático ativado, mas nem percebi.
Dan
1
@andreszs A assinatura automática faz um bom trabalho ao criar um certificado e perfil de desenvolvimento, que é tudo o que você precisa para desenvolver e arquivar. Mas quando chega a hora de distribuir para a loja de aplicativos, acho uma boa ideia criar o perfil de distribuição manualmente e fazer o download, pronto para uso durante o processo de exportação.
matt
52

Se você receber este erro

O aplicativo tem configurações conflitantes de provisionamento. O aplicativo é assinado automaticamente, mas o perfil de provisionamento 'ID' foi especificado manualmente. Defina o valor do perfil de aprovisionamento como "Automático" no editor de configurações de compilação ou alterne para assinatura manual no editor de projetos.

em seguida, certifique-se de que você tem vazio PROVISIONING_PROFILE opção no alvo Envergadura Configurações :

insira a descrição da imagem aqui

atereshkov
fonte
1
Eu não distinguir entre o perfil do usuário e sistema de construção ... então obrigado por apontar que era "PROVISIONING_PROFILE"
petrosmm
Isso me ajudou.
Rafal Zawadzki
Este foi o erro que eu procurei e obtive o link para esta pergunta SO, mas esta é a resposta que eu precisava. Observe que tentar especificar um valor "Automático" não funciona. Você NÃO precisa especificar tudo, apesar da mensagem de erro dizer o contrário. Para mim, estamos usando arquivos xcconfig, então foi uma questão de remover a configuração no arquivo de configuração.
user107172
29

Não se esqueça de fazer isso,

Selecione o projeto -> configurações de compilação. Pesquise PROVISIONING_PROFILE e exclua qualquer bobagem que esteja lá.

Rein rPavi
fonte
1
Provavelmente, a única solução que fez isso por mim, graças
Alexander Vitanov
4
Fiz isso, em conjunto com a desmarcação e a verificação automática da assinatura Gerenciar automaticamente na guia Geral e, em seguida, re-selecionando a equipe. Obrigado Rein e Erin. (Hey olhar para isso, seus nomes são anagramas!)
Dave Levy
Bem, isso é interessante @DaveLevy
Rein rPavi 15/03/19
Não dei tanto crédito porque meu PROVISIONING_PROFILE não parecia conter lixo, tinha o conjunto "Automático" e parecia bem. Excluí-lo e reativar a assinatura automática fizeram o truque!
Rafael Nobre
1
Está definido como "Automático" e não pode ser excluído.
Dror Bar
22

Se você é do mundo jônico. Você pode receber um erro "assinatura de código de conflito" quando estiver no estágio "arquivamento", conforme abaixo:

... é automaticamente assinado para desenvolvimento, mas uma identidade de assinatura de código conflitante do iPhone Distribution foi especificada manualmente. Defina o valor da identidade de assinatura de código como "iPhone Developer" no editor de configurações de compilação ou alterne para assinatura manual no editor de projeto. A assinatura de código é necessária para o tipo de produto 'Aplicativo' no SDK 'iOS 10.x'

Nesse caso, acesse Configurações da compilação / em assinatura, identidade de assinatura de código e selecione ambos como desenvolvedor iOS, não distribuição.

Vá para o menu: Produto / arquivo novamente, o problema será corrigido.

George Huang
fonte
2
O problema é que ela é redefinida a cada compilação ... Isso está atrapalhando nossas compilações automatizadas. Alguma idéia de como mudar isso em um script não interativo?
Webberig 12/07/19
1
Excelente, isso resolveu o problema para mim. Esta solução faz todo o sentido, em retrospectiva e com muito consumo de álcool.
Steven Kramer
18

Para quem vem da Ionic ou Cordova, tente o seguinte: Desconecte os dispositivos ios do computador antes ios cordova build ios --release(parece alterar o dispositivo de destino para a assinatura do xcode).

Petru
fonte
6
Esta é a resposta mais idiota e funciona completamente. Eu odeio todas as soluções alternativas que temos a ver com o Xcode para que um aplicativo funcione.
Jordan Benge
isto está certo. Quando eu tinha meu iPad conectado em vez de meu iPhone, recebo este erro. Depois de desconectar todos os dispositivos iOS e construí-los na linha de comando, funcionou bem depois disso.
Neel
Absolutamente certo. Estive um dia inteiro tentando resolver esse problema e esta é a única solução que funciona para mim.
ulisesvera
1
IOS me fazer raiva .. tudo tem que ser resolvido através de um jiggle .... caso contrário, graças cara
Seloka
15

Vá para criar configurações, procure a identidade de assinatura de código e defina qualquer valor do SDK do iOS para iOS Developer:

insira a descrição da imagem aqui

catanore
fonte
4
Sim, é exatamente isso que a mensagem de erro pede para fazer. Mas você poderia explicar por que diabos usar o "iOS Developer" para compilações de versões faria algum sentido?
algrid 5/09/19
estranhamente, isso foi o que funcionou bem para o projeto gerado por unidade de um tempo atrás
ina
15

A única solução funcionou para mim:

  1. Fechar projeto Xcode
  2. Usando o finder, vá para a pasta do projeto
  3. Clique com o botão direito do mouse em .xcodeproj e escolha "Mostrar conteúdo do pacote"
  4. Clique com o botão direito do mouse em project.pbxproj, vá em "Abrir com" e escolha TextEdit
  5. Agora, procure o instanceId do perfil de provisionamento especificado na mensagem de erro.
  6. Exclua todos os textos encontrados e deixe os Perfis de provisionamento limpos.
  7. Salvar fechar
  8. Abrir Xcode
  9. Ativar gerenciar automaticamente a assinatura

Aproveitar! Espero que seja util!

Gaby Fitcal
fonte
Eu sabia que haveria algum problema com o Xcode. Graças a tonelada cara !!!! Ele estava sendo exibido automaticamente na Configuração de Compilação para o Perfil de Provisão, mas ainda estava dando esse erro. Graças a Deus eu não fui o único com o problema.
Amber K
Na verdade, ele pode ser usado se você tiver uma conta de desenvolvedor e um aplicativo, mas para muitos aplicativos, isso causa outros problemas.
goraga1
9

Para mim, mude Code Signing Identitypara todos iOS Developerpor ambos Debuge Release.

E Code Signing Stylepara Automatic.

insira a descrição da imagem aqui

Tai Le
fonte
8

No meu caso, defino a opção "automática" em Configurações de compilação.

insira a descrição da imagem aqui

Emre Gürses
fonte
7

Tente um dos seguintes

1.Removendo e adicionando a plataforma ios e reconstrua o projeto para ios

ionic cordova platform rm ios
ionic cordova platform add ios
ionic cordova build ios --release

2.Alterando a configuração de compilação do Xcode

A solução foi desmarcá-la, depois verificar novamente e selecionar novamente a equipe. O Xcode corrigiu o que estava causando o problema por conta própria.

3.Altere o seguinte código na plataforma

Isso não fazia sentido para mim, pois eu havia definido o projeto para entrar automaticamente no xcode. Como você, a verificação e desmarcação não funcionaram. Mas então eu li o último caminho do arquivo fornecido e o segui. O caminho do arquivo é APP> Plataformas> ios> Cordova> build-release.xconfig

E no arquivo, a Distribuição do iPhone está definida explicitamente para CODE_SIGN_IDENTITY.

Mudança:

CODE_SIGN_IDENTITY = iPhone Distribution
CODE_SIGN_IDENTITY[sdk=iphoneos*] = iPhone Distribution

Para:

CODE_SIGN_IDENTITY = iPhone Developer
CODE_SIGN_IDENTITY[sdk=iphoneos*] = iPhone Developer
manish kumar
fonte
7

Eu estava lutando muito tempo, tentei todas as soluções propostas. Nada funciona para mim.

Aí encontrei o problema: havia "Configurações definidas pelo usuário" para "PROVISIONING_PROFILE" no final da guia Configurações de compilação. Eu o excluo para as configurações de compilação Projeto e Destino. Então a assinatura automática funcionou perfeitamente.

Espero que isso ajude outra pessoa. :)

Ahmad.Net
fonte
6

Encontre o arquivo .xcodeproj e abra-o com um editor de texto

Encontre os campos abaixo e faça-os assim

CODE_SIGN_IDENTITY = "Desenvolvedor do iPhone"; "CODE_SIGN_IDENTITY [sdk = iphoneos *]" = "Desenvolvedor do iPhone";

PROVISIONING_PROFILE = "";

PROVISIONING_PROFILE_SPECIFIER = "";

codaman
fonte
6
  1. Geral -> Assinatura -> marque gerenciar automaticamente a assinatura e selecione a equipe

  2. Configurações de compilação -> Assinatura -> Identidade de assinatura de código -> SET ALL TO "IOS developer"

Nagibaba
fonte
4

A única coisa funcionou para mim.

Abra o projeto -> selecione seu destino -> vá para Configurações de compilação -> Pesquisa PROVISIONING e exclua os perfis selecionados.

aqsa arshad
fonte
2

No meu caso, tive que fazer login no site do desenvolvedor da Apple e redefinir a lista de dispositivos.

Parece que agora eles exigem que você faça isso todos os anos quando a assinatura é renovada, antes de poder adicionar novos dispositivos e gerar certificados.

Voar
fonte
2

Eu tive o mesmo problema O meu foi corrigido pesquisando "perfil de provisionamento" na configuração de compilação da extensão de compartilhamento

Havia dois campos "Perfil de provisionamento" lá, um regular e outro obsoleto. O normal estava no automático, mas o obsoleto não estava. Alterar esse para Automático também corrigiu meu erro.

Mohsen Hossein pour
fonte
2

Para mim, eu havia arrastado o dump_symsbinário e vários scripts para o meu destino de construção quando instalei manualmente o Firebase SDK. Removendo aqueles do meu destino e projeto resolveu o problema.

Arman
fonte
Irreal, obrigado por apontar para a direção certa. Mais informações aqui: stackoverflow.com/questions/41056047/…
Dror Bar
2

Usando o Xcode 10: Nenhuma das outras soluções aqui funcionou para mim.

Este erro parece ser algo que você não pode corrigir no Xcode 10

Eu tive que reverter para o Xcode 9 para resolver esse problema e, em seguida, atualizar novamente para o Xcode 10 para poder executar meu aplicativo no iOS 12 em um dispositivo não emulador.

Qualquer outra solução encontrada no Stack Overflow ou em outro lugar, usada no Xcode 10, me levou a um ciclo interminável de conflitos de provisionamento ou assinatura de problemas de certificado. Parece que a assinatura está quebrada no Xcode 10, esteja você usando o método automático ou selecionando manualmente perfis e certificados de provisionamento.

Você pode reverter para o Xcode 9 excluindo primeiro o Xcode 10 da sua pasta Aplicativos. Em seguida, instale o Xcode 9 usando o arquivo .xip listado nesta página de desenvolvedores da Apple .

No Xcode 9, use a opção de compilação automática. Pode ser necessário desmarcar a opção 'Gerenciar assinatura automaticamente' e selecioná-la novamente, além de ser necessário revogar um certificado existente em developer.apple.com .

Depois que o aplicativo for compilado com sucesso no Xcode 9, você poderá atualizar novamente para o Xcode 10 usando a App Store. Depois de reabrir o aplicativo no Xcode 10, tudo ainda funcionou. Talvez você não precise fazer isso, mas eu precisava fazer isso para criar o iOS 12, que requer o Xcode 10.

Mark Lyons
fonte
Tente adicionar a flag --buildFlag = "- UseModernBuildSystem = 0"
Redwolf 29/11
2

Abri o arquivo do projeto em um editor de texto "Atom", procurei o ID do perfil de provisionamento e o excluí.

Khaled Annajar
fonte
0

Altere seu login de código para certificado de destruição.

Zahirul Islam
fonte
Obrigado, mas tentei várias vezes nos últimos três dias e falhei todas as vezes.
vanagar
0

Após atualizar para o Xcode 8.3.2, tive o mesmo erro em um projeto do Cordova. Eu precisava atualizar o Cordova (v7.0.0) e a plataforma iOS (v4.4.0) para que a assinatura de código funcionasse.

H. Evers
fonte
0

Você precisa adicionar um certificado de produção e (ou) fazer o download de um certificado de desenvolvimento

insira a descrição da imagem aqui

William Wong Garay
fonte
0

Verifique se o "Identificador do pacote do produto" no nome das configurações de compilação corresponde ao identificador do pacote real. Isso funcionou para mim.

Saurabh
fonte
0

Para mim, preciso mudar de automático para manual e para automático, mesmo erro. Alterne para manual e altere os perfis de provisionamento e as configurações de assinatura de código, crie e obtenha erros e volte para automático, para obter sucesso.

zgjie
fonte
0

Eu tive esse mesmo problema. Percebi que era porque eu estava usando o xcode enquanto estava usando. Como as atualizações não foram instaladas corretamente, esses erros foram exibidos. A única coisa que o corrigiu foi sair do xcode e reabri-lo. Quando o reabri, ele me levou a instalar atualizações. Após a instalação das atualizações, os erros desapareceram.

Jane Z.
fonte
0

O problema está nas configurações do Cordova.

Observe o seguinte:

iPhone Distribution has been manually specified

Isso não fazia sentido para mim, pois eu havia definido o projeto para entrar automaticamente no xcode. Como você, a verificação e desmarcação não funcionaram. Mas então eu li o último caminho do arquivo fornecido e o segui. O caminho do arquivo éAPP > Platforms > ios > Cordova > build-release.xconfig

E no arquivo, a distribuição do iPhone é explicitamente definida para CODE_SIGN_IDENTITY .

Mudança:

CODE_SIGN_IDENTITY = iPhone Distribution
CODE_SIGN_IDENTITY[sdk=iphoneos*] = iPhone Distribution

Para:

CODE_SIGN_IDENTITY = iPhone Developer
CODE_SIGN_IDENTITY[sdk=iphoneos*] = iPhone Developer

É uma coisa simples, e a mensagem de erro deixa claro que a Distribuição do iPhone foi especificada manualmente, mas na verdade não diz onde, a menos que você siga o caminho. Eu olhei e brinquei com o xcode por cerca de três horas tentando descobrir isso. Espera que isso ajude qualquer pessoa no futuro.

Daniel Muñoz
fonte