你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS10適配問題收集整理

iOS10適配問題收集整理

編輯:IOS開發綜合

1、TencentOpenAPI的坑

表現:啟動就crash

原因:由於很久沒有更新該sdk了,用的版本是2.3.1。後來想著去官網下個最新的吧,不過最新的是3.0的版本,替換原來的sdk後,有些接口和頭文件定義的問題,直接編譯不過。為了少踩點坑,還是選擇了其他項目已經在用的2.8版本。該版本可以直接替換,在iOS10上順利解決。

2、私有權限申請的坑

表現:Xcode8編譯的版本,首次打開相機、相冊、獲取通訊錄、錄視頻...統統crash

原因:由於iOS10對Security and Privacy Enhancements 安全和保密性增強,在申請很多私有權限時,都需要添加描述,不添加會crash。但使用之前的Xcode編譯的話,仍然會采用系統的權限通知框。

填這個坑,只需在Info.list裡配置上請求權限的描述信息就可以了。

我在Info.list添加了程序中用到的權限,就解決了。

示例圖

這裡列出相關的key, 可以要小心,絕對不能寫錯哦!

NSBluetoothPeripheralUsageDescription
NSCalendarsUsageDescription
NSCameraUsageDescription
NSContactsUsageDescription
NSHealthShareUsageDescription
NSHealthUpdateUsageDescription
NSHomeKitUsageDescription
NSLocationAlwaysUsageDescription
NSLocationWhenInUseUsageDescription
NSMicrophoneUsageDescription
NSMotionUsageDescription
NSPhotoLibraryUsageDescription
NSRemindersUsageDescription
NSSiriUsageDescription
NSSpeechRecognitionUsageDescription
NSVideoSubscriberAccountUsageDescription
NSVoIPUsageDescription

3、statusBar不見了

表現:statusBar會消失掉或顏色沒有改變

原因:找到原因是,程序經常會在全屏浏覽的時候隱藏掉statusBar,相信很多應用都用到這個功能,當退出是使用以下方法還原:

[[UIApplication sharedApplication] setStatusBarStyle:_previousStatusBarStyle animated:animated];

不過該方法使用壽命就到iOS9了,iOS10徹底不能用了。要想以後iOS10也能保持statusBar的正確顯示,就按下圖接口備注的來改吧。估計改動會比較多,那又有什麼辦法呢,蘋果爸爸就給你指定好規則了,你就老實的跟著走吧。

4、Xcode8打包,ios7安裝後調用[UIImage imageNamed:]奔潰

表現:堆棧信息如下:

原因:使用xcassets管理圖片,拿掉xcassets後正常。這個是針對iOS7的,別的同事遇到,因為我暫時沒有iOS7的設備,沒有驗證,大家遇到了可以參考。

5、從App中直接跳轉到特定的設置項失效或審核不過

表現:之前使用prefs:root=xxxx,"xxxx"可以是Photos,WIFI等這些具體的設置項,在升級到iOS10後發現失效。

原因:其實這種設置方式並沒有在任何蘋果的官方文檔裡出現,只是之前很多人這麼使用了,而且順利提交AppStore了。之前就有應用使用過多這種方式,被拒了,蘋果給出的理由是使用了私有接口。在iOS10時發現,我們之前也使用了這種方式跳轉到相冊權限設置,原本通過的功能失效了,可能在iOS10中出於安全性的考慮,這些系統的scheme被修改或禁用了。

解決方法:iOS8以後可以跳轉到系統的“設置”頁面。

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];

不過iOS10這個openURL的API也有所調整,應使用下面的方法

- (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、字體的變化,導致中文顯示寬度變大,英文沒有影響。

表現:固定寬度的按鈕,變...了,顯示不全。

原因:iOS10的字體變化了

解決方法:一個個修改控件的吧,還沒想到好方法。

以上所述是小編給大家介紹的iOS10適配問題收集整理,字體適配和編譯不過的問題及解決方案,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對本站網站的支持!

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved