? ?????一年一度的蘋果春季發(fā)布會已經(jīng)過去一段時間了,xcode的beta版本以及iOS12版本也發(fā)布很久了唉俗,為了體驗下iOS 12也順手把一部公司測試機升級了iOS12,隨之而來的就是升級xcode beta10的畴。
? ? ? ?總體的感覺就是xcode beta10版本變化不大末融,由于beta版本使用時間比較少,發(fā)現(xiàn)的bug也只有那么幾處晤锥,畢竟公司的項目還是穩(wěn)定為主掉蔬,主力還是xcode9.4.1。
????????真機調(diào)試的時候就出現(xiàn)了問題矾瘾,iOS12必須要使用xcode beta10真機運行女轿, 但是試用期間發(fā)現(xiàn)了一個不能忍受的bug。由于工作的特殊性壕翩,現(xiàn)在工作大部分都是和智能音響蛉迹、智能家居交互。用戶拿到智能設(shè)備第一件事情肯定就是需要配置網(wǎng)絡環(huán)境放妈,連接wifi路由器北救,這個時候就凸顯出我工作的重要性了,雖然說在智能設(shè)備中手機APP只是輔助作用芜抒,但是少了我們這一環(huán)用戶的體驗就會差了很多珍策,這個時候就該我們上了。
????????但是宅倒、但是攘宙、當我在xcode beta 10版本上運行我們的項目是出現(xiàn)了比較尷尬的事情,使用的手機設(shè)備是iOS12 beta5版本拐迁,開發(fā)環(huán)境使用的是xcode 10 beta版本蹭劈, ?當我電腦鏈接手機真機測試的時候出現(xiàn)了問題,在獲取當前設(shè)備鏈接WiFi ?ssid的時候出現(xiàn)了一個有趣的現(xiàn)象唠亚,之前在iOS11上很穩(wěn)定的獲得ssid居然獲取不到了链方。當時很疑惑持痰,獲取當前wifi ssid從iOS4時候開始支持灶搜,到iOS11已經(jīng)經(jīng)歷了七代的更迭,難道在這一代也要和獲取wifi列表一樣必須通過給蘋果發(fā)郵件獲得權(quán)限的形式一樣嗎工窍?于是在網(wǎng)上看了很多相關(guān)的資料割卖,也從蘋果的官方文檔里找一些相關(guān)東西,經(jīng)歷了一個下午仔細調(diào)研患雏,發(fā)現(xiàn)很多智能設(shè)備廠商的iOS開發(fā)工程師也遇到了類似的問題鹏溯,但是始終沒有切實的解決方案,查詢蘋果官方文檔也沒有找到蛛絲馬跡淹仑。
????????于是分析得出兩個可能性:
第一種可能這個情況屬于xcode 10 beta版本的一個bug丙挽,在新的版本中或者正式版本可能會修復
第二種可能就是在iOS12種可能會收緊這項權(quán)限肺孵,以后想獲取當前設(shè)備ssid這樣的權(quán)限,也是需要寫郵件申請獲取相應的權(quán)限的颜阐。
????????其實個人更加希望這個是屬于第一個平窘。畢竟發(fā)郵件給蘋果申請不是每個公司一次申請就可以通過的,往往這樣的東西會經(jīng)歷很多次的申請遞交很多的資料才可以通過凳怨。
但是問題不解決總覺得不合適瑰艘,于是給蘋果開發(fā)者發(fā)去了一封郵件詢問這個情況,蘋果給我的回復如下:
郵件顯示的大概意思就是對于beta版本不提供支持肤舞。事已至此只能是自己想一下辦法了紫新。
但是靠著這幾年iOS開發(fā)經(jīng)驗依然感覺這可能是xcode beta版本的一個bug,由此繼續(xù)對自己的代碼仔細檢查李剖,發(fā)現(xiàn)并沒有什么問題芒率,在iOS4開始獲取ssid方法就已經(jīng)有很多人使用,隨便逛一個搜索引擎都可以搜索到相關(guān)的代碼杖爽。大體代碼如下:
通過對代碼分析發(fā)現(xiàn)并沒有什么不妥之處#import <SystemConfiguration/CaptiveNetwork.h>
- (NSString*)currentWifiSSID {
// Does not work on the simulator.
NSString*ssid =nil;
NSArray *ifs = (__bridge_transferid)CNCopySupportedInterfaces();
for(NSString*ifnam in ifs) ?{
NSDictionary*info = (__bridge_transferid)CNCopyCurrentNetworkInfo((__bridgeCFStringRef)ifnam);
if(info[@"SSID"]) {
ssid = info[@"SSID"];
? ? ? ? }
? ? }
returnssid;
}
????????于是乎想看看下這具體是不是xcode的問題敲董,想著徹底將xcode beta版本和iOS12 beta分開
在xcode9.4.1版本下,打包了我的項目慰安,并且上傳了蒲公英腋寨,通過蒲公英安裝,不通過xcode 10 beta版本打包化焕,直接繞開了xcode 10 beta版本萄窜,實際測試發(fā)現(xiàn)用xcode 9.4.1版本打好的包,在iOS12 beta 設(shè)備上成功獲取到了ssid 撒桨。但是猜想這會不會是蒲公英有什么加持查刻?于是下載了pp手機助手mac版,通過pp手機助手安裝凤类,并且發(fā)現(xiàn)通過這個方式依然是可以獲取ssid穗泵。
????????由此分析這個應該是xcode 10 beta版本的一個bug,可能是由于xcode beta版本有些功能還處于不穩(wěn)定階段谜疤,難免出現(xiàn)類似的bug佃延。
由此暫時告一段落,ssid獲取不到的這個bug也希望可以通過xcode 10 正式版得到修復夷磕。