2011-09-27 15 views
23

¿Es posible realizar la función de validación local para aplicaciones iOS (que se puede ver en el Organizador en archivos) a través de la línea de comandos?Cómo realizar la validación de la aplicación iOS desde la línea de comandos

ACTUALIZACIÓN: Solo para aclarar: el objetivo aquí es convertir eventualmente esta validación en parte del proceso de integración continua para mis aplicaciones de iOS.

+1

La herramienta de validación por desgracia se ha eliminado a partir de Xcode 7. en Terminal: hallazgo 'Xcode de selección -nombre -p' Validación – Shazron

Respuesta

23

En el pasado he utilizado este comando:

xcrun -sdk iphoneos Validation /path/to/MyApp.app or /path/to/MyApp.ipa 

Esto se compruebe la codesigning, etc. Las dimensiones del icono No estoy seguro de si la aplicación Xcode Organizador o cargador de aplicaciones hacer cualquier otra validación, además a esta herramienta, y la herramienta en sí tiene cero ayuda o banderas de línea de comando que puedo encontrar.

ACTUALIZACIÓN:

Esta pregunta me ha llevado a cavar un poco más profundo. Ejecución de la herramienta strings revela los siguientes parámetros:

-verbose 
-upload 
-warnings 
-errors 
-online 

La opción -online parecer validará el binario para la primera aplicación disponible en iTunes Connect, pero no he encontrado la manera de pasar un nombre de usuario/contraseña para el comando. Sin embargo, supongo que para la integración continua probablemente solo quiera la validación local.

+0

impresionante. Haré algunas pruebas para ver, ya que el nuevo SDK proporciona cierta validación adicional (obviamente estoy siendo vago ya que todavía está bajo NDA). – dtuckernet

+1

También puede echar un vistazo a los otros comandos disponibles en/

/Platforms/iPhoneOS.platform/Developer/usr/bin –

+1

alguna idea de cómo distribuir una IPA a algo distinto de la primera aplicación disponible en iTunes Connect ? Intenté hacer con las opciones 'en línea' y, por supuesto, falló la validación porque los identificadores del paquete eran diferentes. Intenté sin la opción 'online' y el comando finalizó muy rápido (segundos), no dio salida y nunca subí la aplicación a iTunes. – marklar

27

Puede validar desde la línea de comandos con el comando:

xcrun -sdk iphoneos Validation /path/to/App.{app or ipa} 

Es un poco confuso lo que comprueba que realiza, pero se supone que lo hace como mínimo de firma de código y el icono dimensiones.

Además de la validación locales, es posible llevar a cabo la validación en línea (pero sólo para paquetes IPA):

xcrun -sdk iphoneos Validation -verbose -online /path/to/App.ipa 

para que esto funcione es necesario tener sus iTunes Connect credenciales almacenadas en una entrada especial en tu llavero Para crear esta entrada:

  1. abierto el acceso a llaves aplicación;
  2. crear un nuevo elemento contraseña (Archivo>Nueva elemento contraseña ...)
  3. llavero Nombre del artículo: Xcode:itunesconnect.apple.com
  4. Nombre de cuenta/contraseña: Sus credenciales para iTunes Connect

validación en línea parece ser bastante rudo, pero realiza todos los controles que de otro modo se realizarían validando un archivo desde la ventana del Organizador en Xcode. Lamentablemente, no parece establecer un código de salida distinto de cero en la falla, lo que significa raspado de salida para detectar errores. Mi heurística actual para detectar fallas es la presencia de cualquier salida después de la línea Performing online validation....

Dada la falta de documentación, es casi seguro que no es compatible.

18

Si desea sólo para validar el archivo IPA firmado, no hay herramienta para hacerlo altool

$ /Applications/Xcode.app/Contents/Applications/Application\ Loader.app/Contents/Frameworks/ITunesSoftwareService.framework/Support/altool -h 
Copyright (c) 2009-2015, Apple Inc. Version 1.1 

Usage: altool --validate-app -f file -t platform -u username [-p password] 
     altool --upload-app -f file -t platform -u username -p password 

-f, --file       Filename. 
-t, --type       Type/Platform: osx, ios. 
-u, --username      Username. Required to connect for validation and upload. 
-p, --password      Password. Required if username specified. Password is read from stdin if one is not supplied. 
            May use @keychain: or @env: prefixes followed by the keychain or environment variable lookup name. 
            e.g. -p @env:SECRET which would use the value in the SECRET environment variable. 

-v, --validate-app     Validate an app archive. The username, password, and file path to app archive are required. 
    --upload-app     Uploads the given app archive. The username, password, and file path to app archive are required. 
    --output-format [xml | normal] 'xml' displays error output in a structured format; 'normal' outputs in an unstructured format (default) 

-h, --help       Display this output. 

Por ej.

/Applications/Xcode.app/Contents/Applications/Application\ Loader.app/Contents/Frameworks/ITunesSoftwareService.framework/Support/altool -v -f APP.ipa -u [email protected] -p password 
+1

Realmente útil. Gracias una tonelada. –

+0

En xcode 7.3.1, osx 10.11.6, esto no funcionó para mí, por desgracia. Tengo errores 1.My .xcarchive produjo "NSLocalizedDescription = No se puede procesar la aplicación en este momento debido a un error general, NSLocalizedFailureReason = operación de iTunes Store falló". ; 2.Mi ipa produjo mucho más texto de error, con ese error y me quejé de mi equipo/paquete listado correctamente: "Este valor debe ser una cadena que comience con su TEAMID, seguido de un punto '.', Seguido del identificador del paquete. "" – AnneTheAgile

+0

Esto significa que usted tiene errores en su IPA que debe arreglar ellos, pero la herramienta en sí funciona como se esperaba;). –

2

Puede validar aplicación con la ayuda de comandos altool como se muestra a continuación:

./altool --validate aplicación -f < 'ipaFile'>

Cuestiones relacionadas