(Una especie de post largo, estoy tratando de ser cuidadoso con lo que hice y por qué estoy confundido)
Tengo la tarea de automatizar nuestras compilaciones para nuestra aplicación iOS. El proceso que realmente está involucrado es tomar un archivo .app (generado por Cordova) y convertirlo en un archivo .ipa.
Creo que lo primero que me gustaría entender es cómo funcionan los certificados y las disposiciones móviles. Cuando inicio sesión en el Centro de desarrolladores de Apple para mi equipo, veo dos certificados que puedo descargar. Soy consciente de que necesito firmar el archivo .app antes de convertirlo a .ipa, así que intenté descargar uno, pero encontré que no puedo firmar el código con él. Mi entendimiento es que una Identidad de firma == un certificado + un conjunto de claves públicas / privadas que funciona con el centro de desarrolladores (?). Nunca encontré una manera de usar una certificación prefabricada en mi máquina. La única forma que encontré para hacerlo fue usar la interfaz de usuario XCode (algo que realmente no quiero hacer, porque automatización) para crear un archivo de certificado completamente nuevo y generar el conjunto de claves público / privado para la Identidad. Si puedo, realmente me gustaría evitar crear nuevas Identidades y Certificados.
El siguiente paso que tomé fue usar el comando PackageApplication en xcrun (en la línea de comandos). Una vez que creé un nuevo Certificado e Identidad, pude firmar los archivos .app (o eso pensé). Mi primer intento fue un comando de una línea, que incluía --signar con la identidad y - con el archivo mobileprovision que había descargado del Centro de desarrolladores. Después de unas horas de jugar con esta configuración, descubrí que era mejor usar codesign -s "mi identidad de firma", "el archivo .app" para que suceda cualquier cosa. Pensé que este era el movimiento correcto (más tarde descubrí que probablemente no lo es).
Después de eso descubrí que la gente había publicado diciendo que la función --embed de xcrun no incrusta realmente el archivo, e "incrustar" el archivo simplemente significa colocarlo en el directorio .app con el nombre "embedded.mobileprovision . " Cansado de que xcrun no funcionara, simplemente moví el archivo de mobileprovision que había descargado del Centro de desarrolladores a su ubicación correcta y lo renombré.
Después de esto firmé el archivo .app y luego ejecuté el comando PackageApplication sin los parámetros --sign o --embed. Esto generó con éxito un archivo .ipa, pero seguí recibiendo errores "La firma del código no es válida" en el Configurador de Apple.
Después de esto, leí un poco y encontré que .ipa es solo un archivo del archivo .app dentro de una carpeta llamada Carga útil. Entonces, como último intento, simplemente moví el archivo .app firmado a una carpeta llamada Carga útil y lo comprimí en un archivo .zip, que luego cambié de nombre a .ipa. Obtengo el mismo resultado de "La firma del código no es válida".
Estoy fuera de ideas. Sin embargo, creo que podría estar entendiendo mal los Certificados y MobileProvisions, por lo que aclarar eso podría ayudar.
Por favor ayuda.