I have saved an apple script as an app and when I launch it I get the following error
System Events got an error: DualFinder is not allowed assistive access. (-1719)
I have given the app accessability permission in system settings but still recieve this error any ideas
It runs fine from the script editor but the final project needs to be a stay open app
tell application "System Events"
tell application "Mission Control" to launch
tell group 2 of group 1 of group 1 of process "Dock"
click (every button whose value of attribute "AXDescription" is "add desktop")
tell list 1
set countSpaces to count of buttons
delay 0.5
click button (countSpaces)
end tell
end tell
end tell
DualFinder is the name of your script application as I understand. So,
First, clean your script:
tell application "Mission Control" to launch
tell application "System Events" to tell group 2 of group 1 of group 1 of process "Dock"
click (every button whose value of attribute "AXDescription" is "add desktop")
delay 0.5
click last button of list 1
end tell
Save it as usual application (not stay-open)
Launch it, give to it permission to control your computer. Go System Preferencesā>Security&Privacy----> Accessibility. See: if the checkbox is checked (and application throws error) , then uncheck it and check again. If it is unchecked then simply check it.
If this doesnāt help, then remove DualFinder.app from the list using MINUS button, then go step 3) again .
The probable reason for this is the ācountSpacesā variable, which, being a run handler variable (ie. used in the top level of the script), is saved back to the script file every time the scriptās run. This changes the fileās modification date and the security system thinks itās a new file.
KniazidisRās suggestion gets rid of the variable.
I found the best way to avoid this error is to use + sign and add application that way first.
Then try run it. (I.e donāt try run it first. I.e. donāt drag and drop in there first.)
As a last resort fix: open system preferences. Remove the app with minus. Lock. Quit system preferences. Reopen system preferences. Add app with plus sign. Lock. Quit system preferences. Then try run app. Take your time with each of these stepsā¦donāt rush it. Still not working. You can mix in a restart and some log out log insā¦it will eventually workā¦sounds like madness I knowā¦but it works.
I have the same issue and I followed all the steps above however I still get the same error. Iām currently working on a Mac Studio with Sonoma 14.4.1. Are there any other suggestions?
I have three miscellaneous suggestions, two of which you may already have tried.
First, give the AppleScript app both accessibility and full disk access permissions. Depending on what your app does, the full disk access permission may not be required.
Second, if your app uses System Events, give System Events both accessibility and full disk access permissions. Once again, the full disk access permission may not be required.
Third, as a last resort, create a new app with a different name and copy and paste the code from the old app. Edit the code in some insignificant way and then set permissions for the new app before running it. This has worked for me on a few occasions when all else failed.
rsstorey. Iām sorry to hear that. The suggestions contained in this thread covers about every solution Iāve come across.
I canāt imagine what it would be, but the only other thought that comes to mind is that something in your script is causing the issue. If you donāt mind, you could post the script and we could test it for privacy issues.
I posted it at the beginning of this thread but here it is again.
I did read one item that suggested some line of code within the script but it wasnāt elaborated on.
Also, There is a line in the script that that call "tell application āSystem Eventsā.
Rsstorey. I looked earlier in this thread and couldnāt find anywhere you had posted your script.
After making necessary changes to allow your script to compile, I saved it as an app in Script Debugger and then set Accessibility and Full Disk Access permissions for the app. I confirmed that System Events had Accessibility and Full Disk Access permissions. I then ran the app in the Finder by way of the context menuās Open command and the app ran without issue. I canāt be sure if the app did what it was intended to do (no junk mail), but there were no permission errors. I donāt know why you are receiving a different result. Iām on macOS 14.4.1.
tell application "Mail" to activate
tell application "System Events"
tell application process "Mail"
-- Erase Junk Mail
tell menu item "Erase Junk Mail" of menu "Mailbox" of menu bar item "Mailbox" of menu bar 1 to click
tell button "Erase" of sheet 1 of window 1 to click
-- Erase Deleted Items
tell menu item "In All Accountsā¦" of menu "Erase Deleted Items" of menu item "Erase Deleted Items" of menu "Mailbox" of menu bar item "Mailbox" of menu bar 1 to click
tell button "Erase" of sheet 1 of window 1 to click
end tell
end tell
Thank you again for all the help. I try to replicate you procedures. Need to get Script Debugger. I was using the native apple script editor. I will use the script you included in your reply. Will let you know how it turns out.
My applet doesnāt have any variables, but getting the assistive permission to stick after resaving is maddening.
The only way I can get it to work reliably:
Quit the applet.
Delete the applet from the permissions list. (If it doesnāt work, System Settings is effed. Close it and try again.)
Save the applet.
Run the applet.
Click OK to the error about assistive permissions.
Enable the applet in the permissions list. (If it wonāt stay enabled, System Settings is effed again. Close it, force quit the applet, and start over from step 1.)
use AppleScript version "2.4" -- Yosemite (10.10) or later
use scripting additions
-- Check to see if the Close Tab command has disappeared from
-- the File menu in Edge.
on idle
tell application "System Events" to tell application process "Microsoft Edge"
-- Close Tab command is inexplicably named "Close All."
if not (exists menu item "Close All" of menu "File" of menu bar item "File" of menu bar 1) then
tell application "Microsoft Edge"
display alert "The Close Tab menu item has gone missing again. Restart Edge to restore it."
end tell
end if
end tell
return 60 -- Run once a minute.
end idle
On my system (Sonoma 14.6), System Events isnāt in the assistive permissions list to begin with, and since itās not an app I wouldnāt know where to find it.
System Events is a background application, located at /System/Library/CoreServices/System Events.app/. The steps you take to get your applet working sure look like the script is getting modified. As mentioned, historically AppleScript saved all top level properties, globals, and run handler variables in the script file to make them persistent, although code signing the application should stop all that.
Thanks ā Iām noting its location in a comment in the code, just in case my current routine ever stops working. Wouldnāt be the first time.
Iāve only been half paying attention to code signing, so my vague impression has been that it mostly causes headaches. This is the first Iāve heard that it can prevent one.
I assume Iād still have to go through this dance routine when Iām making changes, but it would prevent variables and properties from āmodifyingā the applet every time I run it? Something to be said for thatā¦
(My original reply was flagged ā automated, I guess? ā for a couple of words I used to describe the ādance routineā and my applet. I hope this hasnāt put me on somebodyās watch list. )
Code signing, amongst other things, keeps AppleScript from modifying script files. Script Editor and Script Debugger both support automatic code-signing applications, which is actually a requirement for Apple Silicon - you can look in the bundle to see if it being signed. You donāt need a paid developer account, a self-signed certificate can be created for local use. It is mainly when setting up an app for distribution that it can be a pain.