iOS10 升級相容必備參考

来源:http://www.cnblogs.com/xiaopin/archive/2016/10/09/5942987.html
-Advertisement-
Play Games

最近提交審核不通過,再iOS10上運行崩潰 。然後需要處理崩潰的問題,晚上找了一下,整理收集起來。 方便後續查看使用。 參考: http://blog.csdn.net/gbking/article/details/52587149 http://www.cnblogs.com/xiaoc1314/ ...


最近提交審核不通過,再iOS10上運行崩潰 。然後需要處理崩潰的問題,晚上找了一下,整理收集起來。 方便後續查看使用。 

參考:

http://blog.csdn.net/gbking/article/details/52587149

http://www.cnblogs.com/xiaoc1314/p/5882403.html

http://www.jianshu.com/p/61b73ac8662a

http://www.2cto.com/kf/201609/547127.html

http://www.jianshu.com/p/90d5323cf510 

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>

或者


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 我覺得,這篇文章最大的特點是,完整記錄了一次優化解決問題的過程;示例代碼看起來前後有些不太統一,是因為: 我不是先有了方案再寫博客,而是藉助博客本身來梳理思路,簡化邏輯!如此,寫博客,就不單單是一個耗時的分享知識的過程,更成為了一個幫助自己思考的有力工具!贊!!! ...
  • VPN簡單說就是連接區域網的一個通道。Ios8之後蘋果增加了一個VPN的介面NEVPNManager,它可以方便的添加VPN連接。 首先在你的Xcode內,TARGETS->Capabilities->打開persion VPN 在項目中添加NetWorkExtension庫 引入頭文件<Netwo ...
  • SDK接入(1)之Android Facebook SDK接入 由於游戲已上線,且處於維護階段,所以有空寫寫各種SDK接入過程和遇到的問題,也當作一種工作總結。SDK接入主流分為這麼幾類, 、`支付 分享 推送 統計`等,達到借‘他山之石’的效果。順便吐槽下,現在國內是個渠道就弄個所謂的自己的SDK ...
  • 原理是拉伸裡面的內容,將邊保護起來 方法1: ①[image resizableImageWithCapInsets:UIEdgeInsetsMake(30, 30, 30, 30)]; ②[image resizableImageWithCapInsets:UIEdgeInsetsMake(30, ...
  • 在新的mac下check代碼後,執行創建ios工程的sh腳本,在終端提示 ios version not found 提示: 沿著提示發現,前面的是列印錯誤的,後面的才是出錯的問題,iphone.cmake內部錯誤地方如下圖 在執行命令的時候找不到ios sdk version 註意:後面的9.1 ...
  • 本文地址:http://www.cnblogs.com/wuyudong/p/5943005.html,轉載請註明出處。 本文實現導航界面1的佈局的實現,效果如下圖所示: 首先分析所使用的佈局樣式: 對應的activity_setup1.xml佈局文件內容如下: 最後還剩下右下角的佈局還沒有實現,將 ...
  • Android Apktool源碼編譯 標簽(空格分隔): Android Apktool 源碼編譯 需求 習慣NetBeans調試smali需要用Apktool反編譯apk,需要用 d的參數才能生成.java文件。下載最新的Apktool.jar,運行後提示smalidebugging已經從Apk ...
  • GCD定時器 圖片上繪製文字 查找一個視圖的所有子視圖 計算文件大小 UIView的設置部分圓角 計算字元串字元長度,一個漢字算兩個字元 防止滾動視圖手勢覆蓋側滑手勢 去掉導航欄返回的標題 字元串中是否含有中文 dispatch_group的使用 UITextField每四位加一個空格,實現代理 獲 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...