好久沒寫一些分享了、剛好今天有做到以前的一個(gè)項(xiàng)目突然發(fā)現(xiàn)iOS12更新后 當(dāng)初iOS9系統(tǒng)獲取wifi的方法不能用了、或者說獲取ssid為空。著急用就忙著看了一下官網(wǎng)文檔發(fā)現(xiàn)好像復(fù)雜了好多! iOS9之后回去wifi名稱的幾個(gè)步驟:
1.向 Apple 申請(qǐng)開發(fā) Network Extension 權(quán)限;
? ? ? 寫封郵件給 networkextension@apple.com ,向蘋果要開發(fā) Network Extension 的權(quán)限。申請(qǐng)郵件內(nèi)容如下所示,僅供參考:
Hi, I am a personal developer on ios9, I am using xcode8.0 to develop app, AppleID:XXXXXXXXXX, I want to get SSID and BSSID and RSSI by scanning near WiFi, I hope to get the NetworkExtension permission, please approve!
蘋果收到郵件后會(huì)自動(dòng)回復(fù)郵件,然后根據(jù)蘋果回復(fù)的郵件提供的鏈接,打開連接根據(jù)選項(xiàng)逐一填寫,然后提交之后14天左右就可以收到蘋果的確認(rèn)回復(fù)郵件。
2.申請(qǐng)包含Network Extension?的描述文件;

申請(qǐng)獲取WiFi權(quán)限通過之后,需要進(jìn)入開發(fā)者賬號(hào)里面配置創(chuàng)建Network Extension的描述文件,配置成功之后點(diǎn)擊下載,下載完成雙擊打開描述文件。
3.配置Info.plist;

4.配置entitlements;

5.?導(dǎo)入頭文件:
? ? ?#import <NetworkExtension/NetworkExtension.h> ?
代碼實(shí)現(xiàn):
?_wifiName = @"Not Found";
? ? NSArray *ifs = CFBridgingRelease(CNCopySupportedInterfaces());
? ? idinfo =nil;
? ? for(NSString*ifnameinifs) {
? ? ? ? info = (__bridge_transferid)CNCopyCurrentNetworkInfo((CFStringRef) ifname);
? ? ? ? if(info && [infocount]) {
? ? ? ? ? ? break;
? ? ? ? }
? ? }
? ? NSDictionary *dic = (NSDictionary *)info;
? ? _wifiName = [[dic objectForKey:@"SSID"] lowercaseString];