Así que, como un usuario informó aquí en Stack Exchange, el comando incorporado "networksetup" en la terminal es bastante poco fiable a veces. Es lento, y he descubierto que por alguna razón dot1x nunca se establece correctamente para algunos tipos de redes Wi-Fi en mi casa. La solución: Crear un AppleScript para simular los clics del ratón en la barra de menús para cambiar entre las redes Wi-Fi.
¿Por qué la configuración de redes es tan lenta en comparación con el cambio manual de redes Wi-Fi?
El siguiente script me ha funcionado bien hasta Big Sur:
use application "System Events"
property process : a reference to application process "SystemUIServer"
property menu bar : a reference to menu bar 1 of my process
property menu bar item : a reference to (menu bar items of my menu bar ¬
where the description contains "Wi-Fi")
property menu : a reference to menu 1 of my menu bar item
property menu item : a reference to menu items of my menu
to joinNetwork given name:ssid as text
local ssid
if not (my menu bar item exists) then return false
click my menu bar item
repeat until my menu exists
delay 0.5
end repeat
set M to a reference to (my menu item where the name contains ssid)
repeat 20 times --> 10 seconds @ 0.5s delay
if M exists then exit repeat
delay 0.5
end repeat
click M
end joinNetwork
joinNetwork given name:"my network ssid"
La razón por la que se rompió es que el Wi-Fi ya no es técnicamente una opción directa bajo la barra de menú principal. En su lugar, está relegado al Centro de Control en Big Sur, y creo que incluso puede haber otro submódulo que está técnicamente anidado dentro de la interfaz de usuario. He estado leyendo durante horas acerca de las personas que tratan de superar este desafío en Big Sur, por ejemplo, para automatizar un clic en el dispositivo Bluetooth específico, pero muchos AppleScripts gente escribió aparentemente rompió en la actualización 11.1, y no tengo ningún punto de partida fácil aquí para averiguar cómo lograr lo que estoy tratando de hacer para Wi-Fi.
Cualquier ayuda aquí sería tremendamente apreciada.
Nota al margen: Sé que el mismo usuario también publicó un método usando AppleScriptObjC, pero como la gente señaló, es un enorme riesgo de seguridad porque necesitas poner tu contraseña en algún lugar como texto plano. La interfaz de usuario script es por lo tanto la mejor opción en mi mente, así que me gustaría conseguir que funcione de nuevo.