57 votes

macOS Mojave, Automator "Non autorisé à envoyer des événements Apple à System Events."

Après avoir effectué la mise à jour vers Mojave, je ne peux plus utiliser le service Automator que j'utilisais auparavant avec l'alerte ci-dessous. enter image description here

  • Dans Sécurité et confidentialité, j'ai déjà coché AppleScript Editor.

Voyez-vous un problème avec mon code ou est-ce le problème de la dernière version de macOS ?

script

on run {input, parameters}
set pathList to {}
repeat with itemNum from 1 to count of input
    tell application "System Events"
        copy POSIX path of (container of (item itemNum of input)) to end of pathList
    end tell
end repeat
return pathList
end run

enter image description here

enter image description here

45voto

Joe Points 795

Cela fait certainement partie du nouveau cadre de sécurité de Mojave. Dans terminal essayez

osascript -e 'tell application "Finder"' -e 'set _b to bounds of window of desktop' -e 'end tell'

et vous mai recevoir :

36:42: execution error: Not authorized to send Apple events to Finder. (-1743)

Ce qui est censé se produire lors de la première exécution est que le Finder ouvre une boîte de dialogue vous informant que terminal demande la permission d'envoyer des événements au Finder. Si vous l'autorisez, alors terminal sera ajouté à la page d'automatisation dans System Preferences > Security & Privacy > Automation :

enter image description here

Il y a deux problèmes que je vois pour le moment :

  • l'implémentation de la demande d'autorisation pour l'action de script semble présenter un problème ; j'ai exécuté d'autres scripts qui demandent l'autorisation d'envoyer des événements à Safari et le Finder ne demande pas l'autorisation, il renvoie simplement une erreur.
  • l'automatisation simplifiée nécessite un certain type de mécanisme pour que les autorisations soient accordées a priori Un exemple serait l'utilisation d'AppleScript avec Ansible et l'impossibilité de précharger les subventions.

D'autres ont rédigé des informations plus complètes à ce sujet :

Espérons que ce problème sera résolu avant la sortie de Mojave, car il a un impact important sur les capacités d'automatisation de macOS.

0 votes

Merci, Joe. Je vois plus clairement le problème que je rencontre.

0 votes

Des tests de base m'amènent à penser que la fonctionnalité attendue, qui consiste à demander l'autorisation d'autoriser les événements AppleScript, fonctionne dans la version 10.14 Beta 8 (18A371a). Cela ne répond toujours pas à la question de savoir si les applications AppleScript peuvent ou non être pré-autorisées à des fins d'automatisation.

1 votes

Cela ne fonctionne pas pour moi lorsque je lance par launchd un script python qui appelle subprocess.run(['/usr/bin/osascript', my_script_path]) . Je ne reçois pas l'invite...

29voto

Abdullah Points 1569

J'ai rencontré la même erreur en ouvrant gitk .

Erreur dans le démarrage du script : erreur d'exécution : Non autorisé à envoyer des événements Apple à System Events. (-1743)


SOLUTION

Goto Settings -> Security & Privacy -> Privacy -> Automation -> Privacy tab et vérifiez le System Events la case à cocher.

enter image description here

0 votes

Aucun des changements de paramètres n'a fonctionné pour moi. En éditant le fichier gitk et en supprimant l'élément offensant if Le bloc était ma solution - le message d'erreur dit (file "/usr/local/bin/gitk" line 12261) J'ai donc simplement édité ce fichier. gitk n'est plus mis en avant lorsque je le lance, mais sinon il fonctionne bien.

0 votes

J'ai essayé de lancer le simulateur ios à partir d'expo cli, et cela a échoué avec le message d'erreur mentionné. Ceci l'a réparé !

1 votes

Je viens de rencontrer ce problème après la mise à niveau vers Big Sur (11.0). Les scripts en question étaient connus pour être bons sur Catalina (10.15), mais ont soudainement cessé de fonctionner avec le nouvel OS. Je me demande si les anciens problèmes (de Mojave, 10.14) n'ont pas été réintroduits avec le nouvel OS. La correction de @Abdullah a fonctionné dans ce cas. Merci Abdullah.

14voto

Daniel S. Points 903

J'ai eu une erreur similaire en exécutant AppleScript .app applications. J'ai reçu l'erreur suivante :

Not authorized to send Apple events to Finder. (-1743)

Une solution de contournement consiste à exporter ( File > Export ) ou sauvegarder ( File > Save As en tenant Option pour afficher Save As ) une nouvelle application à partir du code source .scpt ou .applescript. Cela génère une nouvelle application .app, qui dans mon cas a fonctionné avec succès. Le lancement initial a nécessité une approbation (ainsi que certains lancements ultérieurs), et l'application a été ajoutée en tant qu'entrée sous le nom de Settings -> Security & Privacy -> Privacy -> Automation .

0 votes

La solution acceptée n'a pas fonctionné pour moi, mais cette solution de contournement a fonctionné. Merci de l'avoir publié !

14voto

Roshil K Points 579

J'ai résolu le même problème en suivant les étapes ci-dessous. Ouvrez Plist et ajoutez-y les clés suivantes

<key>NSAppleEventsUsageDescription</key>
<string>Please give access to Export details to Outlook</string>

Vous obtiendrez une pop up de confirmation pour autoriser ou non lorsque votre application démarre exécute le script pour la première fois. Si vous cliquez sur autoriser, elle exécutera le script.

0 votes

Cette solution n'aidera pas Automator (puisqu'il devrait déjà avoir cette clé) -- mais si votre propre application nécessite l'accès aux événements Apple, cette nouvelle clé est nécessaire (depuis la 10.14). developer.apple.com/documentation/bundleresources/

1 votes

Ça a marché comme un charme.

9voto

lrosal Points 81

Voici ce que j'ai fait et qui a résolu le problème pour moi. Je suis allé dans Préférences système > Sécurité et confidentialité > Accessibilité (Options sur le côté gauche) > (Entrez le mot de passe système) > Cliquez sur Automator (ou votre application que vous voulez activer) et TADA, ça marche.

2 votes

Cela fonctionne, mais avec une petite différence : Préférences système > Sécurité et confidentialité > Automatisation > cochez 'Événements système' sous l'application que vous voulez activer > Entrez le mot de passe système.

1 votes

J'appuie le commentaire de @AliNem. J'avais un flux de travail Automator qui demandait à System Events d'effectuer une frappe dans le Finder. Dans Préférences système > Sécurité et confidentialité > Accessibilité, j'ai dû d'abord activer Automator dans Accessibilité, puis cocher "Événements système" sous Finder dans Automatisation, et enfin revenir en arrière et activer Finder dans Accessibilité. J'ai eu une nouvelle erreur à chaque fois que j'ai essayé d'exécuter le flux de travail entre chaque étape, jusqu'à ce que j'aie effectué les 3 changements de permissions.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X