Domanda

Sto usando XCode per creare un'applicazione iPhone, dove mi piacerebbe elaborare esternamente il file plist informazioni nello stesso modo come il passaggio di generazione XCode mostrato di seguito fa

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

Questo estratto dal log di compilazione si riferisce ad un com.apple.tools.info-plist-utility, che ho capito da varie fonti giro per la rete, è un programma di utilità XCode interna.

E 'possibile eseguire il com.apple.tools.info-plist-utility da riga di comando?

È stato utile?

Soluzione

È possibile utilizzare uno strumento chiamato PlistBuddy, /usr/libexec/PlistBuddy, dare un'occhiata alla sua pagina man.

Ma sarà anche necessario per convertire il plist di nuovo in un file plist binario. Questo può essere fatto come questo in uno script di build

plutil -convert binary1 "$TARGET_BUILD_DIR/$INFOPLIST_PATH"

Altri suggerimenti

La risposta "plutil" è un ottimo inizio. Purtroppo il processo di Xcode accumulo fa più al file Info.plist di convertirlo in binario, per esempio sul mio sistema si aggiunge nei campi:

-MinimumOSVersion
-PlatformName
-CFBundleExecutable
-SDKName
-CFBundleResourceSpecification
-CFBundleSupportedPlatforms

Secondo la documentazione di Apple non si dovrebbe impostare alcuni di questi valori da soli:

  

MinimumOSVersion

     

MinimumOSVersion (String). Quando tu   creare un'applicazione iPhone, Xcode   prende atto del sistema operativo di destinazione (come determinato da   la selezione SDK Base) come il   immobili MinimimOSVersion. Non   specificare questa proprietà se stessi nella   file Info.plist; è un   Sistema-scritta di proprietà. Quando tu   pubblicare l'applicazione per l'App   Store, il negozio indica l'iPhone   il rilascio del sistema operativo su cui l'applicazione   può essere eseguito in base a questa proprietà. È   equivalente alla   Proprietà LSMinimumSystemVersion su Mac   OS X.

Sono in esecuzione in tutti i tipi di problemi cercando di ri-firmare la mia applicazione come parte del mio processo di generazione personalizzata.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top