Cancelación de un perfil de aprovisionamiento de iOS

Mi cliente tiene una aplicación de iOS con la compra en la aplicación, Game-kit y notifications Push habilitadas, actualmente se encuentra en la tienda de aplicaciones. Me gustaría renunciar a la aplicación utilizando un certificate interno de distribución empresarial, para realizar una testing interna, pero aún así poder probar services vinculados al perfil de aprovisionamiento original. es posible?

Terminé haciendo esto, que es una combinación de:

  • Pregunta muy complicada sobre el iPhone / iPad renunció a comportamientos de compilation

y

  • Vuelva a firmar IPA (iPhone)

1) Crear permissions plist, evitar problemas con el llavero, etc.

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>application-identifier</key> <string>GBA9L2EABG.com.your.bundle.id.MyApp</string> <key>get-task-allow</key> <false/> </dict> 

2) Descomprimir el IPA

 unzip Application.ipa 

3) Eliminar la firma del código anterior.

 rm -r "Payload/Application.app/_CodeSignature" "Payload/Application.app/CodeResources" 2> /dev/null | true 

4) Reemplazar el perfil de aprovisionamiento mobile integrado

 cp "MyEnterprise.mobileprovision" "Payload/Application.app/embedded.mobileprovision" 

5) Renunciar

 /usr/bin/codesign -f -s "iPhone Distribution: Certificate Name" --resource-rules "Payload/Application.app/ResourceRules.plist" --entitlements Entitlements.plist "Payload/Application.app" 

6) Re-package

 zip -qr "Application.resigned.ipa" Payload 

Para renunciar a una aplicación un poco más fácil de lo que dijo @Koko Carl, hemos adaptado el script floatsign, que se puede encontrar en https://gist.github.com/Weptun/5406993 . Hace que el process sea realmente sencillo:

 sh floatsign.sh ~/Downloads/File.ipa "iPhone Distribution: CertificateName" -b new.bundle.id -p /Path/To/Profile/Appstore.mobileprovision App-resigned.ipa 

Solo para agregar un poco a la respuesta de Koko Carl, si tiene problemas con codeign_allocate cuando llegue al paso 5 (Resign), intente exportar una variable de shell CODESIGN_ALLOCATE y darle una ruta a la asignación de códigos asignada dentro del iPhone SDK. Para hacer esto, asegúrese de tener instaladas las herramientas de la command-line xcode (Preferences / Actualizaciones en Xcode)

Por ejemplo, obtuve el error:

 me$ /usr/bin/codesign -f -v -s "iPhone Distribution: Some Company, Inc" --resource-rules "Payload/MyApp.app/ResourceRules.plist" --entitlements Entitlements.plist "Payload/MyApp.app" 

Salida:

 Payload/MyApp.app: replacing existing signature codesign_allocate: object: /Users/mimio/Downloads/Payload/MyApp.app/MyApp malformed object (unknown load command 33) Payload/MyApp.app: object file format unrecognized, invalid, or unsuitable 

Para resolver esto, establezco la variable así:

 me$ export CODESIGN_ALLOCATE=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate 

Y luego volví a ejecutar mi command:

 me$ /usr/bin/codesign -f -v -s "iPhone Distribution: Some Company, Inc" --resource-rules "Payload/MyApp.app/ResourceRules.plist" --entitlements Entitlements.plist "Payload/MyApp.app" 

Y voila! Todo funcionó correctamente con el nuevo codeign_allocate

Cuando se busca, esta es la primera pregunta que se muestra en el flujo de astackmiento. Así que quería actualizar con la última aplicación iResign mac, lo que hace que el trabajo sea muy fácil con GUI en lugar de commands en la terminal.

renuncio

iReSign permite que los files de packages de aplicaciones iDevice (.ipa) se firmen o renuncien con un certificate digital de Apple para su distribución. También puede crear packages de aplicaciones de iDevice firmadas (.ipa) desde files .xcarchive. Esta herramienta está dirigida a los usuarios de las empresas, para el deployment empresarial, cuando la persona que firma la aplicación es diferente a la persona (s) que la desarrolla.

Cómo utilizar

iReSign le permite volver a firmar cualquier file ipa no encryption con cualquier certificate para el que tenga la key privada correspondiente. iResign también puede crear un ipa-file firmado de un file xcarchive.

Arrastre su file .ipa o .xcarchive sin firmar al cuadro superior, o use el button Examinar.

Ingrese su nombre completo de certificate desde el Acceso a los llaveros, por ejemplo, "Desarrollador de iPhone: Nombre Apellido (XXXXXXXXXX)" en el cuadro inferior.

¡Haz clic en ReSign! y espera. El file renunciado se saveá en la misma carpeta que el file original.

Fuente: https://github.com/maciekish/iReSign