macOS 15 has added a new "Local Network" permission under Security & Privacy.
I had a bug in my app that led to a crash when the user denied this permission. Now I've fixed it and would like to verify that it all works fine.
The problem is: I need to remove my app from the settings so that macOS will show the prompt again (e.g. to verify that my custom message appears correctly).
Usually, sudo tccutil reset All
would do the trick. But not for this permission! The apps do not get cleared with this command.
So, there's two issues:
- tccutil should remove it but doesn't.
- How can I remove this settings?
Update
I had a look at the "TCC.db" (see https://www.rainforestqa.com/blog/macos-tcc-db-deep-dive), and it seems to me that the Local Network permission isn't even managed by the TCC system, as it doesn't appear in it. This is odd.
I’m in the process of updating the Local Network Privacy FAQ and, as part of that, I’ve researched this question in depth. Currently there’s no good way to reset local network privacy on the Mac (r. 134842755). Personally, I get around this by running my program in a virtual machine (VM). To retest, I restore the VM from a snapshot taken before I installed your program.
Alternatively, create a new user account and run your test there. Remember that macOS maintains separate local network privacy state for each user account.
the Local Network permission isn't even managed by the TCC system
That’s correct. TCC manages many but not all of the privileges shown to the user in System Settings > Privacy & Security. Local Network and Location are the two critical outliers that I’m aware of.
Oh, and that’s one of the reasons why tccreset
won’t fix this.
After some more digging, I suspect that the information is stored in the various [Network Extension preference files]
That’s very much an implementation detail. You shouldn’t rely on the presence or format of those files.
fortunately, this was done in a VM
Oh, you already have a VM for testing this? Well, that makes it easy.
Share and Enjoy
—
Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"