AppleScript & Big Sur

Le
josephb
Bonjour,

Je sais qu'il y a quelques amateurs de scriptage AppleScript dans ce groupe, alors je porte Í  leur connaissance ce que Big Sur va changer pour ceux qui écrivent des applets et les
partagent avec d'autre utilisateurs.
La source est on ne peut plus fiable et comme l'article est en anglais, long et assez technique, je recommande d'en faire une traduction (celle de Google Translate me paraͮt
suffisamment fidèle pour ne pas créer de méprise)

<https://latenightsw.com/big-sur/>

Pour faire court : Si vous utillisiez régulièrement des "property :" comme conteneur non volatil de valeurs de classes variées (boolean, datas, integer, etc…) nécessaires au
fonctionnement de l'application, il va falloir changer vos habitudes.

En effet les "properties" sont enregistrées dans le binaire de l'exec de l'applet, ce qui a pour effet de le modifier Í  chaque fois.
Big Sur avec la signature obligatoire de toute application, vérifiant la checksum du binaire en déduira qu'il a été modifié et le déclarera corrompu, mais plus probablement
interdira l'opération et génèrera une erreur Í  l'exécution du code.
Il faut donc remplacer ces properties par un fichier dont l'utilisateur, via l'application, aura les droits en écriture /lecture, o͹ seront stockées les données et préférences que
l'on veut retrouver d'une exécution sur l'autre, Í  la manière des .plist
PlutÍ´t que des .plist assez lourds Í  manipuler, la méthode la plus légère Í  la quelle je pense est d'écrire un (ou plusieurs) fichier texte, une ligne par propriété, dans la
bibliothèque des préférences du compte utilisateur, quelque chose comme ceci :

par exemple
en écriture
do shell script "echo " & (quoted form of myDatas) & " > $HOME/Library/Preferences/com.myApp.itsPrefs.conf"

et en lecture

do shell script "cat $HOME/Library/Preferences/com.myApp.itsPrefs.conf"

o͹ myDatas serait la variable dans l'application contenant les informations Í  sauvegarder et récupérer ensuite,
et <com.myApp.itsPrefs.conf> serait le fichier les stockant. Il va se retrouver en compagnie d'une multitude de .plist mais cela n'a aucune importance.
le suffixe .conf est conventionnel dans le monde Unix pour désigner un fichier de configurations et préférences.
Le placer ailleurs que dans les prefs d'utilisateur pourrait amener Í  exiger des droits d'administrateur.

Autant s'y entrainer maintenant si vous avez l 'idée de passer Í  Big Sur un jour ;-)

Cordialement

--
J. B.
  • Partager ce contenu :
Vos réponses
Trier par : date / pertinence
M.V.
Le #26561967
Le 4 décembre 2020 Í  13 h 43, Joseph-B s'est exprimé en ces termes :
Big Sur avec la signature obligatoire de toute application,
vérifiant la checksum du binaire en déduira qu'il a été modifié et
le déclarera corrompu, mais plus probablement interdira l'opération
et génèrera une erreur Í  l'exécution du code.

Merci pour l'info.
Le placer ailleurs que dans les prefs d'utilisateur pourrait amener
Í  exiger des droits d'administrateur.

Marrant… J'ai pris le parti depuis quelques mois d'enregistrer certains
paramètres dans des fichiers .txt que j'ai placés dans le même dossier
dans mon dossier Documents et non dans mon dossier Preferences. La
raison est simple : ͠ chaque modif d'un script, je perdais certains
paramètres bien entendu.
Autant s'y entrainer maintenant si vous avez l'idée de passer Í  Big
Sur un jour

Pas demain la veille…
--
Michel VAUQUOIS - 
josephb
Le #26561969
M.V.
Le placer ailleurs que dans les prefs d'utilisateur pourrait amener
Í  exiger des droits d'administrateur.


Je pensais Í  quelqu'un qui aurait l'idée de le mettre dans un dossier
genre /etc /private ou autre de niveau machine ou Système, mais
effectivement aucune contre-indication Í  le mettre dans "ses documents",
et jusqu'Í  Big Sur on pourra toujour le mettre au premier niveau du
dossier /Contents/ de l'applet, ce qui est quand même un bon moyen de ne
pas le perdre !
--
J. B.
Roi Dieu PurR=c3=aa
Le #26561997
Le 04/12/2020 Í  13:43:00, Joseph-B a écrit :
Bonjour,
Je sais qu'il y a quelques amateurs de scriptage AppleScript dans ce groupe, alors je porte Í  leur connaissance ce que Big Sur va changer pour ceux qui écrivent des applets et les
partagent avec d'autre utilisateurs.
La source est on ne peut plus fiable et comme l'article est en anglais, long et assez technique, je recommande d'en faire une traduction (celle de Google Translate me paraͮt
suffisamment fidèle pour ne pas créer de méprise)
Pour faire court : Si vous utillisiez régulièrement des "property :" comme conteneur non volatil de valeurs de classes variées (boolean, datas, integer, etc…) nécessaires au
fonctionnement de l'application, il va falloir changer vos habitudes.
En effet les "properties" sont enregistrées dans le binaire de l'exec de l'applet, ce qui a pour effet de le modifier Í  chaque fois.
Big Sur avec la signature obligatoire de toute application, vérifiant la checksum du binaire en déduira qu'il a été modifié et le déclarera corrompu, mais plus probablement
interdira l'opération et génèrera une erreur Í  l'exécution du code.
Il faut donc remplacer ces properties par un fichier dont l'utilisateur, via l'application, aura les droits en écriture /lecture, o͹ seront stockées les données et préférences que
l'on veut retrouver d'une exécution sur l'autre, Í  la manière des .plist
PlutÍ´t que des .plist assez lourds Í  manipuler, la méthode la plus légère Í  la quelle je pense est d'écrire un (ou plusieurs) fichier texte, une ligne par propriété, dans la
bibliothèque des préférences du compte utilisateur, quelque chose comme ceci :
par exemple
en écriture
do shell script "echo " & (quoted form of myDatas) & " > $HOME/Library/Preferences/com.myApp.itsPrefs.conf"
et en lecture
do shell script "cat $HOME/Library/Preferences/com.myApp.itsPrefs.conf"
o͹ myDatas serait la variable dans l'application contenant les informations Í  sauvegarder et récupérer ensuite,
et le suffixe .conf est conventionnel dans le monde Unix pour désigner un fichier de configurations et préférences.
Le placer ailleurs que dans les prefs d'utilisateur pourrait amener Í  exiger des droits d'administrateur.
Autant s'y entrainer maintenant si vous avez l 'idée de passer Í  Big Sur un jour ;-)
Cordialement


Bonsoir,
Merci pour ces informations...
dite moi seriez vous m'écrit un exemple de script pour qu'a partir d'un
chemin de type "/User/EricH/Dossier Images/Imagetoto.jpeg" envoyez au
script qui le récupere dans une variable "chemin" pour que le finder
ouvre la fenêtre ou ce trouve le fichier ?
merci pour votre aide si vous le voulez bien ;-)
--
/ Croire c'est le contraire de savoir,
-- o -- si j'y crois, je ne sais pas,
/ si je sais, pas la peine d'y croire.
--> Je Croix Pas, car Je Sais que c'est Faux MalgRê TouT...
Poster une réponse
Anonyme