Растущая поддержка Apple конфиденциальности пользователей могла нарушить некоторые функции вашего приложения.

С выпуском iOS 13 Apple внесла множество изменений, чтобы обеспечить лучшую конфиденциальность для пользователей iOS. Поскольку сейчас это очень горячая тема, этого следовало ожидать.

Замечательно, что Apple заботится о конфиденциальности и не позволяет разработчикам получать доступ ко всему, что они хотят. Однако, если вы разработчик, это приведет к тому, что некоторые функции в вашем приложении внезапно перестанут работать.

Изменения в сети были объяснены в WWDC 19, сессия 713, Достижения в сетевых технологиях, часть 2. Однако это часовой сеанс. Я покажу вам то, что вам нужно знать, за три минуты.

CNCopyCurrentNetworkInfo используется для доступа к информации Wi-Fi. Вот как вы можете подключиться к SSID Wi-Fi.

До этого изменения в iOS 13 Apple просто позволяла любому доступ к подключенным SSID Wi-Fi, если у них была возможность доступа к информации Wi-Fi.

К сожалению, сейчас вам нужно гораздо больше.

Вы можете получить доступ к Wi-Fi SSID только в следующих трех случаях:

  • Если у вашего приложения есть разрешение на доступ к местоположению.
  • Если в вашем приложении включен профиль VPN.
  • Если ваше приложение является сетевым приложением, использующим NEHotspotConfiguration. В этом случае вам потребуется дополнительное одобрение Apple.

Если ваше приложение не выполняет ничего из этого, к сожалению, CNCopyCurrentNetworkInfo вернет ноль в iOS 13 и более поздних версиях. Это означает, что любые функции, которые у вас есть, которые используют Wi-Fi SSID, перестанут работать, если пользователи обновятся до iOS 13.

Это хорошо для целей конфиденциальности, но я думаю, что это очень ограниченно. Лучшим решением было бы спросить у пользователя разрешения, хотят ли они поделиться своей сетевой информацией или нет. Пусть решают люди, Apple!