¿Cuáles son las diferencias entre certificados, perfiles de aprovisionamiento e identificadores? ¿Qué significan y cómo se relacionan?

El esquema de seguridad de Apple para implementar aplicaciones en dispositivos iOS es notoriamente difícil de asimilar y ha creado muchos dolores de cabeza para los desarrolladores a través de mensajes de error inescrutables al implementar desde Xcode.

Sin embargo, el esquema de Apple es muy flexible y actualmente permite una serie de escenarios diferentes:

– las aplicaciones implementadas desde la App Store son confiables porque están firmadas criptográficamente por Apple
– las organizaciones empresariales pueden implementar aplicaciones para sus empleados sin publicarlas en la tienda de aplicaciones (las llamadas “aplicaciones de línea de negocios” que no tienen ningún negocio que se publique al público en general)
– los desarrolladores de aplicaciones pueden implementar binarios de desarrollo en (hasta 100 de) sus propios dispositivos para realizar pruebas
– los desarrolladores de aplicaciones pueden ejecutar un programa beta implementando directamente aplicaciones firmadas correctamente para los clientes

Aquí hay algunas definiciones para los componentes en el esquema de Apple:

Identificadores : también conocidos como “identificadores de aplicación” o “identificadores de paquete”. Identifican de forma exclusiva su aplicación y, por lo general, tienen un nombre de dominio inverso, como com.company.product

Certificados: este es un certificado criptográfico otorgado por Apple. Funciona igual que SSL donde obtienes un certificado firmado por una autoridad. Apple firma la clave privada que usa para firmar diferentes partes de su aplicación. Los diferentes certificados crean diferentes tipos de confianza. Algunos le permiten firmar y enviar su solicitud para la App Store, mientras que otros permiten que el servidor web de su aplicación envíe notificaciones push a los usuarios a través de APNS. En el último caso, por ejemplo, Apple usa este certificado para confiar en el servidor web que envía la notificación push. De lo contrario, sería fácil para un atacante falsificar una notificación push válida y usuarios de spam. El certificado más común que crearía firma la clave que usa para implementar su aplicación en un dispositivo o enviarla a la App Store.

Cuando crea un certificado a través del portal de desarrolladores de Apple, debe crear su par de claves y enviar una “Solicitud de firma de certificado”, que al principio es bastante confusa para los desarrolladores que solo intentan ver su aplicación ejecutándose en un dispositivo.

Si visita el portal para desarrolladores, encontrará que puede crear certificados para Desarrollo o Distribución. Estos certificados están enraizados a diferentes autoridades, por lo que los dos mundos nunca se confunden (aunque todos los dispositivos iOS confían en ambos de una manera aparentemente igual).

Perfiles de aprovisionamiento : probablemente el componente más confuso del sistema, un perfil de aprovisionamiento indica los dispositivos para los que una aplicación está firmada correctamente. Si visita el portal del desarrollador, notará que puede crear dos tipos (nuevamente llamados Desarrollo y Distribución). Los perfiles de aprovisionamiento dicen que “las aplicaciones con este Identificador firmado con la clave privada de este Certificado están bien para ejecutarse en estos dispositivos”. Ahora que sabe que un perfil de aprovisionamiento está vinculado a un certificado, puede ver por qué debe decidir si desea crear un perfil de Desarrollo o Distribución. Los perfiles de desarrollo están limitados a 100 dispositivos. Los perfiles de distribución pueden ser perfiles de distribución Ad-Hoc o App Store. No estoy seguro de si los perfiles ad hoc tienen límites de dispositivo.

Podría preguntar, entonces, ¿por qué no usar siempre un perfil de Distribución? Se puede implementar en un número ilimitado de dispositivos y aún está adjunto a un certificado propiedad del desarrollador. Otra pieza del rompecabezas de seguridad de Apple son los derechos . En el paquete de una aplicación iOS, encontrará Entitlements.plist, que es una lista de capacidades que una aplicación desea. Al firmar su aplicación utilizando un certificado destinado a la distribución, Xcode (realmente la utilidad de firma) no permitirá un derecho con get-task-allow establecido en YES. Esto se debe a que get-task-allow es lo que permite que un depurador se conecte a un proceso, y Apple no quiere que eso suceda en aplicaciones destinadas a la distribución.

Espero que eso ayude a aclarar cuáles son estas cosas. Ciertamente no diseñé el sistema, por lo que lo que he dicho anteriormente se deriva de mis experiencias con la plataforma.

Un certificado es una forma de identificación criptográficamente segura. Utiliza un par de claves público-privadas para asegurarse de que eres tú (o al menos eres quien tiene tus claves privadas).

Los certificados se utilizan para desarrolladores de ID, organizaciones para distribución, APNS y otras capacidades similares.

Los identificadores son cosas como aplicaciones, inserción de sitios web, pases, contenedores en la nube y grupos de aplicaciones. Son una cadena con algunas propiedades asociadas. Por ejemplo, un ID de aplicación sería algo así como “com.foobar.myGreatApp” para la empresa foobar y la aplicación “myGreatApp”. Hay un prefijo asociado con su cuenta para la unicidad, y algunas propiedades que dicen que está usando push, kit de inicio, kit de salud, etc.

Los perfiles de aprovisionamiento se utilizan para vincular certificados, ID y dispositivos. Un perfil de desarrollo conecta al desarrollador o equipo con una ID de aplicación junto con los diversos servicios o capacidades habilitados como push, etc., y los dispositivos para los que funcionará el perfil. Un perfil de producción tendrá el certificado de distribución, los ID y los servicios también, pero sería para que Apple vuelva a firmarlo en la tienda de aplicaciones y no esté restringido a un pequeño conjunto de dispositivos.

Respuesta corta:
1. Un Certificado lo autentica como una entidad. Puede representarlo como individuo o su empresa.
2. El identificador es una identificación única para su aplicación móvil.
3. Un perfil de aprovisionamiento asocia su certificado con la ID de la aplicación. Es el enlace entre # 1 y # 2 arriba.

Todos se crean a través del Centro de desarrolladores de iOS ( https://developer.apple.com/memb …)

Respuesta larga:
Vea la respuesta detallada de Shaheen Gandhi a continuación. Es muy exacto.

( SUGERENCIA: si está interesado en cómo crear y vincular estos 3 elementos para su aplicación iOS, acabo de escribir instrucciones paso a paso que recorren todo el proceso hoy de la siguiente manera:

Certificados de Apple iOS, ID de aplicaciones y perfiles de aprovisionamiento: un manual )

Intenta crear un certificado iOS es una comprensión muy intuitiva de la relación entre los tres

http: // Https: //github.com/qtb000/appuploader/wiki/ios-distribution-certificate-provisioning-profiles-Establish

Primero solicite el certificado de iOS, y luego solicite un archivo de configuración, el archivo de configuración debe asociarse con el certificado de iOS y seleccionar appid, de modo que los tres estén asociados entre sí.

Desmitificar certificados de iOS y archivos de aprovisionamiento

More Interesting

Con la llegada de Swift, ¿Objective-C sigue siendo relevante?

¿Debo ingresar para el desarrollo de aplicaciones iOS o Windows?

¿Es práctico buscar un desarrollador móvil estelar durante un período de 3 meses en Palo Alto en el entorno climatizado actual?

¿Cuál es el mejor 'efecto de texto de Photoshop' para escribir en las fotos que se muestran dentro del iPhone?

¿Hay alguna forma de verificar si mi iPhone tiene alguna aplicación secreta, como si alguien me estuviera espiando, revisando mis llamadas y mensajes sin usar el teléfono?

¿Debo hacer una aplicación web en lugar de una aplicación IOS para evitar la tarifa de desarrollador de Apple?

¿Cómo crecerá el desarrollo de aplicaciones nativas en comparación con el desarrollo de aplicaciones híbridas en los próximos cinco años?

Cómo usar una IBAction en otro controlador de vista

IOS Xcode: para usar Test Flight, ¿los probadores internos deben tener una membresía de desarrolladores de Apple?

¿Cuál es el mejor sistema de administración de contenido de código abierto que admite la publicación de aplicaciones nativas móviles?

¿Apple sigue usando Objective-C o la compañía se ha cambiado completamente a Swift?

¿Cómo se prueban las aplicaciones de iOS antes de lanzarlas al público?

¿Hay alguna API existente para implementar Chat en una aplicación iOS y Android?

¿Qué es StoryBoard en iOS?

Cómo argumentar en la siguiente declaración 'híbrido es mejor que nativo porque escribir una vez se ejecuta en todas partes'