El siguiente ejemplo de AppleScript código me funciona bajo macOS Alta de la Sierra:
Nota: Cambie "Calendar"
en set appName to "Calendar"
a la correspondiente aplicación de destino.
set appName to "Calendar"
if running of application "System Preferences" then
quit application "System Preferences"
delay 1
end if
tell application "System Preferences"
set the current pane to pane id "com.apple.preference.notifications"
delay 1
tell application "System Events"
tell table 1 of scroll area 1 of window 1 of application process "System Preferences"
repeat with i from 2 to (count rows)
if value of static text 1 of group 1 of UI element 1 of row i is appName then
select row i
exit repeat
end if
end repeat
end tell
delay 0.2
click checkbox "Badge app icon" of group 1 of window 1 of application process "System Preferences"
end tell
quit
end tell
Preferencias del sistema no necesita ser visible para que esto funcione y por qué no hay activate
comando en el ejemplo de AppleScript código. Además, si las Preferencias del Sistema ya está abierto, se cierra primero antes que el resto del código es procesado. Esto se hace para un par de razones, la primera de las cuales se ha dicho y en segundo lugar ver los Eventos de interfaz de usuario procesado es una distracción visual y puede ser molesto.
También tenga en cuenta que el valor de la delay
comandos pueden necesitar ser ajustadas para su sistema, y / o adicional delay
comandos puede o puede no ser necesario. Ajustar los valores de y o agregar/quitar el delay
comandos según corresponda.
Para una versión que actúa en múltiples aplicaciones y / o todas las aplicaciones en el Centro de Notificaciones en Preferencias del Sistema, véase mi respuesta a: Quitar varias app insignia de iconos con un script?
Nota: El ejemplo de AppleScript código es sólo eso y no emplea ningún error en el manejo y está destinado sólo para mostrar una de las muchas formas de realizar una tarea. La responsabilidad recae siempre sobre el Usuario para agregar y/o el uso apropiado de manejo de errores como necesitaba/quería.