Applescript, Mavericks et accès au calendrier

_gromit_

Membre actif
15 Mai 2000
458
5
37
Valence
softomatic.macdk.com
Bonjour,

j'utilise un AppleScript pour synchroniser des programmations d'enregistrements entre EyeTV et Calendrier.
Depuis le passage sous Mavericks, j'ai le message suivant qui s'affiche à quasiment tous les lancements et bloque l'exécution du script:


Quelle est la logique qui fait que le réglage d'autorisation n'est pas mémorisé?
Y a-t-il moyen de désactiver totalement ce mécanisme de sécurité?

Merci d'avance
_gromit_
 

da capo

abonné absent
Club MacG
12 Août 2001
17 454
3 572
Hum, pas facile comme question.

Mais essayons de déblayer le terrain :
- si tu acceptes, est-ce "Sans Titre" devient visible dans Confidentialité (Préférences Système),
- peux-tu alors cocher ou décocher la case ?

- as-tu essayé de nommer autrement ton script ?
- as-tu essayé d'en faire une application ?

Je pose cette dernière question parce que dans cet artcle Modifying the TCC database il y est décrit comment est stockée l'information pour les accès autorisés ou non (en l'occurence pour Contacts mais ça devrait être la même chose avec Calendrier).

A plus.
 

_gromit_

Membre actif
15 Mai 2000
458
5
37
Valence
softomatic.macdk.com
Merci da capo pour ta réponse.

1) si j'accepte, l'application apparaît bien dans Confidentialités,
2) la case peut bien être cochée ou décochée,
3) oui, en fait mon script est nommé différemment. Il s'appelle Gestion (mais s'appelait précédemment Gestionnaire d'enregistrements, je devrais peut-être refaire une application propre pour que tous les noms soient identiques).
4) il s'agit bien d'une application.

Le lien que tu indiques est très intéressant. J'ai fait un dump de la TCC database et dedans je retrouve mon script (au milieu d'autres applications).

Bloc de code:
INSERT INTO "access" VALUES('kTCCServiceCalendar','com.apple.ScriptEditor.id.Gestionnaire-d-enregistrements',0,1,0,X'FADE0C00000000480000000100000007000000080000001449C7EEF43DD1E211C5EC06B6E8230BA0E1296A860000000800000014C6AE54E98341A7CECF829B5CF6314FA46EC5A1A2');
Je vais faire quelques essais pour voir comment se comporte la TCC database, si l'entrée correspondant à mon application disparaît.
 

da capo

abonné absent
Club MacG
12 Août 2001
17 454
3 572
Je ne suis pas sûr de pouvoir te donner plus d'aide mais, qui sait ?

Bon boulot.
 

_gromit_

Membre actif
15 Mai 2000
458
5
37
Valence
softomatic.macdk.com
Bonjour!

J'ai fait plusieurs essais, mais à chaque fois, au bout d'un certain nombre de redémarrage la boîte de dialogue revenait.
Du coup, j'ai trouvé une solution qui est très sale, mais a le mérite de fonctionner: je mets ceci à chaque démarrage de mon script
Bloc de code:
do shell script "sqlite3 -line ~/Library/Application\\ Support/com.apple.TCC/TCC.db \"INSERT or REPLACE INTO 'access' VALUES('kTCCServiceCalendar','com.apple.ScriptEditor.id.Gestion',0,1,1,NULL);\""
Et ça marche! Plus de boîte de dialogue.

Ça me semble étrange que la protection mise en place par Apple soit aussi facile à contourner.
 
  • J’aime
Réactions: da capo