溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

iOS 12中無(wú)法獲取WiFi的SSID了?別慌看這里!

發(fā)布時(shí)間:2020-10-01 06:35:49 來(lái)源:腳本之家 閱讀:351 作者:QiShare 欄目:移動(dòng)開(kāi)發(fā)

前言

SSID全稱Service Set IDentifier, 即Wifi網(wǎng)絡(luò)的公開(kāi)名稱.在IOS 4.1以上版本提供了公開(kāi)的方法來(lái)獲取該信息.

但是最近,Apple于北京時(shí)間9月17日晚在官網(wǎng)發(fā)布了Xcode 10正式版,QiShare團(tuán)隊(duì)成員于9月18日中午統(tǒng)一升級(jí)以對(duì)現(xiàn)有項(xiàng)目做適配。期間,作者發(fā)現(xiàn)某項(xiàng)目使用Xcode 10編譯出的App在iOS 12中無(wú)法獲取WiFi的SSID。

敲黑板:獲取WiFi的SSID是智能硬件App中配網(wǎng)模塊的常用功能,各大廠商要針對(duì)iOS 12適配一波了(@huawei.com; @mi.com; @360.com; @jd.com; @baidu.com; @orvibo.com; @scinan.com; ...)。

獲取WiFi的SSID的方法如下:

+ (NSString *)wifiSSID {
 
 NSString *ssid = nil;
 NSArray *ifs = (__bridge_transfer id)CNCopySupportedInterfaces();
 for (NSString *ifnam in ifs) {
  NSDictionary *info = (__bridge_transfer id)CNCopyCurrentNetworkInfo((__bridge CFStringRef)ifnam);
  if (info[@"SSID"]) {
   ssid = info[@"SSID"];
  }
 }
 return ssid;
}

在iOS 12中,經(jīng)斷點(diǎn)調(diào)試發(fā)現(xiàn)info為nil。猜測(cè)是CNCopyCurrentNetworkInfo方法在iOS 12中有了變化。通過(guò)查看官方文檔,發(fā)現(xiàn)文檔中增加了Important字樣的描述:

iOS 12中無(wú)法獲取WiFi的SSID了?別慌看這里!

CNCopyCurrentNetworkInfo文檔

Important
To use this function in iOS 12 and later, enable the Access WiFi Information capability for your app in Xcode. When you enable this capability, Xcode automatically adds the Access WiFi Information entitlement to your entitlements file and App ID.

重要描述
在iOS 12+中使用此方法需要在Xcode中為應(yīng)用授權(quán)獲取WiFi信息的能力。授權(quán)后,Xcode會(huì)自動(dòng)在App ID和應(yīng)用的權(quán)限列表中增加獲取WiFi信息的權(quán)限。

解決方法

看到這里,解決方案就有了:Xcode -> [Project Name] -> Targets -> [Target Name] -> Capabilities -> Access WiFi Information -> ON

iOS 12中無(wú)法獲取WiFi的SSID了?別慌看這里!

解決方案步驟圖示

按照上述方案操作完畢后,會(huì)發(fā)現(xiàn)工程的.entitlements文件中多了一對(duì)Key-Value:

iOS 12中無(wú)法獲取WiFi的SSID了?別慌看這里!

.entitlements文件

至此,就能在iOS 12+中正常獲取到WiFi的SSID了。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)億速云的支持。

級(jí)別: ★☆☆☆☆

標(biāo)簽:「iOS 12」「SSID」「Access WiFi Information」「CNCopyCurrentNetworkInfo」

作者: Xs·H

審校: QiShare團(tuán)隊(duì)

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI