Estoy tratando de simplificar el proceso de compilación-> archivar-> enviar para la publicación de aplicaciones iOS. Tenemos más de 50 aplicaciones móviles que tienen un marco casi idéntico, pero con diferentes ilustraciones y configuraciones.Lote Creación y archivo de aplicaciones de iOS a través de la Terminal
Normalmente cargaría cada proyecto en xcode 4.2 y compilar-> archivar-> enviar de la manera habitual con la GUI de xcode, pero ahora tenemos más de 50 aplicaciones y este proceso es muy tedioso cada vez que sacamos una actualización .
Dicho esto, estoy tratando de acelerar este proceso con el uso de una función de shell. Hice un montón de investigación y encontró que xcodebuild (Véase la respuesta de Reid) debería funcionar, sin embargo la opción Archivo no está funcionando como me sale el siguiente error:
unsupported build action 'archive'
así que escribí lo siguiente:
# $1 should be a date like: 2012-07-17
# $2 should be a time like: 10.31AM
# $mybase will be the current directory at the time the function was called
# so make sure to cd into the folder containing the xcode project folders first
function xcodeArchive {
mkdir ~/Library/Developer/Xcode/Archives/$1
mybase=$PWD
for x in `ls`
do
mkdir ~/Library/Developer/Xcode/Archives/$1/$x
mkdir ~/Library/Developer/Xcode/Archives/$1/$x/dSYMs
mkdir ~/Library/Developer/Xcode/Archives/$1/$x/Products
mkdir ~/Library/Developer/Xcode/Archives/$1/$x/Products/Applications
cd $mybase/$x
xcodebuild
#read -p "Press [Enter] to continue"
cd $mybase/$x
cp $x/$x-Info.plist ~/Library/Developer/Xcode/Archives/$1/$x/Info.plist
cp -r build/Release-iphoneos/$x.app.dSYM ~/Library/Developer/Xcode/Archives/$1/$x/dSYMs/$x.app.dSYM
cp -r build/Release-iphoneos/$x.app ~/Library/Developer/Xcode/Archives/$1/$x/Products/Applications/$x.app
cd ~/Library/Developer/Xcode/Archives/$1/
mv $x $x\ $1\ $2.xcarchive
cd $mybase
done
}
export -f xcodeArchive
Puse esto en mi .bash_profile y todo funciona correctamente como era de esperar, excepto que no estoy copiando el "Info.plist" correcto y no puedo averiguar dónde copiarlo o cómo generarlo. Así que ahora estoy atascado.
Xcode reconocerá los archivos, pero los enumera en "Esquema desconocido" y "Archivo sin nombre" en el organizador.
Cualquier ayuda con respecto a ahora para obtener la Info.plist correcta es muy apreciada.
También doy la bienvenida a recomendaciones sobre cómo mejorar el script y/o una forma más eficiente de construir por lotes + archivar estas aplicaciones de iOS.
Nota:
Soy incapaz de mejorar más allá de Xcode 4.2 como que requiere (como yo lo entiendo) OS X 10.7 o versiones posteriores, que no soy capaz de obtener todavía (ordenador de la empresa) .
Todavía soy un principiante bash/shell, así que me disculpo por cualquier código/práctica feo anterior.
Además, esto es para el envío de aplicaciones oficiales, no para ad-hoc ni nada de eso.
Gracias de nuevo por su ayuda.
De hecho, esa fue mi hallazgo también. Todavía no he encontrado una explicación para esto, pero mi suposición es que es solo cómo se diseñó para ejecutar ese programa, lo que requiere un esquema ... pero eso no explica por qué el mensaje de error devuelto es tan vago ... – mason81
@ mason81 Sin embargo, lo que es espicialmente confuso a medida que avanzas por el camino, es que el comando superior (el error) funciona bien si simplemente estás compilando, no intentando archivar esa construcción para el envío a la tienda. – Tal
oh, de hecho es confuso (y curiosamente interesante). No lo había intentado para fines no archivados, pero solo lo probé y tienes razón, funcionó bien ... ¡Qué extraño! – mason81