Red de conocimiento informático - Conocimiento de la instalación - ¿Se puede modificar el código de una ipa sin firmar?

¿Se puede modificar el código de una ipa sin firmar?

Preparación

Hay algunas cosas que debes hacer antes de volver a firmar.

1. Primero, debe descargar e instalar Xcode, que tiene un programa codesign_allocate. Durante el proceso de instalación, también habrá un programa codesign en /usr/bin, que se utiliza para firmar paquetes ipa. .

2. El archivo de certificado, el archivo de clave privada y el archivo de perfil de aprovisionamiento del certificado empresarial. Tenga en cuenta que el certificado empresarial debe ser del tipo Distribución de iOS, no Desarrollo de iOS.

Pasos para volver a firmar

1. Descomprima ipa

Descomprima ipa para obtener Payload/[nombre de la aplicación].bundle, abra el paquete.

2. Eliminar la información de la firma ipa anterior

Eliminar la carpeta _CodeSignature en el paquete, es decir, eliminar la información de la firma del ipa anterior.

3. Reemplazar el certificado

Eliminar el perfil de aprovisionamiento antiguo en el paquete y reemplazarlo con el perfil de aprovisionamiento de nuestro propio certificado empresarial.

Tenga en cuenta que debemos cambiar el nombre del certificado empresarial a embeded.mobileprovision en el paquete ipa.

4. Modificar el paquete

En este punto, podemos modificar el paquete tanto como queramos, como agregar bibliotecas dinámicas, eliminar imágenes, etc.

Nota: Si desea agregar una biblioteca de vínculos dinámicos al paquete, primero debe comprimirla en un archivo zip, luego descomprimirlo en el directorio Documentos y abrirlo cuando se inicie el programa; de lo contrario, el El programa se atascará al iniciar. Cargue los archivos de la biblioteca de enlaces dinámicos.

5. Volver a firmar

Después de completar la modificación del contenido incluido, debe volver a firmar a través del programa /usr/bin/codesign.

/usr /bin/codesign -f -s "iPhone Distribution.YourCompanyName" --resource-rules Payload/ MYAPP.app/ResourceRules.plist Payload/ MYAPP.app

iPhone Las distribuciones se pueden recuperar desde Acceso a Llaveros. El lugar es el nombre del certificado empresarial, como el siguiente "iPhone Distribution:XXXXXXXXXXXX":

Ejemplo de comando específico:

codesign -f - s "iPhone Developer:XXXXXXXXXX" --resource-rules Payload /NdCP_Game_Demo.app/ResourceRules.plist Payload/NdCP_Game_Demo.app

Este comando significa: use el certificado identificado por "iPhone Developer: XXXXXXXXXXXXXXX" y use como "iPhone Developer: según Payload/NdCP_Game_Demo" archivo .app/ResourceRules.plist, si la firma ya existe en el paquete ipa, la firma será reemplazada y el directorio _CodeSignature generado por este proceso se almacenará en Payload/ Directorio NdCP_Game_Demo.app

Ejecute el comando Después de eso, se generará un nuevo directorio _CodeSignature en el paquete, que contiene la nueva información de firma

6. p>

Después de completar el trabajo anterior, se puede generar una nueva ipa para la distribución.

El comando de muestra es el siguiente:

zip -r ResignTest.ipa Payload

# Tenga en cuenta que no puede haber "/" después de la carga útil

7. Después de modificar el paquete ipa Después de volver a firmar el contenido y su firma, el archivo ipa vuelto a firmar se puede instalar con éxito en dispositivos sin jailbreak y con jailbreak. Tenga en cuenta que este archivo se instala a través de sitios web y sistemas Apple con certificados SSL (un programa de distribución empresarial interno), no a través de herramientas de terceros como PP Assistant.