iOS10適配問題收集整理
1、TencentOpenAPI的坑
表現(xiàn):啟動就crash
原因:由于很久沒有更新該sdk了,用的版本是2.3.1。后來想著去官網(wǎng)下個最新的吧,不過最新的是3.0的版本,替換原來的sdk后,有些接口和頭文件定義的問題,直接編譯不過。為了少踩點坑,還是選擇了其他項目已經(jīng)在用的2.8版本。該版本可以直接替換,在iOS10上順利解決。
2、私有權(quán)限申請的坑
表現(xiàn):Xcode8編譯的版本,首次打開相機、相冊、獲取通訊錄、錄視頻...統(tǒng)統(tǒng)crash
原因:由于iOS10對Security and Privacy Enhancements 安全和保密性增強,在申請很多私有權(quán)限時,都需要添加描述,不添加會crash。但使用之前的Xcode編譯的話,仍然會采用系統(tǒng)的權(quán)限通知框。
填這個坑,只需在Info.list里配置上請求權(quán)限的描述信息就可以了。
我在Info.list添加了程序中用到的權(quán)限,就解決了。
示例圖
這里列出相關(guān)的key, 可以要小心,絕對不能寫錯哦!
NSBluetoothPeripheralUsageDescription NSCalendarsUsageDescription NSCameraUsageDescription NSContactsUsageDescription NSHealthShareUsageDescription NSHealthUpdateUsageDescription NSHomeKitUsageDescription NSLocationAlwaysUsageDescription NSLocationWhenInUseUsageDescription NSMicrophoneUsageDescription NSMotionUsageDescription NSPhotoLibraryUsageDescription NSRemindersUsageDescription NSSiriUsageDescription NSSpeechRecognitionUsageDescription NSVideoSubscriberAccountUsageDescription NSVoIPUsageDescription
3、statusBar不見了
表現(xiàn):statusBar會消失掉或顏色沒有改變
原因:找到原因是,程序經(jīng)常會在全屏瀏覽的時候隱藏掉statusBar,相信很多應(yīng)用都用到這個功能,當退出是使用以下方法還原:
[[UIApplication sharedApplication] setStatusBarStyle:_previousStatusBarStyle animated:animated];
不過該方法使用壽命就到iOS9了,iOS10徹底不能用了。要想以后iOS10也能保持statusBar的正確顯示,就按下圖接口備注的來改吧。估計改動會比較多,那又有什么辦法呢,蘋果爸爸就給你指定好規(guī)則了,你就老實的跟著走吧。
4、Xcode8打包,ios7安裝后調(diào)用[UIImage imageNamed:]奔潰
表現(xiàn):堆棧信息如下:
原因:使用xcassets管理圖片,拿掉xcassets后正常。這個是針對iOS7的,別的同事遇到,因為我暫時沒有iOS7的設(shè)備,沒有驗證,大家遇到了可以參考。
5、從App中直接跳轉(zhuǎn)到特定的設(shè)置項失效或?qū)徍瞬贿^
表現(xiàn):之前使用prefs:root=xxxx,"xxxx"可以是Photos,WIFI等這些具體的設(shè)置項,在升級到iOS10后發(fā)現(xiàn)失效。
原因:其實這種設(shè)置方式并沒有在任何蘋果的官方文檔里出現(xiàn),只是之前很多人這么使用了,而且順利提交AppStore了。之前就有應(yīng)用使用過多這種方式,被拒了,蘋果給出的理由是使用了私有接口。在iOS10時發(fā)現(xiàn),我們之前也使用了這種方式跳轉(zhuǎn)到相冊權(quán)限設(shè)置,原本通過的功能失效了,可能在iOS10中出于安全性的考慮,這些系統(tǒng)的scheme被修改或禁用了。
解決方法:iOS8以后可以跳轉(zhuǎn)到系統(tǒng)的“設(shè)置”頁面。
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
不過iOS10這個openURL的API也有所調(diào)整,應(yīng)使用下面的方法
- (void)openURL:(NSURL*)url options:(NSDictionary<NSString *, id> *)options completionHandler:(void (^ __nullable)(BOOL success))completion NS_AVAILABLE_IOS(10_0) NS_EXTENSION_UNAVAILABLE_IOS("");
6、字體的變化,導(dǎo)致中文顯示寬度變大,英文沒有影響。
表現(xiàn):固定寬度的按鈕,變...了,顯示不全。
原因:iOS10的字體變化了
解決方法:一個個修改控件的吧,還沒想到好方法。
以上所述是小編給大家介紹的iOS10適配問題收集整理,字體適配和編譯不過的問題及解決方案,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
關(guān)于iOS中屬性變量setter與getter方法的理解
這篇文章主要給大家介紹了關(guān)于iOS中屬性變量setter與getter方法的相關(guān)資料,文章介紹的非常詳細,對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。2017-06-06iOS內(nèi)存管理Tagged Pointer使用原理詳解
這篇文章主要為大家介紹了iOS內(nèi)存管理Tagged Pointer使用原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-01-01iOS輸入框的字數(shù)統(tǒng)計/最大長度限制詳解
在開發(fā)中經(jīng)常會遇到鍵盤輸入的字符長度的限制,下面這篇文章主要給大家介紹了關(guān)于iOS輸入框的字數(shù)統(tǒng)計/最大長度限制的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-06-06關(guān)于ios配置微信config出現(xiàn)驗簽失敗的問題解決
這篇文章主要介紹了關(guān)于ios配置微信config出現(xiàn)驗簽失敗的問題解決方案,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-04-04