Xcode: falha ao obter a tarefa para o processo

242

Isso é para um aplicativo existente que compilou e distribuiu várias vezes. Desde a atualização para o Xcode 5, tenho esse erro aparecendo.

  1. Meu perfil de desenvolvedor foi selecionado na assinatura de código para depuração.
  2. Excluiu os dados derivados algumas vezes.
  3. Saia algumas vezes
  4. Baixei e tentei adicionar novamente meus certificados de desenvolvedor.
  5. Redefinir meu computador! E atualizações verificadas
  6. Tentei usar magia negra!
  7. O esquema> configuração de compilação está definido como depuração

As circunstâncias estranhas que estou compilando para compilar no iOS 6.1 para que eu possa executar no meu iPhone 3GS - a base é o SDK iOS 7? Isso poderia ser um problema? Eu só preciso testá-lo antes de encontrar um telefone mais recente para antes de alterá-lo para o iOS 7.

elliotrock
fonte
2
Verifique seu esquema para garantir que você esteja realmente executando no modo de depuração.
borrrden
Eu esqueci de mencionar o Esquema> Build Configuração está definido como Debug
elliotrock
Também estou recebendo esse problema. No Xcode 4.x, não há problemas. Todas as configurações parecem iguais. Os símbolos de depuração não devem ser removidos em "debug" e o esquema executa "debug" para "Run". Este é o meu único código que tem esse problema. Estou usando notificações push e chaveiros compartilhados neste código.
DBD 23/09
Estou indo para reconstruir o projeto em xcode5 apenas classificando coisas repo
elliotrock

Respostas:

490

Esse erro tende a aparecer quando você escolhe um perfil de provisionamento ad-hoc. Verifique se sua assinatura de código é para desenvolvimento.

hasan
fonte
2
Sugiro que você crie um novo perfil de provisionamento no centro de desenvolvimento que inclua seu dispositivo. faça o download e use-o. Tenho certeza de que funcionará.
Hasan
7
Configurações de compilação> Perfil de provisionamento definido como 'Nenhum' funciona para depuração no dispositivo.
David Douglas
7
a propósito, verifique se isso é feito nas configurações de construção do Projeto e do Destino (especialmente o Destino tem a maior prioridade, por isso, se você gosta de mim, gaste 30 minutos mudando o Projeto e não percebeu que o Destino era diferente, aprenda isso ...)
viggio24
1
Com o XCode 6, tive que atualizar meus perfis de provisionamento com a conta de desenvolvedor para poder ver o perfil de provisionamento de equipe do iOS em Configurações de compilação. Para atualizar: XCode> Preferências> Contas> IDs da Apple> Exibir detalhes> botão Atualizar na parte inferior.
Kalana
1
Algumas vezes, essa solução não funcionará se você não reiniciar o xcode. @ hasan83 isso ainda está acontecendo #
albanx #
90

Este erro ocorre se você tiver usado um perfil de provisionamento de distribuição para depurar no dispositivo.

Vá para

Build Settings> Provisioning Profilee set to 'None' for Debugging.

David Douglas
fonte
2
Esta é a resposta certa para a maioria das pessoas, eu acho.
John
39

Finalmente resolvi isso lembrando-me de definir parâmetros de assinatura e provisionamento de código em AMBAS as guias de projeto e destino ...

EU SOU T
fonte
6
Sim. Foi isso. Mais 30 minutos desperdiçados graças à interface de usuário completamente idiota do Xcode. Obrigado pela salvaguarda lá!
n13 25/03
Isso me salva! Muito obrigado!
Evgeniy Kleban
31

Quando o dispositivo está conectado ao seu computador com um cabo e você Build + Execute seu aplicativo, ele tentará depurar. A depuração é permitida apenas para perfis de desenvolvimento.

  1. Se você criar + executar com um perfil de desenvolvimento + código de assinatura de desenvolvimento, tudo ficará bem

  2. Se você criar + executar com um perfil de distribuição da AppStore + código de assinatura de distribuição, o aplicativo nem chegará ao seu dispositivo. Esta compilação é apenas para upload na AppStore

  3. Se você criar + executar com um perfil de distribuição AdHoc + código de assinatura de distribuição, receberá o erro "falha ao executar a tarefa para o processo ...", mas o aplicativo será instalado no seu dispositivo. Desconecte o dispositivo e execute o aplicativo. Está sendo executado no ambiente de distribuição. Aproveitar :)

Alex Christodoulou
fonte
14

ATUALIZAR:

O Xcode 5.1 parece corrigir o menu suspenso, para que agora mostre um "(blá blá)" sempre que dois perfis tiverem o mesmo nome. Isso permite que você escolha o correto. O que é muito melhor :)


Mordido por isso algumas vezes. O Xcode5 mostra "Perfil de provisionamento" como um único campo, QUE SEMPRE ESTÁ INCORRETO e a Apple NÃO DEVE codificar sua GUI dessa maneira (erro de iniciante na Apple).

No Xcode5 (sem versão anterior), você tem dois valores de "Perfil de provisionamento". DEVE SER DEFINIDO ANTES de definir sua "Identidade de assinatura de código". Obviamente, uma vez que deve ser definido PRIMEIRO ... A Apple o colocou em SEGUNDO na lista, 3 itens ABAIXO do que deve ser definido "antes".

(pontos de bônus pelo terrível design da GUI lá ...)

Também está quebrado: se você tiver dois perfis de provisionamento com o mesmo nome, o Xcode5 permitirá apenas que você selecione um deles. Para contornar isso, é necessário usar o Utilitário de configuração do iPhone para encontrar o perfil desejado, encontrar o "Identificador de perfil" de 30 dígitos e copiá-lo / colá-lo no valor "Outro" do menu suspenso Perfil de provisionamento.

Seu perfil de provisionamento DEVE ter um valor para "Depurar" e um valor diferente para "Liberar" (a menos que você crie um mega-perfil personalizado à mão, a Apple mantém os dois separados).

O perfil de depuração geralmente possui o bug com o mesmo nome descrito acima - a maioria das pessoas usa o Team Provisioning Profile da Apple, que a Apple sempre nomeia incorretamente sempre o mesmo para todos os destinos em todos os projetos. (outro bug no Xcode5).

Depois de definir os dois valores, o campo "Identidade da assinatura de código" finalmente começará a funcionar corretamente. De fato, funciona bem: na maioria das versões anteriores do Xcode, esse campo estava quebrado e a seleção "automática" raramente funcionava. No Xcode5, ele pode usar SOMENTE os valores de assinatura de código encontrados no perfil de provisionamento pré-selecionado - e, portanto, parece corrigi-lo 100% do tempo.

(ou seja, você pode defini-lo com segurança como "Automático". Nas versões anteriores do Xcode, o Xcode costumava "Automaticamente" usar um perfil de Distribuição para uma compilação de Desenvolvedor e vice-versa, causando muitos problemas)

Adão
fonte
NB usando a v7.3 do Xcode e, às vezes, ainda escolhe o perfil de provisionamento errado quando definido como 'Automático', resultando nesse erro.
Ash
12

Com base na minha pesquisa atual, o erro "Falha ao obter a tarefa para o processo" no xcode 5 pode ocorrer por vários motivos:

  1. Uma é que estamos depurando um aplicativo que é assinado com o perfil de provisão ad-hoc de distribuição.
  2. Outro motivo é que, de alguma forma, o xcode5 não conseguiu encontrar o perfil correto de provisão de desenvolvimento, embora a identidade de assinatura de codificação possua a identidade de assinatura do desenvolvedor.

Para mim, é o segundo caso que parece ser o caso também para esta questão.

Eu sou capaz de corrigir isso alterando o menu suspenso de perfil de provisão de depuração para o perfil de provisão de desenvolvimento correto e, em seguida, tentando carregar o aplicativo no dispositivo real. O Xcode daria este erro abaixo: insira a descrição da imagem aqui

clique em "Corrigir problema" para continuar, o xcode 5 corrige o problema. Depois que o problema é corrigido, o perfil de provisionamento para depuração é redefinido para "Nenhum" novamente, sem saber por que o xcode faria isso.

windfly2006
fonte
Estou ficando paralisado aqui - clicar em 'Corrigir problema' levará cerca de 15 segundos para conversar com o servidor e criar o aplicativo, imediatamente seguido pelo mesmo prompt para corrigir o problema.
26414 Chris
não sei por que é assim no seu caso, tentei a mesma coisa alguns dias atrás, funcionou novamente.
windfly2006
+1 para: Depurando um aplicativo assinado com o perfil de provisão ad-hoc de distribuição. Esse era o meu problema.
John Erck
4

Eu tive esses problemas e, como defini CODE_SIGN_IDENTITY e PROVISIONING_PROFILE , tudo funciona bem,

Observe que isso mudou no Xcode 5, a versão anterior não tinha entrada para PROVISIONING_PROFILE nas configurações de compilação

//:configuration = Adhoc
CODE_SIGN_IDENTITY = iPhone Distribution: orgname
CODE_SIGN_IDENTITY[sdk=iphoneos*] = iPhone Distribution: orgname

Observe que aqui eu tive que escrever manualmente o desenvolvedor do iphone na segunda entrada, pois a seleção automática não parecia funcionar

//:configuration = Debug
CODE_SIGN_IDENTITY = iPhone Developer: Joe Bloggs (0A0AA00A00)
CODE_SIGN_IDENTITY[sdk=iphoneos*] = iPhone Developer: Joe Bloggs (0A0AA00A00)

//:configuration = Release
CODE_SIGN_IDENTITY = iPhone Distribution: orgname
CODE_SIGN_IDENTITY[sdk=iphoneos*] = iPhone Distribution: orgname

Em seguida, atualize e as configurações do perfil de provisionamento

adicione seu ID de perfil 0000 é apenas para privacidade

//:configuration = Adhoc 
PROVISIONING_PROFILE = 11111111-1111-1111-1111-111111111111
PROVISIONING_PROFILE[sdk=iphoneos*] = 11111111-1111-1111-1111-111111111111

//:configuration = Debug
PROVISIONING_PROFILE = 00000000-0000-0000-0000-000000000000
PROVISIONING_PROFILE[sdk=iphoneos*] = 00000000-0000-0000-0000-000000000000

//:configuration = Release
PROVISIONING_PROFILE = 22222222-2222-2222-2222-222222222222
PROVISIONING_PROFILE[sdk=iphoneos*] = 22222222-2222-2222-2222-222222222222
Kodejack
fonte
4

Tente reiniciar o XCode

Depois de definir as configurações de aprovisionamento e assinatura de código de todas essas sugestões, finalmente foi o reinício que foi executado com o provisionamento definido como nenhum e a assinatura de código definida como iOS Developer (Automatic)

Frank Yin
fonte
4

Pode ser fornecido por perfis de provisionamento. No meu caso, tentei executar o aplicativo no meu telefone e o perfil de provisionamento foi definido como perfil adhoc (XC Ad Hoc), daí o erro. Preciso alterá-lo para o perfil da equipe do iOS gerenciado pelo xcode (para evitar o trabalho manual no centro de desenvolvimento).

superarts.org
fonte
3

na verdade, é o seu perfil de provisionamento --Debug está incorreto。

Steven Li
fonte
2

A resposta de hasan83 funcionou para mim. O provisionamento adhoc estava fornecendo esse erro e meu dispositivo também não foi incluído nesse arquivo de provisionamento. Defino automático para provisionamento e construí. O Xcode solicitou a correção do problema e, assim, corrigiu o problema baixando e configurando o arquivo de provisionamento do desenvolvedor.

zeeawan
fonte
2

No meu caso, é porque o esquema selecionado Run actionaponta para outro Target, cujo Code Signing Identityestá definido comoiPhone Ditributor

onmyway133
fonte
Que mensagem de erro terrivelmente não descritiva para um problema simples. Economizei muito tempo, obrigado.
jungledev
1

Não aceitei as respostas acima, pois havia uma cadeia de problemas que precisava resolver:

  1. SDK de terceiros não definido como uma distribuição.
  2. O SDK de terceiros não foi definido para arm64, o que acho que causou em vão para corrigir o problema compilado para arm64.
  3. Precisava concluir a limpeza de todos os certificados antigos e adicionar novos da Apple. Coisa boa a fazer.
  4. O Xcode 5 oculta agora as certs e os perfis nas preferências, o que acrescentou frustrações.
  5. Em seguida, verifique se os perfis de provisão corretos estão selecionados nas configurações de depuração e liberação nas configurações de compilação.

Como sempre, obrigado pela ajuda dos povos.

elliotrock
fonte
1

Então, depois de testar todas essas opções, o que eu acho correto é que agora você precisa criar um perfil de provisionamento para o desenvolvimento, não apenas a distribuição. vá para o painel de preferências e, nos perfis de aprovisionamento, clique em criar novo, selecione desenvolvimento e, em seguida, vá para criar configurações e defina a assinatura como automática (isso selecionará o aprovisionamento correto).

Eu esperava que a Apple fosse mais informativa quando faz alterações como esse padrão

Felicidades,

G.

samiq
fonte
1

Graças a toda a ajuda nas outras respostas, resolvi assim:

  • Projeto novo e vazio criado
  • Funcionou no dispositivo - funcionou bem
  • No projeto antigo, abra a guia "Projeto, destinos".
  • No Projeto, defina Todas as propriedades de assinatura de código como iguais ao novo projeto vazio (todas desativadas no meu caso)
  • Em Destino, faça o mesmo para o seu destino.

Neste ponto, é difícil dizer qual configuração é para qual modo de operação, então comecei de um projeto em que tudo funciona.

n13
fonte
1

Apenas teve o mesmo problema - o aplicativo estava sendo instalado OK, mas não será executado no Xcode com o "processo de inicialização falhou: falha ao obter a tarefa para o processo".

Acontece que meu certificado de desenvolvimento expirou durante a noite. A regeneração do certificado e dos perfis de provisionamento resolveu o problema.

Costa do mar do Tibete
fonte
1

Esse problema aconteceu comigo porque removi uma 'Configuração' em Projeto => Informações.

Para resolver isso, vá para 'Produto' => 'Esquema' => 'Gerenciar esquemas'. Edite o esquema ativo e verifique se a 'Configuração da compilação' não está especificando nenhuma configuração excluída para cada processo (Execução, Teste, etc.).

thijsonline
fonte
1

No meu caso, o Xcode não pôde definir automaticamente o perfil de desenvolvedor iOS adequado para a configuração de compilação de depuração. Eu deveria configurá-lo manualmente para iPhone Developer: My Name (XXXXXX):

Configurações de criação de destino → Assinatura de código → Identidade de assinatura de código → Depuração.

Pavel Alexeev
fonte
1

No meu caso, não consigo definir o perfil de provisionamento como 'none' porque preciso de um perfil de provisionamento para notificação por push. Então, o que fiz foi criar outro perfil de provisionamento no desenvolvedor da Apple, um perfil de provisionamento para desenvolvedor do iOS (não distribuição do iOS), vinculado ao mesmo ID do aplicativo. Em seguida, use esse perfil de provisionamento para seu aplicativo na guia Configurações de compilação.

Chen Li Yong
fonte