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?
Respostas:
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.fonte