Home

Tutorial AppleScript Studio

Chapitre 8 - Gestion du Bundle -

Etape 1 - La p-list existe-t-elle ?

Sous Léopard - xCode 3.0


A l'ouverture de l'application qui nous garanti que le fichier p-list existe ?

En particulier, la première fois que l'application est exécutée sur votre machine. Le fichier ne peut pas déjà dans le dossier "Préférences" de votre propre machine où est sa place. Il est uniquement dans le bundle de distribution de l'application.

Il faut donc que l'application teste son existance dans le dossier Préférences de votre machine, et si c'est la première exécution de l'application fasse la création.


De plus, comment, en distribuant mon application, cette p-list sera aussi distribuée sur votre Macintosh.

Il faut inclure la p-list dans le Bundle.

Un Bundle c'est quoi ? - Toutes applications Macintosh est distribuées dans un dossier qui peut s'ouvrir par clic droit ou "ctrl" clic. Il faut donc, mettre dans ce bundle, notre fichier p-list ou tous autres fichiers d'initialisation pour générer la p-list du dossier préférence.

Donc, il faut vérifier que c'est la première utilisation. Si oui, générer la p-list, qui n'existe pas, ou simplement la copier.

Comment savoir si c'est la première fois. Simple, il suffit de vérifier l'absence du fichier p-list dans votre catalogue. Si absent, la copier du bundle vers vos préférences.

Plusieurs étapes, sachant que le nom d'utilisateur, et de disque dur sont différent d'une machine à l'autre, et que vous avez mis l'application où cela vous plaisait :

  1. Trouver le chemin d'accès de l'application
  2. Trouver le chemin d'accès à votre dossier préférence
  3. Générer les "alias" d'accès
  4. Vérifier l'existence du fichier p-list
  5. Si absent, le transférer du bundle dans vos préférences, ou le créer à partir d'un fichier de données

Voici le code en entier. Code totalement indépendant d'une application à une autre. Ici photo extraite d'une autre application qui m'a servi de modèle pour créer le tutoriel. Je l'ai recopié tel quelle dans MonLogiciel. Vous pouvez faire pareil sans vous préoccuper de ce qu’elle fait. Il suffit d'appeler cette subroutine de "awake from nib" à l'ouverture de la fenêtre principale.


image
Menu Léopard - Photo 10


image
Menu Léopard - Photo 14


Maintenant, si vous voulez savoir ce que fait laPlistExistelle() lisez la suite avec patience.




 1 - Définissons les variables nécessaires

Définissons ces variables en property pour les conserver :


property resourceFolder : missing value
property prefsFileName : "com.legallou.MonLogiciel.plist"
property defaultPrefsFile : missing value
property defaultPrefsFileAlias : missing value

property userPrefsFolder : missing value
property userPrefsFile : missing value

property firstUse : missing value


 2 - Définir le chemin d'accès dans le bundle de l'application

set resourceFolder to ((POSIX file (resource path of main bundle)) as string) & ":"

set defaultPrefsFile to resourceFolder & prefsFileName

Avec le nom de votre fichier préférence affecté par une commande "property".

property prefsFileName : "com.legallou.MonLogiciel.plist"

Résultat :

"chemin d'accès du bundle.......:Resources:com.legallou.MonLogiciel.plist"




 3 - Définir le chemin d'accès à votre dossier préférence

set userPrefsFolder to ((path to preferences folder from user domain) as string)

set userPrefsFile to userPrefsFolder & prefsFileName

Ajoutez le nom de votre fichier préférence défini par la commande "property".

property prefsFileName : "com.legallou.MonLogiciel.plist"

Résultat :

"iMac:Users:alg:Library:Preferences:com.legallou.MonLogiciel.plist"




 4 - Générer les "alias" d'accès

A partir du chemin d'accès en POSIX, le générer en alias conforme au Mac :

set defaultPrefsFileAlias to defaultPrefsFile as alias

Résultat :

-- "iMac:...:com.legallou.MonLogiciel.plist" as alias




 5 - Vérifier l'existence du fichier p-list

if fileExists(userPrefsFile) then.......

Avec le sous-programme :


on fileExists(file_name)
       tell application "Finder" to return exists file file_name
end fileExists



Si absent, deux options :
  1. - Transférez le fichier plist du bundle dans vos préférences
  2. - Créer la plist à partir d'un fichier texte d'initialisation

Le transfert du fichier p-list du bundle dans les préférences est la meilleure solution. En fait la seule si vous avez des paramètres personnels d'initialisation en plus des données utilisateurs.


tell application "Finder" to duplicate (defaultPrefsFile as alias) to folder userPrefsFolder





Mais, mais il manque quelque chose ! Comment met-on un fichier dans le bundle.

Votre p-list a été créé pendant la mise au point dans vos préférences.


image
Menu Léopard - Photo 30


Sélectionnez et glisser-déposer ce fichier sur l'icône du dossier ou dans le dossier "Resources" de xCode.

image
Menu Léopard - Photo 32


Un Pop-Up menu s'ouvre. Cocher "Copy items into destination group's folder"


image
Menu Léopard - Photo 34

Cliquez sur "Add".



Le résultat

image
Menu Léopard - Photo 36



Retrouver votre fichier p-list dans votre dossier bundle..


image
Menu Léopard - Photo 38



Un double click dessus ouvre l'utilitaire "Property List Editor".


image
Menu Léopard - Photo 39


Il a une bonne tête se fichier, et facilement lisible. Notez la date en format court.


Téléchargement

En téléchargement le projet MonLogiciel en version au niveau où nous en sommes du tutoriel MonLogiciel108.zip.







La suite - Création de l'aide associée


Page précédente

Page suivante


Merci de votre visite


UP