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?

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top