¿Cómo puedo ejecutar com.apple.tools.info-plist-utilidad?
Pregunta
Estoy utilizando XCode para construir una aplicación de iPhone, donde me gustaría para procesar externamente el archivo plist información de la misma manera que el paso de generación XCode se muestra a continuación hace
Processing /Users/kte/Projects/build/Debug-iphonesimulator/TestAppGen.app/Info.plist TestAppGen-Info.plist
mkdir /Users/kte/Projects/build/Debug-iphonesimulator/TestAppGen.app
cd /Users/kte/Projects/TestAppGen
setenv PATH "/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
<com.apple.tools.info-plist-utility> TestAppGen-Info.plist -genpkginfo /Users/kte/Projects/build/Debug-iphonesimulator/TestAppGen.app/PkgInfo -expandbuildsettings -format xml -o /Users/kte/Projects/build/Debug-iphonesimulator/TestAppGen.app/Info.plist
Este extracto del registro de generación se refiere a un com.apple.tools.info-plist-utilidad, lo que deduzco de diversas fuentes alrededor de la red, es una utilidad XCode interna.
¿Es posible ejecutar el com.apple.tools.info-plist-utilidad desde una línea de comandos?
Solución
Puede utilizar una herramienta llamada PlistBuddy, /usr/libexec/PlistBuddy
, echar un vistazo a su página de manual.
Pero también se tendrá que convertir el plist de nuevo a un archivo plist binario. Esto se puede hacer como esto en un script de construcción
plutil -convert binary1 "$TARGET_BUILD_DIR/$INFOPLIST_PATH"
Otros consejos
La respuesta "plutil" es un gran comienzo. Por desgracia, el proceso de acumulación de Xcode hace más para el archivo Info.plist que convertir a binario, por ejemplo en mi sistema que añade los campos:
-MinimumOSVersion
-PlatformName
-CFBundleExecutable
-SDKName
-CFBundleResourceSpecification
-CFBundleSupportedPlatforms
De acuerdo con la documentación de Apple no se supone para configurar algunos de estos valores a ti mismo:
MinimumOSVersion
MinimumOSVersion (String). Cuando tú construir una aplicación iPhone, Xcode toma nota de la OS objetivo (como se determina por la selección Base SDK) como el MinimimOSVersion propiedad. No haga especificar esta propiedad usted mismo en el info.plist archivo; es un sistema de propiedad por escrito. Cuando tú publicar la aplicación a la App Tienda, la tienda indica el iPhone versión del SO en la que su solicitud puede funcionar sobre la base de esta propiedad. Está equivalente a la LSMinimumSystemVersion propiedad en Mac OS X.
Me estoy quedando en todo tipo de problemas al tratar de volver a firmar mi solicitud como parte de mi proceso de generación personalizada.