Repeated requests to allow Script app to control Numbers


#1

Hello all. I read all I could find about this “Full Disk Access” and Security in Mojave.

This short little script app copies and pastes some Numbers cells, and it keeps asking every time I run it for me to click OK in an alert box. See below. I added this script app to “Full Disk Access” and other spots in the Prefs. But I still get the alert message each time I run the script.

Am I missing something? Or is this now required, to OK running a script app?

Thanks25%20PM


(Phil Stokes) #2

You should only get that the alert once, unless for some reason your app looks like a different app to tcc when you run it.

It would be helpful if we could see the script.


#3

Thanks. Here’s the script.

use AppleScript version “2.4” – Yosemite (10.10) or later

use scripting additions

– copy updated prices to C2:C4

tell application “Numbers”

tell table 1 of sheet 1 of document “Finances TIAA and BofA”

set x to value of cells of range “C6:C8”

set value of cell “C2” to item 1 of x

set value of cell “C3” to item 2 of x

set value of cell “C4” to item 3 of x

end tell

end tell


(Mark Alldritt) #4

I’ve looked into this a bit and this is a consequence of security changes introduced in Mojave. Each time you save changes to your applet, Mojave requires you to obtain user permission to communicate with Numbers again.

The solution is to code sign your script. You need to obtain a Developer ID certificate from Apple. This is explained here:

https://developer.apple.com/developer-id/

UPDATE: I’ve created a blog post on this subject here:


#5

Thank you for the info. I’ve been a developer since 2008, [off for a while] and just created a [new] Developer ID in Xcode. Now, in SD, I see that it says it sees the ID I just created (in the File->Code Signing submenu), but the selection’s grayed out. I am almost there.
This certificates/identity/signing thing has since day 1 been the biggest mess ever. I think it causes 50% of the wasted time in development.


#6

Ah, I forgot to make the script into an app. Now it signs it.