2009-08-14 8 views
2

J'utilise XCode pour construire une application iPhone, où je voudrais traiter à l'extérieur le fichier plist info de la même manière que l'étape de construction XCode illustré ci-dessous neComment lancer com.apple.tools.info-plist-utility?

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 

Cet extrait du journal de la construction se réfère à un utilitaire com.apple.tools.info-plist, que je rassemble de diverses sources sur le net, est un utilitaire XCode interne.

Est-il possible d'exécuter l'utilitaire com.apple.tools.info-plist depuis une ligne de commande?

Répondre

3

Vous pouvez utiliser un outil appelé PlistBuddy, /usr/libexec/PlistBuddy, consultez sa page de manuel.

Mais vous devrez également convertir le plist en un fichier plist binaire. Cela peut être fait comme ceci dans un script de construction

plutil -convert binary1 "$TARGET_BUILD_DIR/$INFOPLIST_PATH" 
2

La réponse "plutil" est un bon début. Malheureusement, le processus de construction de Xcode fait plus dans le fichier Info.plist que convertir en binaire, par exemple sur mon système, il ajoute dans les domaines:

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

Selon le Apple documentation vous ne sont pas censés mettre en place certaines de ces valeurs vous-même:

Version minimumOS

MinimumOSVersion (chaîne). Lorsque vous créez une application iPhone , Xcode note le système d'exploitation cible (déterminé par la sélection Base SDK) en tant que propriété MinimimOSVersion . Ne pas spécifier vous-même cette propriété dans le fichier Info.plist ; c'est une propriété écrite par le système . Lorsque vous publiez votre application dans l'App Store , le magasin indique la version du système d'exploitation iPhone sur laquelle votre application peut s'exécuter en fonction de cette propriété. Il est équivalent à la propriété LSMinimumSystemVersion sur Mac OS X.

Je suis en cours d'exécution dans toutes sortes de problèmes en essayant de re-signer ma demande dans le cadre de mon processus de construction personnalisé.

+0

OK, merci pour la réponse. – TheFrancisOne

Questions connexes