Cómo realizar la validation de la aplicación de iOS desde la command-line

¿Es posible realizar la validation local para aplicaciones iOS (que se puede ver en el Organizador bajo Archivos) a través de la línea de command?

ACTUALIZACIÓN: Solo para aclarar: el objective aquí es hacer que esta validation sea parte del process de continuous integration para mis aplicaciones iOS.

En el pasado he usado este command:

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

Esto comprobará el código, las dimensiones del icono, etc. No estoy seguro si la aplicación Xcode Organizer o Application Loader realiza otra validation además de esta herramienta, y la herramienta en sí misma tiene cero ayuda o indicadores de línea de command que puedo encontrar.

ACTUALIZACIÓN :

Esta pregunta me ha llevado a cavar un poco más profundo. Al ejecutar la herramienta de strings , se muestran los siguientes modificadores:

 -verbose -upload -warnings -errors -online 

La opción -online aparentemente validará el binary para la primera aplicación disponible en iTunes connect, pero no he descubierto cómo pasar un nombre de usuario / contraseña al command. Sin embargo, supongo que para una continuous integration, probablemente solo desee la validation local.

Puede validar desde la línea de command utilizando el command:

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

Es un poco confuso qué controles realiza, pero presumiblemente hace como mínimo el código de firma y las dimensiones del ícono.

Además de la validation local, es posible realizar la validation en línea (pero solo para packages IPA):

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

Para que esto funcione, necesita tener sus cnetworkingenciales de iTunes Connect almacenadas en una input especial en su llavero. Para crear esta input:

  1. Abra la aplicación de acceso a llavero ;
  2. Crear un nuevo elemento de contraseña ( Archivo > Nuevo elemento de contraseña … )
  3. Nombre del elemento de llavero: Xcode:itunesconnect.apple.com
  4. Nombre de la count / contraseña: sus cnetworkingenciales para iTunes Connect

La validation en línea parece ser bastante aproximada, pero realiza todas las comprobaciones que de otro modo se realizarían validando un file desde la window del Organizador en Xcode. Lamentablemente, no parece establecer un código de salida distinto a cero en caso de 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 Performing online validation... línea Performing online validation...

Dada la falta de documentation, casi seguramente no es compatible.

Si solo quieres validar el file ipa firmado, hay una 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. Requinetworking to connect for validation and upload. -p, --password Password. Requinetworking 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. eg -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 requinetworking. --upload-app Uploads the given app archive. The username, password, and file path to app archive are requinetworking. --output-format [xml | normal] 'xml' displays error output in a structunetworking format; 'normal' outputs in an unstructunetworking format (default) -h, --help Display this output. 

Por ejemplo,

  /Applications/Xcode.app/Contents/Applications/Application\ Loader.app/Contents/Frameworks/ITunesSoftwareService.framework/Support/altool -v -f APP.ipa -u itunesconnect@user.com -p password 

Puede validar la aplicación con la ayuda del command altool como se muestra a continuación:

./altool –validate-app -f <'ipaFile'>