Ce document décrit le format des documents de l'application Iceberg.
Discussion :
Un document Iceberg est un fichier Property List. Son contenu peut être édité sans Iceberg, avec un éditeur de texte
ou bien l'application PropertyList Editor.app
.
Un document Iceberg est globalement architecturé comme la liste Package et metapackages.
Project
|
Le premier niveau de la hiérarchie décrit l'objet Projet.
Discussion :
Le jeton Name
est pour le moment uniquement utilisé pour avoir un nom pour l'objet racine de
la hiérarchie des packages et metapackages.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Hierarchy</key> <dict> </dict> <key>Name</key> <string>Project</string> <key>Settings</key> <dict> </dict> </dict> </plist> |
|
Ce dictionnaire contient les réglages du projet. Ils peuvent être édités
avec le panneau Configuration
.
N/A
Exemple :
<key>10.1 Compatibility</key> <true/> <key>Build Path</key> <string>build</string> <key>Build Path Type</key> <integer>2</integer> <key>Comment</key> <string></string> <key>Remove .DS_Store</key> <true/> <key>Remove .pbdevelopment</key> <true/> <key>Remove CVS</key> <false/> |
|
Ce dictionnaire décrit soit un package soit un metapackage. L'élément racine de la hiérarchie de projet est aussi un composant.
Discussion :
<key>Attributes</key> <dict> </dict> <key>IFPkgFlagPackageSelection</key> <integer>0</integer> <key>Name</key> <string>Iceberg</string> <key>Status</key> <integer>1</integer> <key>Type</key> <integer>1</integer> |
|
Ce dictionnaire décrit les attributs d'un composant.
Discussion :Deux modès d'attributs sont utilisés pour chaque type de composant :
Package
<key>Files</key> <dict> </dict> <key>Documents</key> <dict> </dict> <key>Scripts</key> <dict> </dict> <key>Plugins</key> <dict> </dict> <key>Settings</key> <dict> </dict> |
<key>Components</key> <dict> </dict> <key>Documents</key> <dict> </dict> <key>Scripts</key> <dict> </dict> <key>Plugins</key> <dict> </dict> <key>Settings</key> <dict> </dict> |
|
Ce dictionnaire décrit les fichiers qui seront présent dans l'archive du package et les options utilisées pour créer cette même archive.
Discussion :
Le jeton IFPkgFlagDefaultLocation
doit pointer sur un dossier de la hiérarchie de fichier quand le package n'est pas un
package qui a été importé
L'opération de split est réalisée par l'outil /Developer/Tools/SplitForks
.
<key>Compress</key> <true/> <key>Hierarchy</key> <dict> </dict> <key>IFPkgFlagDefaultLocation</key> <string>/</string> <key>Imported Package</key> <false/> <key>Package Path</key> <string></string> <key>Split Forks</key> <true/> |
|
Ce dictionnaire décrit un objet de la hiérarchie des fichiers.
Discussion :
<key>Children</key> <array/> <key>GID</key> <integer>80</integer> <key>Path</key> <string>Utilities</string> <key>Path Type</key> <integer>0</integer> <key>Privileges</key> <integer>509</integer> <key>Type</key> <integer>1</integer> <key>UID</key> <integer>0</integer> |
|
Ce dictionnaire décrit une règle de recherche d'un élément du système de fichier.
Discussion :Les règles de recherche sont utilisées pour construire le fichier TokenDefinitions.plist et le tableau IFPkgPathMappings du fichier Info.plist. Les règles de recherche permettent de localiser l'emplacement d'une ancienne version d'un fichier ou bundle.
Exemple :
<key>Status</key> <true/> <key>Name</key> <string>Untitled Rule</string> <key>Settings</key> <dict> </dict> |
|
Ce dictionnaire décrit les règlages d'une r`gle de recherche.
Discussion :Il existe cinq types de règles :
CheckPath
CommonAppSearch
LaunchServicesLookup
BundleIdentifierSearch
BundleVersionFilter
|
Ce dictionnaire décrit tous les documents utilisés pour personnaliser le Programme d'installation quand le composant est installé.
Discussion :N/A
Exemple :
<key>Background Image</key> <dict> </dict> <key>License</key> <dict> </dict> <key>ReadMe</key> <dict> </dict> <key>Welcome</key> <dict> </dict> |
|
Ce dictionnaire décrit si et comment une image de fond personnalisée sera affichée par le Programme d'installation quand le composant est installé.
Discussion :L'image de fond personnalisée ne sera affichée que si le composant est le composant racine du projet.
Exemple :
<key>IFPkgFlagBackgroundAlignment</key> <integer>4</integer> <key>IFPkgFlagBackgroundScaling</key> <integer>1</integer> <key>Mode</key> <integer>0</integer> <key>Path</key> <string></string> <key>Path Type</key> <integer>1</integer> |
|
Ce dictionnaire décrit si et quelle licence utilisateur doit être proposée à l'utilisateur quand le composant est installé.
Discussion :Les licences ne seront affichés que si le composant est le composant racine du projet.
Exemple :
<key>International</key> <dict> <key>Keywords</key> <dict/> <key>Mode</key> <integer>0</integer> <key>Path</key> <string></string> <key>Path Type</key> <integer>1</integer> <key>Template</key> <string></string> </dict> |
|
Ce dictionnaire décrit si un message Ouvrez-moi personnalisé doit être affiché ou non.
Discussion :Le message Ouvrez-moi ne sera affiché que si le composant n'est pas un sous-composant d'un metapackage.
Exemple :
<key>International</key> <dict> <key>Mode</key> <integer>0</integer> <key>Path</key> <string></string> <key>Path Type</key> <integer>1</integer> </dict> |
|
Ce dictionnaire décrit si un message d'introduction personnalisé doit être affiché ou si celui par défaut doit être utilisé.
Discussion :Le message d'introduction ne sera affiché que si le composant n'est pas un sous-composant d'un metapackage.
Exemple :
<key>International</key> <dict> <key>Mode</key> <integer>0</integer> <key>Path</key> <string></string> <key>Path Type</key> <integer>1</integer> </dict> |
|
Ce dictionnaire décrit les plugins qui seront utilisés pour personnaliser le processus d'installation.
Discussion :Les Plugins ne sont pas utilisés par Installer.app sur les versions de Mac OS X antérieures à Mac OS X 10.4.
Templates :
<dict> <key>PluginsList</key> <array> <dict> <key>Path</key> <string>Introduction</string> <key>Type</key> <integer>0</integer> </dict> <dict> <key>Path</key> <string>/This/is/a/path</string> <key>Path Type</key> <integer>2</integer> <key>Status</key> <true/> <key>Type</key> <integer>1</integer> </dict> <dict> <key>Path</key> <string>ReadMe</string> <key>Type</key> <integer>0</integer> </dict> <dict> <key>Path</key> <string>License</string> <key>Type</key> <integer>0</integer> </dict> <dict> <key>Path</key> <string>Target</string> <key>Type</key> <integer>0</integer> </dict> <dict> <key>Path</key> <string>PackageSelection</string> <key>Type</key> <integer>0</integer> </dict> <dict> <key>Path</key> <string>Install</string> <key>Type</key> <integer>0</integer> </dict> <dict> <key>Path</key> <string>FinishUp</string> <key>Type</key> <integer>0</integer> </dict> </array> </dict> |
|
Ce dictionnaire décrit les scripts qui vont être utilisés pour personnaliser le processus d'installation et les ressources additionnelles nécessaires à cela.
Discussion :Les pré-requis d'installation ne sont supportés qu'à partir de Mac OS X 10.3.
Exemple :Package
<dict> <key>Additional Resources</key> <dict> </dict> <key>Installation Scripts</key> <dict> </dict> <key>Requirements</key> <array> </array> </dict> /PRE> |
|
Ce dictionnaire décrit les ressources additionnelles qui seront ajoutées dans le dossier Resources du composant.
Discussion :
C'est ici que vous devez ajouter les scripts VolumeCheck
ou InstallationCheck
si nécessaire.
<key>International</key> <array> <dict> <key>Path</key> <string>/Users/stephane/Desktop/SomeFile.txt</string> <key>Path Type</key> <integer>1</integer> <key>Status</key> <true/> </dict> </array> |
|
Ce dictionnaire décrit les scripts d'installation à ajouter au composant.
Discussion :
Les scripts InstallationCheck
et VolumeCheck
ne sont pas gérés par ce dictionnaire. Si vous
souhaitez les utiliser, il faudra les ajouter en tant que ressources internationales additionnelles.
<key>IFInstallationScriptsPostflight</key> <dict> <key>Path</key> <string></string> <key>Path Type</key> <integer>1</integer> <key>Status</key> <false/> </dict> <key>IFInstallationScriptsPostinstall</key> <dict> <key>Path</key> <string></string> <key>Path Type</key> <integer>1</integer> <key>Status</key> <false/> </dict> <key>IFInstallationScriptsPostupgrade</key> <dict> <key>Path</key> <string></string> <key>Path Type</key> <integer>1</integer> <key>Status</key> <false/> </dict> <key>IFInstallationScriptsPreflight</key> <dict> <key>Path</key> <string></string> <key>Path Type</key> <integer>1</integer> <key>Status</key> <false/> </dict> <key>IFInstallationScriptsPreinstall</key> <dict> <key>Path</key> <string></string> <key>Path Type</key> <integer>1</integer> <key>Status</key> <false/> </dict> <key>IFInstallationScriptsPreupgrade</key> <dict> <key>Path</key> <string></string> <key>Path Type</key> <integer>1</integer> <key>Status</key> <false/> </dict> |
|
Ce dictionnaire décrit les pré-requis d'installation du composant.
Discussion :Les pré-requis d'installation ne sont supportés qu'à partir de Mac OS X 10.3.
Exemple :
<dict> <key>AlertDialog</key> <dict> <key>International</key> <dict> <key>MessageKey</key> <string>Version is too old</string> <key>TitleKey</key> <string>Incorrect version</string> </dict> </dict> <key>LabelKey</key> <string>Sample requirement</string> <key>Level</key> <integer>0</integer> <key>SpecArgument</key> <string>fr.whitebox.pkg.iceberg</string> <key>SpecProperty</key> <string>IFMajorVersion</string> <key>SpecTag</key> <integer>4</integer> <key>SpecType</key> <string>package</string> <key>Status</key> <true/> <key>TestObject</key> <integer>10</integer> <key>TestOperator</key> <string>>=</string> </dict> |
|
Ce dictionnaire décrit les règlages des composants.
Discussion :
Il y'a deux formats possibles selon qu'il s'agisse d'un package ou d'un metapackage. Les metapackages n'ont pas d'Options
.
Package
<key>Description</key> <dict> </dict> <key>Display Information</key> <dict> </dict> <key>Options</key> <dict> </dict> <key>Version</key> <dict> </dict> |
<key>Description</key> <dict> </dict> <key>Display Information</key> <dict> </dict> <key>Version</key> <dict> </dict> |
|
Ce dictionnaire est utilisé pour construire les fichiers .info et Description.plist du composant.
Discussion :
Les informations IFPkgDescriptionVersion
et IFPkgDescriptionDeleteWarning
ne sont pas utilisées par le
Programme d'installation.
<key>International</key> <dict> <key>IFPkgDescriptionDeleteWarning</key> <string></string> <key>IFPkgDescriptionDescription</key> <string></string> <key>IFPkgDescriptionTitle</key> <string>Iceberg</string> <key>IFPkgDescriptionVersion</key> <string>1.0</string> </dict> |
|
Ce dictionnaire décrit les informations affichées par le Finder dans la fenêtre Information et dans les fenêtres du Finder.
Discussion :N/A
Exemple :
<key>CFBundleGetInfoString</key> <string>Iceberg 1.0 Copyrights (c) 2004 Stéphane Sudre</string> <key>CFBundleIdentifier</key> <string>fr.whitebox.pkg.Iceberg</string> <key>CFBundleName</key> <string>Iceberg</string> <key>CFBundleShortVersionString</key> <string>1.0</string> <key>CFBundleIconFile</key> <string></string> <key>CFBundleIconFile Path Type</key> <integer><1/integer> |
|
Ce dictionnaire décrit les options d'un package.
Discussion :Certaines options ne sont pas supportées par Mac OS X 10.1. Iceberg fera de son mieux pour positionner les valeurs les plus adéquates pour le format 10.1.
Exemple :
<key>IFPkgFlagAllowBackRev</key> <false/> <key>IFPkgFlagAuthorizationAction</key> <integer>2</integer> <key>IFPkgFlagFollowLinks</key> <false/> <key>IFPkgFlagInstallFat</key> <false/> <key>IFPkgFlagIsRequired</key> <false/> <key>IFPkgFlagOverwritePermissions</key> <false/> <key>IFPkgFlagRelocatable</key> <false/> <key>IFPkgFlagRestartAction</key> <integer>0</integer> <key>IFPkgFlagRootVolumeOnly</key> <true/> <key>IFPkgFlagUpdateInstalledLanguages</key> <false/> |
|
Ce dictionnaire décrit la version majeures et mineure d'un composant.
Discussion :N/A
Modèle :
<key>IFMajorVersion</key> <integer>1</integer> <key>IFMinorVersion</key> <integer>0</integer> |
|