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, 可以要小心,絕對不能寫錯哦!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
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以后可以跳轉到系統的“設置”頁面。
1
|
[[uiapplication sharedapplication] openurl:[nsurl urlwithstring:uiapplicationopensettingsurlstring]]; |
不過ios10這個openurl的api也有所調整,應使用下面的方法
1
|
- ( 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適配問題收集整理,字體適配和編譯不過的問題及解決方案,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!
原文鏈接:http://www.jianshu.com/p/43579787db43