Chaveiro padrão do iOS para usuário sem privilégios usado para iniciar o Tomcat e o Jenkins

Chaveiro padrão do iOS para usuário sem privilégios usado para iniciar o Tomcat e o Jenkins

Tenho um usuário sem privilégios que criei para iniciar o Tomcat 8 como um serviço. O Tomcat executa o Jenkins, que é usado para fornecer trabalhos onde os membros da minha equipe podem fazer upload de um arquivo .ipa e um perfil de provisionamento e, em seguida, assinar novamente o arquivo .ipa. Jenkins está executando um script de shell sempre que assina novamente o arquivo .ipa. Esse script de shell foi atualizado recentemente e agora chama o comando de segurança, o que resulta no seguinte erro:

segurança: falha na importação do certificado: não foi possível encontrar uma chave padrão.

Preciso definir as chaves padrão para meu usuário Tomcat sem privilégios.

Como posso adicionar um chaveiro padrão a um usuário sem privilégios ou fazer com que esse usuário use esse chaveiro?

Não tenho certeza se preciso executar um comando ou especificar as chaves em meu tomcat.plist.

Responder1

Eu encontrei uma solução alternativa. Consegui usar o seguinte para criar dinamicamente um novo chaveiro, adicionar um certificado ao chaveiro e, posteriormente, removê-lo:

security create-keychain -p temp "temp.keychain"
security add-certificates -k "temp.keychain" "ios_distribution.cer"
security unlock-keychain -p temp "temp.keychain"

security cms -D -k "temp.keychain" -i "blah.mobileprovision" > <entitlements>

...do some stuff...

security delete-keychain -h "temp.keychain"

Se quiser definir as chaves para um usuário sem privilégios, você pode usar o seguinte comando:

default-keychain [-h] [-d user|system|common|dynamic] [-s [keychain]]

Ex.

default-keychain -h "temp.keychain"

Você pode executar esse comando a partir de um script de shell que está sendo executado pelo usuário sem privilégios (como estou fazendo).

informação relacionada