¿Se puede modificar el código de una ipa sin firmar?
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.