Question

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 de XCode ci-dessous fait

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 fait référence à un com.apple.tools.info-plist-utilité, que je déduis de diverses sources autour du filet, est un utilitaire XCode interne.

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

Était-ce utile?

La solution

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

Mais vous aurez aussi besoin de convertir le plist en un fichier plist binaire. Cela peut se faire comme ça dans un script de compilation

plutil -convert binary1 "$TARGET_BUILD_DIR/$INFOPLIST_PATH"

Autres conseils

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

D'après le documentation Apple vous n'êtes pas censé mettre en place certaines de ces valeurs vous-même:

  

MinimumOSVersion

     

MinimumOSVersion (String). Lorsque vous   construire une application iPhone, Xcode   note le système d'exploitation cible (tel que déterminé par   la sélection du SDK de base) comme   propriété MinimimOSVersion. Ne pas   préciser cette propriété vous-même dans le   fichier Info.plist; c'est un   système écrit propriété. Lorsque vous   publier votre application à l'App   Store, le magasin indique l'iPhone   OS version sur laquelle votre application   peut fonctionner à partir de cette propriété. Il est   équivalente à la   LSMinimumSystemVersion propriété 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é.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top