2012-06-12 15 views
18

Estoy encontrando muchos artículos en la web donde se implica que usted puede ver los contenidos del archivo .mobileprovision en un editor de texto. Por ejemplo, este Urban Airship post:¿Cambió Apple el formato de archivo .mobileprovision, y cómo puedo ver el formato actual?

Cuando las notificaciones push están habilitados para una aplicación, la clave APS-entorno aparecerá en el archivo .mobileprovision especificando el archivo de suministro:

<key>Entitlements</key> 
<dict> 
    <key>application-identifier</key> 
... 

Sin embargo, el mobilprovision Los archivos que tengo (obtenidos en los últimos días) contienen 466 1/2 filas de 8 grupos de 4 dígitos hexadecimales (por ejemplo, 4851 3842 4176 2845 0a09 01a2 404d 4382). ¿Cómo puedo ver este tipo de archivo?

+1

Para los curiosos, los primeros bytes decodificados a ASCII a 'HQ8B Av (E' luego la cabeza en caracteres de control .. – sarnold

Respuesta

14

Está utilizando un editor de texto que es demasiado inteligente para usted: D.

Su editor descubre que el archivo en realidad es binario y lo muestra como un volcado hexadecimal; por ejemplo, Sublime 2 lo hace de esa manera. Abra el mismo archivo usando TextEdit. Verá un par de líneas de binary garbledegock y luego algo de texto sin formato (XML) que debería contener la información que está buscando.

Sin embargo, haga no edite ese archivo usando TextEdit, que lo hará inutilizable!

+1

Sí estoy usando Sublime 2! No he estado usando desde hace tanto tiempo y no me di cuenta de que haría este tipo de cosas ... TextEdit muestra el contenido XML ... gracias – jlarson

16

Si quieren Sublime Text 2 para poder leer los perfiles .mobileprovision Este es el ajuste

"enable_hexadecimal_encoding": false, 
34

Perfiles de datos están codificados. Decodificarlos y examinar el XML que puede utilizar esta vía línea de comando:

security cms -D -i #{@profilePath}

donde #{@profilePath} es la ruta de archivo para su archivo .mobileprovision.

Un ejemplo más completo de Ruby es:

require 'plist' 
profile = `security cms -D -i #{@profilePath}` 
xml = Plist::parse_xml(profile) 
appID = xml['Entitlements']['application-identifier'] 
+0

Gracias por el fragmento de código! Funciona bien – KrauseFx

+0

También quiero decir doble gracias. Muy útil. – threeve

+0

Mi placer, contento ¡esto ayudó! –

6

Puede usar OpenSSL para dar salida a los contenidos del perfil firmado.

openssl smime -in /path/to/your.mobileprovision -inform der -verify 
Cuestiones relacionadas