iOS12 XCode10 適配

iOS12 XCode10 適配

1. libstdc++棄用 報(bào)錯(cuò)Undefined symbols

XCode10編譯報(bào)錯(cuò)ndefined symbols for architecture XXX铅鲤,如果你的工程中有l(wèi)ibstdc++依賴(可從Linked Frameworks and Libraries 項(xiàng)查看)油够,那么就會(huì)出現(xiàn)這類錯(cuò)誤起胰。

因?yàn)樘O(píng)果在XCode10和iOS12中移除了libstdc++這個(gè)庫(kù)驾中,由libc++這個(gè)庫(kù)取而代之且预,蘋(píng)果的解釋是libstdc++已經(jīng)標(biāo)記為廢棄有5年了蜈项,建議大家使用經(jīng)過(guò)了llvm優(yōu)化過(guò)并且全面支持C++11的libc++庫(kù)定硝。

libstdc++.dylib是C++98版本的標(biāo)準(zhǔn)庫(kù)實(shí)現(xiàn)動(dòng)態(tài)庫(kù)瘪菌,而libc++.dylib是C++11版本的標(biāo)準(zhǔn)庫(kù)實(shí)現(xiàn)動(dòng)態(tài)庫(kù)撒会。libc++是一個(gè)更加新的C++標(biāo)準(zhǔn)庫(kù)實(shí)現(xiàn),它完全支持C++11標(biāo)準(zhǔn)师妙。因此蘋(píng)果棄用了libstdc++.dylib诵肛,這符合蘋(píng)果一貫的作風(fēng)。

解決方法

  • 最直接的是修改依賴庫(kù)默穴,支持libc++.dylib

  • 臨時(shí)方法

    將libstdc++.dylib拷貝到 XCode中怔檩,共四個(gè)地方

    libstdc++.dylib下載地址

sudo cp CoreSimulator/* /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/usr/lib/
sudo cp MacOSX/* /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/
sudo cp iPhoneOS/* /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/
sudo cp iPhoneSimulator/* /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib/

2. UICollectionViewCell 高度計(jì)算不正確

更新 iOS12后,一定要檢查所有用到UICollectionViewCell的界面蓄诽,因?yàn)閁ICollectionViewCell可能出現(xiàn)高度計(jì)算不正確的現(xiàn)象薛训。

iOS12對(duì)AutoLayout做出了性能優(yōu)化,但是更新 iOS12后若专,發(fā)現(xiàn)一些UICollectionViewCell的高度不正確许蓖,一時(shí)間也調(diào)試不出什么問(wèn)題,因此就采用手動(dòng)計(jì)算高度暫時(shí)解決调衰。

這里有一篇同樣的問(wèn)題膊爪,解決思路可供參考鏈接

解決方法

  • 1. 手動(dòng)計(jì)算高度

  • 2. 忽略 contentView,直接把 subView 加到 cell 上

3. StatusBar 網(wǎng)絡(luò)狀態(tài)

如果app通過(guò)狀態(tài)欄的網(wǎng)絡(luò)狀態(tài)指示器去判斷手機(jī)當(dāng)前聯(lián)網(wǎng)狀態(tài)嚎莉,修改進(jìn)行修改米酬,因?yàn)閕OS12 更改了StatusBar內(nèi)部結(jié)構(gòu)。

參考鏈接

+ (NSString *)getIphoneXNetWorkStates {    
    UIApplication *app = [UIApplication sharedApplication];
    id statusBar = [[app valueForKeyPath:@"statusBar"] valueForKeyPath:@"statusBar"];
    id one = [statusBar valueForKeyPath:@"regions"];
    id two = [one valueForKeyPath:@"trailing"];
    NSArray *three = [two valueForKeyPath:@"displayItems"];
    NSString *state = @"無(wú)網(wǎng)絡(luò)";
    for (UIView *view in three) {
        //alert: iOS12.0 情況下identifier的變成了類"_UIStatusBarIdentifier"而不是NSString趋箩,所以會(huì)在調(diào)用“isEqualToString”方法時(shí)發(fā)生crash赃额,
        //修改前
//        NSString *identifier = [view valueForKeyPath:@"identifier"];
        //修改后
        NSString *identifier = [[view valueForKeyPath:@"identifier"] description];
        if ([identifier isEqualToString:@"_UIStatusBarWifiItem.signalStrengthDisplayIdentifier"]) {
            id item = [view valueForKeyPath:@"_item"];

            //alert: 這個(gè)問(wèn)題和上邊一樣itemId是_UIStatusBarIdentifier 類型,不是string
            NSString *itemId = [[item valueForKeyPath:@"identifier"] description];
            if ([itemId isEqualToString:@"_UIStatusBarWifiItem"]) {
                state = @"WIFI";
            }
            state = @"不確定";

        } else if ([identifier isEqualToString:@"_UIStatusBarCellularItem.typeDisplayIdentifier"]) {
            UIView *statusBarStringView = [view valueForKeyPath:@"_view"];
            // 4G/3G/E
            state = [statusBarStringView valueForKeyPath:@"text"];
        }

    }

    return state;
}

iOS12新功能

1. 劉海屏判斷

#define isNotchMobile ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? (CGSizeEqualToSize(CGSizeMake(1125, 2436), [[UIScreen mainScreen] currentMode].size)||CGSizeEqualToSize(CGSizeMake(1242, 2688), [[UIScreen mainScreen] currentMode].size)||CGSizeEqualToSize(CGSizeMake(828, 1792), [[UIScreen mainScreen] currentMode].size)) : NO)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末叫确,一起剝皮案震驚了整個(gè)濱河市跳芳,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌竹勉,老刑警劉巖飞盆,帶你破解...
    沈念sama閱讀 219,539評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異次乓,居然都是意外死亡吓歇,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門票腰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)城看,“玉大人,你說(shuō)我怎么就攤上這事杏慰〔饽” “怎么了炼鞠?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,871評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)鹃愤。 經(jīng)常有香客問(wèn)我簇搅,道長(zhǎng)完域,這世上最難降的妖魔是什么软吐? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,963評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮吟税,結(jié)果婚禮上凹耙,老公的妹妹穿的比我還像新娘。我一直安慰自己肠仪,他們只是感情好肖抱,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,984評(píng)論 6 393
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著异旧,像睡著了一般意述。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上吮蛹,一...
    開(kāi)封第一講書(shū)人閱讀 51,763評(píng)論 1 307
  • 那天荤崇,我揣著相機(jī)與錄音,去河邊找鬼潮针。 笑死术荤,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的每篷。 我是一名探鬼主播瓣戚,決...
    沈念sama閱讀 40,468評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼焦读!你這毒婦竟也來(lái)了子库?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤矗晃,失蹤者是張志新(化名)和其女友劉穎仑嗅,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體喧兄,經(jīng)...
    沈念sama閱讀 45,850評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡无畔,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,002評(píng)論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了吠冤。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片浑彰。...
    茶點(diǎn)故事閱讀 40,144評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖拯辙,靈堂內(nèi)的尸體忽然破棺而出郭变,到底是詐尸還是另有隱情颜价,我是刑警寧澤,帶...
    沈念sama閱讀 35,823評(píng)論 5 346
  • 正文 年R本政府宣布诉濒,位于F島的核電站周伦,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏未荒。R本人自食惡果不足惜专挪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,483評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望片排。 院中可真熱鬧寨腔,春花似錦、人聲如沸率寡。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,026評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)冶共。三九已至乾蛤,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間捅僵,已是汗流浹背家卖。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,150評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留命咐,地道東北人篡九。 一個(gè)月前我還...
    沈念sama閱讀 48,415評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像醋奠,于是被迫代替她去往敵國(guó)和親榛臼。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,092評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容