Cómo refirmar una aplicación iOS (Nivel Básico)

Si queremos refirmar una aplicación sencilla de iOS lo primero que necesitaremos será un certificado de Apple instalado en nuestro Keychain y un Provisioning Profile asociado a este. Para este proceso debemos tener instalado Xcode en nuestro Mac.

En primer lugar hay que descomprimir el archivo .ipa, para ello abrimos un terminal en la ruta donde tengamos alojado el ipa y ejecutamos

unzip -q nombre_del_fichero.ipa

A continuación generaremos los entitlements derivados del archivo .mobileprovision que hemos creado en el portal de Apple mediante el siguiente comando

/usr/libexec/PlistBuddy -x -c "print :Entitlements " /dev/stdin <<< $(security cms -D -i ./nombre.mobileprovision) > entitlements.plist

Con esto tenemos todo lo necesario para refirmar la aplicación.

Antes de firmarla borraremos los datos de la firma actual:

rm -rf “Payload/NombreDeLaApp/_CodeSignature"

y reemplazaremos el mobile provision  embebido por el nuestro

cp ./nombre.mobileprovision embedded.mobileprovision

mv embedded.mobileprovision “Payload/NombreDeLaApp.app/"

Ya solamente queda firmar la app utilizando los entitlements generados previamente:

/usr/bin/codesign -fv -s “CommonNameOfCertificate" "Payload/NombreDeLaApp.app/NombreDeLaApp" --entitlements entitlements.plist

Hay que destacar que en caso de contener soporte para Swift es necesario aplicar este comando para refirmar todos los archivos .dylib incluidos en la carpeta Payload/NombreDeLaApp.app/Frameworks

Para esto la identidad usada es el «Common Name” del certificado instalado en nuestro keychain

Con esto ya podemos volver a comprimir la app

zip -qr AppRefirmada.ipa Payload

Y tendremos un .ipa listo para instalar.

En futuros tutoriales cubriremos casos mas avanzados como aplicaciones con keychain access groups, app extensions o querer realizar cambios en el Identifier, por ejemplo.

Deja un comentario

¿Necesitas una estimación?

Calcula ahora