Estou tentando adicionar um novo perfil de provisionamento ao meu Xcode, para testar um aplicativo no dispositivo. Aqui estão as etapas que segui:
Excluiu todos os certificados e perfis de provisionamento
Criar / Adicionar Certificado IOS Dev
Adicionar meu dispositivo IOS online
Criar Perfil de Provisionamento IOS
Adicionar Perfil de Provisionamento IOS
App limpo
Crie e execute o aplicativo
Definir Codesigning e Perfil de Provisionamento nas Configurações de Compilação
Muita pesquisa no Google para nenhum sucesso
Aqui está o erro que recebo:
CSSM_SignData returned: 800108E6
/Users/alexpelletier/Library/Developer/Xcode/DerivedData/MyExpense-efnqzvoqwngzcmazaotyalepiice/Build/Products/Debug-iphoneos/MyExpense.app: errSecInternalComponent
Command /usr/bin/codesign failed with exit code 1
ios
xcode
certificate
provisioning-profile
Alex Pelletier
fonte
fonte
Respostas:
Abra o Acesso às Chaves e , no menu Arquivo, selecione Bloquear Todas as Chaves .
Em seguida, volte para o Xcode, limpe e reconstrua. Ele solicitará sua senha novamente para desbloquear o chaveiro.
Depois disso, supondo que você não tenha outros problemas de compilação, será bem-sucedido!
fonte
Parece um bug no mecanismo de assinatura de código, reiniciar o mac deve resolver o problema
fonte
Isso ocorre quando o keychain de login está bloqueado. Para desbloquear as chaves de login, execute:
Se o seu chaveiro for protegido por senha, especifique a senha usando a
-p
opção.Em seguida, tente a operação de construção ou assinatura de código novamente. O código de erro em questão é descrito nos documentos da Apple como um erro interno, então é perfeitamente possível que isso ocorra em outros casos também.
fonte
codesign
estava falhando e este é o comando mágico que me salvou !!!Tive o mesmo problema em
High Sierra
/Xcode 9.4.1
, todas as tentativas de login terminaram emerrSecInternalComponent
Alternativamente:
execute o comando codesign no terminal mac e "Sempre permitir" / usr / bin / codesign acesso à chave
Se tentar assinar de ssh / CI, você também precisa executar
antes de tentar assinar o pacote de aplicativos
fonte
security unlock-keychain -p <password> login.keychain
de CI.~/.bash_profile
que o keychain desbloqueie na inicialização do cliente SSH, mas você não precisa fazer referência a ele em seu script de CIEncontrei o mesmo problema, reinicio meu macOS e funciona.
Na China, temos um ditado entre os desenvolvedores:
Às vezes, o ditado acima irá ajudá-lo muito!
fonte
Caso ajude outra pessoa, encontrei um
errSecInternalComponent
erro comcodesign
porque estava executando-o em uma sessão ssh para minha máquina macOS. A execução do mesmo comando em uma janela de terminal na própria máquina macOS funcionou.Presumivelmente, isso ocorre porque
codesign
precisa de acesso à chave privada das chaves de login.Executar
security unlock-keychain login.keychain
(como explicado pela resposta de cbracken ) da mesma sessão também deve funcionar.fonte
Se tentar assinar a partir do comando ssh run:
antes de tentar assinar o pacote de aplicativos
ou da IU
Atualize o controle de acesso da chave para "Permitir que todos os aplicativos acessem este item"
Obrigado a @Equilibrium e @Jon McClung
fonte
Eu tive o mesmo problema Descobri que o problema é com o código de assinatura do aplicativo.
fonte
Corri
security unlock-keychain login.keychain
e minha senha de login não funcionou. Então eu reiniciei e apenas executei o Xcode novamente e funcionou. Executar o comando também funciona. Problema estranho.fonte
Conforme apontado por @Equilibrium em um dos comentários, se você estiver na linha de comando env. como Jenkins (meu caso), você pode precisar passar a senha para o comando security-unlock mencionado nas soluções.
Então, em vez de usar,
usar:
onde as chaves do caminho para o login podem ser $ HOME / Library / Keychains / login.keychain (meu caso) ou simplesmente login.keychain
fonte
para qualquer um que encontrou esse problema de jenkins e ssh:
alta possibilidade de você não ter concedido acesso à chave privada no keychain, eu tentei, mas não tenho certeza porque tudo isso não está funcionando:
finalmente resolvido por:
1.ssh [usuário] @ [jenkinsServerIP] -L 5900: localhost: 5900, faça login no servidor jenkins
2. abrir 'vnc: // localhost'
isso irá lançar uma tela remota, se o seu servidor jenkins permitir isso ...
em seguida, abra keychain.app para conceder acesso de / usr / bin / codesign à chave privada
boa sorte
fonte
Apenas tente uma vez usando o terminal mac, mas não a partir da sessão SSH
E escolha sempre permitir na caixa de diálogo exibida. E então você pode xcodebuild na sessão remota.
fonte
Clique com o botão direito do mouse na chave privada associada ao certificado de assinatura de código no keychain e, em seguida, clique em 'permitir todos os aplicativos' em vez de confiar em um prompt que corrigiu para mim, já que a compilação estava acontecendo via ssh.
fonte
Eu precisei:
1) excluir o certificado associado ao projeto
2) Voltar para o Xcode e revogar o certificado do aplicativo
3) O Xcode requer um novo certificado
4) Bloquear todo o KeyChain
5) Limpe o projeto
6) Reconstruir
É isso aí. Espero que ajude a alguém.
fonte
Os métodos acima são inúteis para mim.
Resolvi isso:
É isso aí. Espero que ajude a alguém.
fonte