最近提交審覈不經過,再iOS10上運行崩潰 。而後須要處理崩潰的問題,晚上找了一下,整理收集起來。 方便後續查看使用。 html
如下參考連接特別有用:ios
http://blog.csdn.net/gbking/article/details/52587149swift
http://www.cnblogs.com/xiaoc1314/p/5882403.htmlxcode
http://www.jianshu.com/p/61b73ac8662a網絡
http://www.2cto.com/kf/201609/547127.htmlapp
http://www.jianshu.com/p/90d5323cf510 框架
http://blog.csdn.net/lvchaman/article/details/52587910性能
一、推送 優化
xcode 升級到8以後不少人的推送接收不到了.獲取不到token了 一朋友搞了一小時沒找到緣由. 只因看下圖吧....我發覺xcode 我不打開他也能收到通知. 可是到了8(必須打開了才能收到推送) . 貌似不行了 你們對號入座吧.
下面普及下ios10跟以前的推送的區別
iOS 9 之前的通知
1.在調用方法時,有些方法讓人很難區分,容易寫錯方法,這讓開發者有時候很苦惱。
2.應用在運行時和非運行時捕獲通知的路徑還不一致。
3.應用在前臺時,是沒法直接顯示遠程通知,還須要進一步處理。
4.已經發出的通知是不能更新的,內容發出時是不能改變的,而且只有簡單文本展現方式,擴展性根本不是很好。
iOS 10 開始的通知
1.全部相關通知被統一到了UserNotifications.framework框架中。
2.增長了撤銷、更新、中途還能夠修改通知的內容。
3.通知不在是簡單的文本了,能夠加入視頻、圖片,自定義通知的展現等等。
4.iOS 10相對以前的通知來講更加好用易於管理,而且進行了大規模優化,對於開發者來講是一件好事。
5.iOS 10開始對於權限問題進行了優化,申請權限就比較簡單了(本地與遠程通知集成在一個方法中)。
二、字體適配的問題
ios 9 以前的lab 字體能夠顯示全,可是到了ios10 發覺字體顯示不全了.得適配啊.app 會跟隨手機系統字體大小而改變了.
簡單粗暴地方法就是不讓他跟着手機系統的字體改變而改變.
label.adjustsFontForContentSizeCategory = YES;
三、xcode 8運行打印一堆沒用的東西Xcode 8的問題,解決辦法是設置OS_ACTIVITY_MODE : disable以下圖:
四、xcode8的註釋快捷鍵是什麼, command+/ 不行了
解決辦法:
由於蘋果解決xcode ghost。把插件屏蔽了。解決方法
命令運行: sudo /usr/libexec/xpccachectl
而後必須重啓電腦後生效
5 、顏色問題, iOS 10 蘋果官方建議咱們使用sRGB,由於它性能更好,色彩更豐富。
UIColor類中新增了兩個Api以下:
+ (UIColor *)colorWithDisplayP3Red:(CGFloat)displayP3Red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha NS_AVAILABLE_IOS(10_0); - (UIColor *)initWithDisplayP3Red:(CGFloat)displayP3Red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha NS_AVAILABLE_IOS(10_0);
6 判斷版本問題
建議用 [[UIDevice currentDevice] systemVersion]
if #available(iOS 10.0, *) {
// iOS 10.0啊
print("iOS 10.0");
} else
{
}
;
七、https的問題
iOS 9中默認非HTTS的網絡是被禁止的,固然咱們也能夠把NSAllowsArbitraryLoads設置爲YES禁用ATS。不過iOS 10從2017年1月1日起蘋果不容許咱們經過這個方法跳過ATS,也就是說強制咱們用HTTPS,若是不這樣的話提交App可能會被拒絕。可是咱們能夠經過NSExceptionDomains來針對特定的域名開放HTTP能夠容易經過審覈。
八、隱私權限
iOS 10 開始對隱私權限更加嚴格,若是你不設置就會直接崩潰,如今不少遇到崩潰問題了,通常解決辦法都是在info.plist文件添加對應的Key-Value就能夠了。
或者<!-- 相冊 --> <key>NSPhotoLibraryUsageDescription</key> <string>App須要您的贊成,才能訪問相冊</string> <!-- 相機 --> <key>NSCameraUsageDescription</key> <string>App須要您的贊成,才能訪問相機</string> <!-- 麥克風 --> <key>NSMicrophoneUsageDescription</key> <string>App須要您的贊成,才能訪問麥克風</string> <!-- 位置 --> <key>NSLocationUsageDescription</key> <string>App須要您的贊成,才能訪問位置</string> <!-- 在使用期間訪問位置 --> <key>NSLocationWhenInUseUsageDescription</key> <string>App須要您的贊成,才能在使用期間訪問位置</string> <!-- 始終訪問位置 --> <key>NSLocationAlwaysUsageDescription</key> <string>App須要您的贊成,才能始終訪問位置</string> <!-- 日曆 --> <key>NSCalendarsUsageDescription</key> <string>App須要您的贊成,才能訪問日曆</string> <!-- 提醒事項 --> <key>NSRemindersUsageDescription</key> <string>App須要您的贊成,才能訪問提醒事項</string> <!-- 運動與健身 --> <key>NSMotionUsageDescription</key> <string>App須要您的贊成,才能訪問運動與健身</string> <!-- 健康更新 --> <key>NSHealthUpdateUsageDescription</key> <string>App須要您的贊成,才能訪問健康更新 </string> <!-- 健康分享 --> <key>NSHealthShareUsageDescription</key> <string>App須要您的贊成,才能訪問健康分享</string> <!-- 藍牙 --> <key>NSBluetoothPeripheralUsageDescription</key> <string>App須要您的贊成,才能訪問藍牙</string> <!-- 媒體資料庫 --> <key>NSAppleMusicUsageDescription</key> <string>App須要您的贊成,才能訪問媒體資料庫</string>