Pregunta

Me gustaría escribir un script que puede leer información como identificador de paquete o tal vez el número de versión de la Info.plist de la aplicación. Xcode no parece dar esa información en ella de las variables de entorno. ¿Hay alguna otra manera de conseguirlos en sh / bash?

¿Fue útil?

Solución

El comando defaults puede leer / escribir en cualquier archivo plist, sólo le dan un camino menos la extensión .plist:

$ defaults read /Applications/Preview.app/Contents/Info CFBundleIdentifier

com.apple.Preview

Esto empuja el valor CFBundleIdentifier directamente del archivo Info.plist del paquete de aplicaciones.

predeterminados también trabaja con plists binarios sin ningún paso adicional.

Otros consejos

El uso de PlistBuddy, una aplicación por Apple, es posible asignar la cadena a var como esto:

#!/bin/sh   
BUNDLE_ID=$(/usr/libexec/PlistBuddy -c "Print :CFBundleIdentifier" "${BUILD_ROOT}/${INFOPLIST_PATH}")

Cuando BUILD_ROOT y INFOPLIST_PATH son variables definidas por Xcode si ejecuta este script en una fase de construcción "Ejecutar script".

Usted sólo puede leer el archivo directamente desde el producto de edificio. Sin embargo, si nos fijamos en el archivo info.plist sí en el editor verá las variables de shell mismos. P.ej. el ID de paquete se tiene el siguiente comando shell:

com.yourcompany.${PRODUCT_NAME:rfc1034identifier}

Se puede llamar ${PRODUCT_NAME:rfc1034identifier} en cualquier script de shell que se ejecuta Xcode y debe llenar.

Hay un programa de línea de comando instalado en el Mac llamada PlistBuddy que puede leer los valores / escritura en un plist. Tipo 'hombre PlistBuddy' en la Terminal para obtener más información.

Este comando funcionó para mí:

/usr/libexec/PlistBuddy -c 'print ":CFBundleIdentifier"' Info.plist
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top