2012-03-29 17 views
7

Para un proyecto futuro, necesito aprender cómo funciona el proceso de asignación de nombres para los archivos Apple iOS IPA (iPhone/iPad). El objetivo de mi proyecto será construir (en Delphi) una herramienta de Windows para codificar un archivo IPA (previamente compilado con "No codificar señal" a través de XCode).CodeSigning a IPA file using only Windows

Una cosa segura, es que es posible codificar un archivo IPA solo en Windows; como Adobe lo hace con AIR/Flash CS5. Además, Epic Games, Inc. construyó el UDK (Unreal Development Kit) con una herramienta de terceros para codificar archivos IPA.

Esta última fue codificada en C# /. NET, así que traté de explorar el código fuente para aprender cómo funciona el proceso de asignación de nombres pero, wow, el código está bastante evolucionado e incluso si hay similitudes significativas entre C#/.NET y Delphi, estoy rápidamente en la falta de definición ...

El iPhonePackager de UDK es realmente parecido a lo que quiero hacer (con menos funciones).

De mi investigación: los certificados y las claves se pueden "generar" a través de OpenSSL en línea de comandos; Apple usa certificados X509 para codificar el binario (?); un componente como Bouncy Castle Crypto Las API se pueden usar para administrar certificados.

Un interesante artículo sobre el proceso codesigning de Apple: http://developer.apple.com/library/mac/#technotes/tn2206/_index.html

También voy a tener para generar, los "CodeResources"; el "embedded.mobileprovision" del archivo de Mobile Provisioning; y los "CodeSignature/CodeResources" con la jerarquía de todos los tipos de archivos:

<key>MainWindow.nib</key> 
<data>GTBfZPINlJlD7HXjMRAKgfAztXU=</data> 

Si leído hasta ahora, debería tener un dolor de cabeza :)
Por lo tanto, a continuación son algunas preguntas para empezar ...

¿Es posible volver a firmar un archivo binario ya compilado y firmado con "Do not Code Sign"?
¿Crees que mi proyecto es realmente difícil ...?
¿Crees que será mejor para mí contratar a un desarrollador? Puedo tener un presupuesto para este proyecto pero, idealmente, me gustaría hacerlo por mi cuenta, por supuesto ...: D

Muchas gracias de antemano por sus consejos y/o sugerencias.

Beny

+0

Investigue un poco sobre ldid y vea si está disponible para Windows. Por lo menos, te permitiría ejecutar tu aplicación en un dispositivo liberado. –

+0

Hola Richard. Sí, ya he creado un paquete simple para dispositivos liberados, pero la parte más difícil es precisamente codificar el código binario ...: s Haré una investigación sobre el LDID de Saurik. Gracias. – Beny

Respuesta

1

estoy trabajando en un proyecto similar, pero no pude encontrar los archivos de origen para la herramienta de UDK, que es de código abierto? Si es así, ¿podría darme un enlace?

Puedo decirte que el archivo CodeResources usa un resumen sha1 en base64. Puede crear usando openssl: openssl dgst -sha1 -binary | openssl enc -base64

+0

Gracias Fabio por su aporte. Voy a probar la función OpenSSL DGST;) Mantendré esta pregunta en contacto en el futuro. Mejor. – Beny

+0

¿Qué pasa con la herramienta de firma UDK? ¿Tienes un enlace al código fuente? – Fabio

+0

El Empaquetador de iPhone UDK es realmente agradable, pero un poco complejo para mí. Eche un vistazo aquí: http://shrtnr.us/9vi9ju – Beny

1

He escrito una herramienta para actualizar la provisión móvil y renunciar a la IPA en Windows, la herramienta y su código fuente C# (con licencia bajo LGPL) se pueden encontrar en here.