title: How to get current network information for a given network interface on iOS 13
body: <p>I'm trying to implement an app that uses the BSSID of the network that the user is currently connected to on iOS 13.</p>
  <p>However, Apple's <a href="https://developer.apple.com/documentation/systemconfiguration/1614126-cncopycurrentnetworkinfo" rel="nofollow noreferrer">documentation for CNCopyCurrentNetworkInfo on iOS 13</a> is not clear in its requirements for usage of their API.</p>
  <p>It states the following in its description:</p>
  <blockquote>
  <p>The requesting app <strong>must meet one of the following requirements</strong>:</p>
  <ul>
  <li><p>The app uses Core Location, and has the user’s authorization to use location information.</p>
  </li>
  <li><p>The app uses the NEHotspotConfiguration API to configure the current Wi-Fi network.</p>
  </li>
  <li><p>The app has active VPN configurations installed.</p>
  </li>
  </ul>
  </blockquote>
  <p>This seems to suggest that only needs to meet <strong>one</strong> out of the 3 requirements listed above.</p>
  <p>However, it subsequently states:</p>
  <blockquote>
  <p>An app that <strong>fails to meet any of the above requirements</strong> receives the following return value:</p>
  <ul>
  <li><p>An app linked against iOS 12 or earlier receives a dictionary with pseudo-values. In this case, the SSID is Wi-Fi (or WLAN in the China region), and the BSSID is 00:00:00:00:00:00.</p>
  </li>
  <li><p>An app linked against iOS 13 or later receives NULL.</p>
  </li>
  </ul>
  </blockquote>
  <p>This suggests that the app needs to meet <strong>all</strong> of the above requirements</p>
  <p>This makes it extremely confusing as to what the requirements are, since the former part claims that you only need to implement one of the three in order to get the BSSID, whereas the latter part states that you won't get it if you miss out on any of the three requirements.</p>
  <p>Any help on this would be much appreciated!</p>