Начиная с iOS 12 и Network Framework, каким-то образом можно определить, активен ли режим полета.
import Network
let monitor = NWPathMonitor()
monitor.pathUpdateHandler = { path in
if path.availableInterfaces.count == 0 { print("Flight mode") }
print(path.availableInterfaces)
}
let queue = DispatchQueue.global(qos: .background)
monitor.start(queue: queue)
path.availableInterfaces
возвращает массив.Например [en0, pdp_ip0]
.Если нет доступного интерфейса, вероятно, в режиме полета.
ПРЕДУПРЕЖДЕНИЕ Если режим полета и Wi-Fi активны, то path.availableInterfaces
не пусто, потому что возвращается [en0]