Quais são as diferenças entre certificados, perfis de fornecimento e identificadores? o que eles significam e como eles estão relacionados?

Um certificado é uma maneira de identificação criptograficamente segura. Ele usa o par de chaves público-privado para garantir que você é você (ou pelo menos é quem tem suas chaves privadas).

Os certificados são usados ​​para desenvolvedores de ID, organizações para distribuição, APNS e outros recursos similares.

Identificadores são coisas como aplicativos, envio de sites, passes, contêineres na nuvem e grupos de aplicativos. Eles são uma string com algumas propriedades associadas. Por exemplo, um ID de aplicativo seria algo como "com.foobar.myGreatApp" para a empresa foobar e o aplicativo "myGreatApp". Há um prefixo associado à sua conta para exclusividade e algumas propriedades que dizem que você está usando push, kit doméstico, kit de saúde etc.

Os perfis de provisionamento são usados ​​para vincular certificados, IDs e dispositivos. Um perfil de desenvolvimento conecta o desenvolvedor ou a equipe a um ID do aplicativo, juntamente com os vários serviços ou recursos ativados, como push, etc, e os dispositivos nos quais o perfil funcionará. Um perfil de produção também terá o certificado de distribuição, os IDs e os serviços, mas deverá ser assinado novamente pela Apple na loja de aplicativos e não será restrito a um pequeno conjunto de dispositivos.

Resposta curta:

1. Um certificado autentica você como uma entidade. Pode representar você como um indivíduo ou sua empresa. O identificador é um ID exclusivo para seu aplicativo móvel. Um perfil de provisionamento associa seu certificado ao ID do aplicativo. É o link entre os nºs 1 e 2 acima. Todos são criados por meio do iOS Developer Center (

https://developer.apple.com/membercenter/index.action

)

Resposta longa:

Veja a resposta detalhada de Shaheen Gandhi abaixo. É muito preciso.

(

GORJETA:

Se você estiver interessado em criar e vincular esses três itens para o seu aplicativo para iOS, acabei de escrever instruções passo a passo, percorrendo todo o processo de hoje, a seguir:

Certificados, IDs de aplicativos e perfis de provisionamento da Apple iOS - uma cartilha

)

O esquema de segurança da Apple para implantar aplicativos em dispositivos iOS é notoriamente difícil de entender e criou muitas dores de cabeça para os desenvolvedores por meio de mensagens de erro inescrutáveis ​​ao implantar a partir do Xcode.

No entanto, o esquema da Apple é muito flexível e atualmente permite vários cenários diferentes:

- os aplicativos implantados na App Store são confiáveis ​​porque são assinados criptograficamente pelas empresas da Apple; as organizações corporativas podem implantar aplicativos para seus funcionários sem publicar na loja de aplicativos (os chamados "aplicativos de linha de negócios" que não têm negócios publicados no público em geral. ) - os desenvolvedores de aplicativos podem implantar binários de desenvolvimento em (até 100 dos) seus próprios dispositivos para testar - os desenvolvedores de aplicativos podem executar um programa beta implantando diretamente aplicativos assinados corretamente nos clientes

Aqui estão algumas definições para os componentes no esquema da Apple:

Identificadores

- Também chamados de "Identificadores de aplicativos" ou "Identificadores de pacotes". Eles identificam exclusivamente seu aplicativo e geralmente têm um nome de domínio reverso, como com.company.product

Certificados -

Este é um certificado criptográfico concedido pela Apple. Funciona exatamente como SSL, onde você obtém um certificado assinado por uma autoridade. A Apple assina a chave privada que você usa para assinar diferentes partes do seu aplicativo. Certificados diferentes criam diferentes tipos de confiança. Alguns permitem que você assine e envie seu aplicativo para a App Store, enquanto outros permitem que o servidor web do seu aplicativo envie notificações por push aos usuários via APNS. Neste último caso, por exemplo, a Apple usa esse certificado para confiar no servidor da Web que envia a notificação por push. Caso contrário, seria fácil para um invasor falsificar uma notificação por push válida e usuários de spam. O certificado mais comum que você criará assina a chave usada para implantar seu aplicativo em um dispositivo ou enviá-lo para a App Store.

Ao criar um certificado através do portal de desenvolvedores da Apple, você precisa criar seu par de chaves e enviar uma "Solicitação de assinatura de certificado", que no início é provavelmente bastante confusa para os desenvolvedores que estão apenas tentando ver o aplicativo sendo executado em um dispositivo.

Se você visitar o portal do desenvolvedor, descobrirá que pode criar certificados para Desenvolvimento ou Distribuição. Esses certificados estão enraizados em autoridades diferentes, para que os dois mundos nunca sejam confundidos (embora todos os dispositivos iOS confiem nos dois de maneira aparentemente igual).

Perfis de provisionamento

- Provavelmente o componente mais confuso do sistema, um perfil de provisionamento indica os dispositivos para os quais um aplicativo está corretamente assinado. Se você visitar o portal do desenvolvedor, notará que pode criar dois tipos (novamente chamados de Desenvolvimento e Distribuição). Os perfis de provisionamento dizem "aplicativos com este

Identificador

assinado com este

Certificado

a chave privada pode ser executada nesses dispositivos. "Agora que você sabe que um perfil de provisionamento está vinculado a um certificado, pode ver por que precisa decidir se deve criar um perfil de Desenvolvimento ou Distribuição. Os perfis de desenvolvimento estão limitados a 100 dispositivos. Distribuição perfis podem ser perfis de distribuição Ad-Hoc ou App Store. Não tenho certeza se os perfis Ad Hoc têm limites de dispositivo.

Você pode perguntar, por que não usar sempre um perfil de distribuição? Ele pode ser implantado em um número ilimitado de dispositivos e ainda está anexado a um certificado de propriedade do desenvolvedor. Outra peça do quebra-cabeça de segurança da Apple é

Direitos

. No pacote de um aplicativo iOS, você encontrará Entitlements.plist, que é uma lista de recursos que um aplicativo deseja. Ao assinar seu aplicativo usando um certificado destinado à distribuição, o Xcode (realmente o utilitário de assinatura) não permitirá um direito com get-task-allow definido como YES. Isso ocorre porque get-task-allow é o que permite que um depurador se conecte a um processo, e a Apple não quer que isso aconteça em aplicativos destinados à distribuição.

Espero que ajude a esclarecer o que são essas coisas. Eu certamente não projetei o sistema, então o que eu disse acima deriva de minhas experiências com a plataforma.