Assinatura de código e provisionamento em um Nutshell

Desenvolvo aplicações há mais de 3 anos e uma coisa que ainda me incomoda é a assinatura de código e provisionamento em iOS. O que são Identidades de Assinatura? Por que eu preciso criar Perfis de Provisionamento e me preocupar com coisas como um desenvolvedor? Se você não tem nenhuma boa resposta para essas perguntas e realmente não quer ler através do Apple Docs, este é o artigo que expõe todo o processo para você e para mim como referência em menos de 5 Minutos.

Tenho certeza que muitos de vocês podem aprender as coisas rapidamente apenas lendo um texto, mas o que eu realmente gosto, é de ter as coisas explicadas de uma forma visual com caixas e setas. Então o maior problema para mim é que não há nenhum gráfico ou gráfico que escolha todas as partes relevantes e mostre como tudo funciona em conjunto de uma forma fácil de entender. Esta é a razão pela qual eu vou tentar criar um no final deste Post. Vamos começar.

Primeiro, vamos recolher os termos principais, você vai tropeçar ao tentar encontrar qualquer coisa relacionada a Provisioning e Code Signing na Internet.

  • Xcode
  • Centro de membros
  • Keychain
  • Signing Identity
  • Privado & Chave pública
  • Perfil de aprovisionamento
  • Aplicação ID

Xcode & Member Center

Se você é um Desenvolvedor iOS normalmente usará Xcode para criar e gerenciar seu aplicativo e recursos e carregá-los para a Appstore. Isto é tudo que você precisa saber sobre Xcode para acompanhar este Post. se você quiser ler mais sobre ele clique aqui: Xcode

Após ter se registrado no Programa de Desenvolvedores Apple, você poderá fazer o login no Centro de Membros. Este é o lugar onde você pode criar Perfis de Provisionamento, IDs de aplicativos, Certificados, etc. Partes da Central de Membros estão diretamente conectadas com o Xcode. Por exemplo, você pode ver e criar suas Identidades de Assinatura ou baixar e atualizar os Perfis de Provisionamento em suas Configurações do Xcode.

Signing Identity, Public & Private Key, Keychain Application

Uma coisa que precisamos esclarecer é o termo Assinatura. Assinar o seu aplicativo permite ao iOS identificar quem assinou o seu aplicativo e verificar se o seu aplicativo não foi modificado desde que você o assinou. A Identidade de Assinatura consiste em um par de chaves público-privadas que a Apple cria para você. Pense na chave pública como um mecanismo de bloqueio, então você precisa saber a chave privada para desembrulhar, desbloquear ou decodificar dados novamente.

De onde vem o par de chaves públicas e privadas e como você solicita um certificado contendo-as? Toda esta magia acontece quando você cria um Pedido de Assinatura de Certificado (CSR) através do Aplicativo de Acesso ao Chaveiro. Se o fizer, o Aplicativo Keychain criará uma chave privada e um arquivo certSigningRequest que você então carregará para a Apple. A Apple irá comprovar o pedido e emitir um certificado para você. O certificado conterá a chave pública que pode ser descarregada para o seu sistema. Depois de fazer o download, você precisa colocá-la no seu Keychain Access Application clicando duas vezes nele. É utilizado por funções criptográficas para gerar uma assinatura única para a sua aplicação, que é basicamente a sua Identidade de Assinatura de Código.

O certificado também estará disponível através do Centro de Membros, mas apenas conterá a chave pública, por isso mantenha essa chave privada em segurança.

É também necessário que um certificado intermédio esteja no seu keychain para garantir que o seu certificado de desenvolvimento ou distribuição seja emitido por outra autoridade certificadora. Eu sei que isso parece um pouco confuso, mas é assim que funciona. Ele é instalado automaticamente ao configurar o Xcode na primeira vez, então basicamente você não precisa se preocupar muito com ele porque ele é configurado automaticamente.

Provisioning Profile & App ID

Como sabemos, a Apple gosta de manter as coisas seguras, então não é possível instalar uma App em qualquer dispositivo iOS por aí usando apenas o certificado. É aqui que entram os Perfis de Provisionamento. Um Perfil de Provisionamento deve ser instalado em cada dispositivo no qual o código da sua aplicação deve ser executado. Cada Perfil de Provisionamento de Desenvolvimento conterá um conjunto de Certificados de Desenvolvimento de iPhone, Identificadores Únicos de Dispositivo e uma ID de Aplicação. Um ID de aplicativo é uma string de duas partes usada para identificar um ou mais aplicativos de uma única equipe de desenvolvimento.

Os dispositivos especificados no Perfil de Provisionamento de Desenvolvimento podem ser usados para testes somente por aqueles indivíduos cujos Certificados de Desenvolvimento estão incluídos no perfil. Um único dispositivo pode conter vários perfis de provisionamento. A diferença entre Perfis de Desenvolvimento e Perfis de Distribuição é que os Perfis de Distribuição não especificam nenhum ID de dispositivo. Se você quiser lançar um App que deve ser limitado a um número de dispositivos registrados, você precisa usar um perfil Ad-Hoc para isso.

Chart

Aqui está o Gráfico que eu criei. Se você descobrir algumas coisas que eu perdi ou explicar da maneira errada, por favor me avise. Como é dito, esta é a primeira vez que eu realmente tentei enrolar minha cabeça em torno das entranhas de Provisão e Assinatura de Código. Sei que há muito mais sobre o que falar, mas acho que este é um bom começo para tudo em torno deste tópico. Vou tentar manter este post atualizado e corrigir tudo errado o mais rápido que puder.

  1. Xcode será instalado e o Certificado Intermediário será empurrado para o Chaveiro
  2. Certificate Signing Request (CSR) será criado.
  3. Chave Privada será gerada ao longo da criação do CSR e armazenada no Keychain
  4. O CSR será carregado para o Member Center
  5. Apple fará prova de tudo e emitirá o Certificado
  6. Certificado será descarregado para o seu Computador
  7. O Certificado será empurrado para o Keychain e emparelhado com a chave privada para formar a Identidade de Assinatura de Código
  8. O Perfil de Provisionamento será criado usando um Certificado, App ID e Device Identifiers e baixado por Xcode
  9. Xcode irá assinar a App e empurrar os Perfis de Provisionamento para o Device
  10. iOS irá provar se tudo está configurado corretamente.Isso significa que o Perfil de Provisionamento deve incluir o Certificado que você usou para assinar a App, seu UDID do Dispositivo e o ID correto da App.
  11. Sua App deve estar rodando agora!

Deixe uma resposta

O seu endereço de email não será publicado.