iphone - resueltos - Cómo leer información de plist(ID de paquete) desde un script de shell
shell script ejemplos (4)
Me gustaría escribir un script que pueda leer información como Bundle Identifier o tal vez el número de versión de Info.plist de la aplicación. Xcode no parece dar esa información en sus variables de entorno. ¿Hay alguna otra manera de conseguirlos en sh / bash?
Hay un programa de línea de comandos instalado en la Mac llamado PlistBuddy que puede leer / escribir valores en un plist. Escriba ''man PlistBuddy'' en la Terminal para obtener más información.
Solo puedes leer el archivo directamente desde el producto construido. Sin embargo, si observa el archivo info.plist en el editor, verá las propias variables de shell. Por ejemplo, el ID del paquete tiene el siguiente comando de shell:
com.yourcompany.${PRODUCT_NAME:rfc1034identifier}
Puede llamar a ${PRODUCT_NAME:rfc1034identifier}
en cualquier script de shell que Xcode ejecute y debería llenar.
Usando PlistBuddy, una aplicación de Apple, es posible asignar la cadena a var como esta:
#!/bin/sh
BUNDLE_ID=$(/usr/libexec/PlistBuddy -c "Print :CFBundleIdentifier" "${BUILD_ROOT}/${INFOPLIST_PATH}")
Donde BUILD_ROOT e INFOPLIST_PATH son variables establecidas por Xcode si ejecuta este script en una fase de compilación "Ejecutar script".
El comando defaults
puede leer / escribir en cualquier archivo plist, solo dale una ruta sin la extensión .plist
:
$ defaults read /Applications/Preview.app/Contents/Info CFBundleIdentifier
com.apple.Preview
Esto extrae el valor de CFBundleIdentifier
directamente del archivo Info.plist
del paquete de la aplicación.
Los valores predeterminados también funcionan con errores binarios sin ningún paso adicional.