你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> 兼容iOS 10 升級xcode8出現的問題及一些適配問題的解決方案

兼容iOS 10 升級xcode8出現的問題及一些適配問題的解決方案

編輯:IOS開發綜合

1推送

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開始對於權限問題進行了優化,申請權限就比較簡單了(本地與遠程通知集成在一個方法中)。

2 字體適配的問題

ios 9 之前的lab 字體可以顯示全,但是到了ios10 發覺字體顯示不全了.得適配啊.app 會跟隨手機系統字體大小而改變了.

簡單粗暴地方法就是不讓他跟著手機系統的字體改變而改變.

label.adjustsFontForContentSizeCategory = YES;

3 xcode 8運行打印一堆沒用的東西Xcode 8的問題,解決辦法是設置OS_ACTIVITY_MODE : disable如下圖:

4 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]

swift用

if #available(iOS 10.0, *) { 
// iOS 10.0啊 
print("iOS 10.0"); 
} else
{
}
;

7 https的問題

iOS 9中默認非HTTS的網絡是被禁止的,當然我們也可以把NSAllowsArbitraryLoads設置為YES禁用ATS。不過iOS 10從2017年1月1日起蘋果不允許我們通過這個方法跳過ATS,也就是說強制我們用HTTPS,如果不這樣的話提交App可能會被拒絕。但是我們可以通過NSExceptionDomains來針對特定的域名開放HTTP可以容易通過審核。

8 隱私權限

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>或者 

以上所述是小編給大家介紹的兼容iOS 10 升級xcode8出現的問題及解決方案,以及一些適配,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對本站網站的支持!

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