É possível vincular chaves privadas e certificados em chaveiros?


3

Recebi a propriedade de vários aplicativos para iOS para criar e enviar para o iTunes Connect, mas me deparei com um problema muito desagradável. Os certificados de distribuição devem ser nomeados exclusivamente e, por vários motivos, tenho dois certificados com um único nome individual.

Se houver certificados nomeados duplicados, mesmo que eles tenham IDs exclusivos, o processo de compilação será encerrado com um erro de Sinal de Código que declara que os certificados devem ser nomeados exclusivamente. Isto leva-me a uma situação em que tenho de eliminar o (s) certificado (s) assinado (s) que tenho, transferir o que pretendo, lavar, repetir.

E agora há um problema mais difícil. Estou chegando a um ponto em que essas compilações podem ser executadas por completo xcodebuild e xcrun binários de linha de comando, exceto pelo problema acima.

É possível armazenar as chaves Pública / Privada em algum lugar "global", que estarão disponíveis para qualquer solicitação de chaveiro e criar um novo chaveiro para conter apenas um único certificado assinado, mas permitir que os dois chaveiros trabalhem juntos para passar o código assinando?


Apesar de como estou em conflito, é minha opinião que esta questão está no tópico para AD baseado no fato de que é apenas funcionalmente sobre o utilitário Keychain Access. A única coisa que tem a ver com código / programação é o fato de ter que passar por assinatura de código. Mas o procedimento subjacente final existe apenas dentro do Keychain embutido.
Jason Salaz

Respostas:


2

Não é possível vincular chaves privadas e certificados em vários Keychains. Precisa haver um terceiro item oculto chamado identidade que liga esses dois itens juntos. A identidade, o certificado e a chave privada precisam estar no mesmo Keychain.

Especifique o Keychain

Usando o Acesso às Chaves, crie um Keychain separado com um certificado e uma chave privada em cada um. Na sua situação, isso significa criar dois chaveiros separados.

Contar codesign para procurar seu Keychain específico usando a opção de linha de comando --keychain; o caminho fornecido para o chaveiro deve ser absoluto.

Você pode fornecer essa opção e o caminho para codesign dentro do Xcode através da interface de usuário de configurações de compilação.


Você saberia se o uso de uma identidade também funcionará em torno da limitação do 'certificado nomeado duplicado'?
Jason Salaz

Se você pode especificar uma identidade específica, então acredito que sim. Meu entendimento é que uma identidade vincula um certificado e uma chave privada de maneira exclusiva.
Graham Miln

Fantástico. Mesmo que não esteja mais em condições de executar essa atividade, tentarei reproduzir um caso de teste e verificá-lo para aceitar sua resposta. Obrigado!
Jason Salaz

Você pode encontrar a seguinte pergunta StackOverflow útil na configuração do Xcode e Keychain: stackoverflow.com/questions/1355637/…
Graham Miln
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.