此總結由CocoaChina論壇版主wo709128079及廣大壇友共同收集匯總
升級Xcode8已是必然,升級iOS 10的用戶不能說大有人在,應該也不會少,樓主聽說,如果不升級Xcode8,上架最新的包,那麼可能應用在iOS 10 上是不支持的.so,這些Xcode8的新特性,你應該了解!!!
1.快捷鍵 command + / 注釋失效;
解決方法1: Xcode -> preferences -> key bindings 中的comment selection 是否設置上快捷鍵了
解決方法2: 第四個問題詳解
2.Xcode8支持iOS 8以下真機測試方法:
應用程序-Xcode 顯示包內容-Contents-Developer-Platforms-iPhoneOS.platform-DeviceSupport 把裡邊 6.0 6.1 7.0 7.1 的文件夾粘貼到xcode8 對應的文件夾內
應用程序-Xcode 顯示包內容-Contents-Developer-Platforms-iPhoneOS.platform-Developer-SDKs-iPhoneOS.sdk-SDKSettings.plist 文件下DefaultProperties - DEPLOYMENT_TARGET_SUGGESTE... 該數組中添加 6.0 6.1 7.0 7.1 對應的測試版本,(注意:如果你的文件是只讀模式的,那麼是不能修改的,你需要把Contents-Developer-Platforms-iPhoneOS.platform-Developer-SDKs- iPhoneOS.sdk-SDKSettings.plist 這些文件的只讀模式都改成讀寫模式)這個版本排序一定要是從小到大,直接把小的添加到下面是不管用的,必須把小的拖到最上邊.這個時候退出你的Xcode,然後 重新啟動,你就會發現ios8.0以下的真機 也可以正常測試了
3.如果項目中包含證書
證書內包含的Id 必須與 bundle Id 保持一致才行,開發者team賬號必須創建了 該 bundle Id 對應的證書,就是說不是所有的蘋果賬號都能真機測試了(這裡說的是項目中有證書的前提下)
4.使用Xcode 8創建新項目
會讓你選擇開發者team為了自動生成對應的證書。在新老項目的General中也可以對簽名進行設置,勾選自動管理證書(可選的),Xcode會自動替你生成調試證書和描述問題,證書與描述文件有效期為6天,避免了大量的垃圾冗余證書占用問題。
5.- (void)webView:(UIWebView *)webView didFailLoadWithError:(nullable NSError *)error; 變成了- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
6.版本target 從8.0 起步了
但是老代碼的7.1 用Xcode8 打開還是顯示7.1,可以手寫輸入7.1,仍然管用.
7.之前兩個漢字占用24寬度,現在占用27了
導致部分UI可能需要重新適配; 或者判斷下當前系統版本,如果>=10.0,就讓需要適配的控件調用 sizetofit 方法.
8.權限
* 麥克風權限:Privacy - Microphone Usage Description 是否允許此App使用你的麥克風?
* 相機權限: Privacy - Camera Usage Description 是否允許此App使用你的相機?
* 相冊權限: Privacy - Photo Library Usage Description 是否允許此App訪問你的媒體資料庫?
* 通訊錄權限: Privacy - Contacts Usage Description 是否允許此App訪問你的通訊錄?
* 藍牙權限:Privacy - Bluetooth Peripheral Usage Description 是否許允此App使用藍牙?
* 語音轉文字權限:Privacy - Speech Recognition Usage Description 是否允許此App使用語音識別?
* 日歷權限:Privacy - Calendars Usage Description 是否允許此App使用日歷?
* 定位權限:Privacy - Location When In Use Usage Description 我們需要通過您的地理位置信息獲取您周邊的相關數據
* 定位權限: Privacy - Location Always Usage Description 我們需要通過您的地理位置信息獲取您周邊的相關數據
9.MJRefresh iOS10的系統上每次下拉刷新後沒辦法完全恢復Normal 狀態 Y軸距離上總是相差20左右...(樓主個人也使用的MJ,表示暫時沒有發現這個問題)
解決方案
10.Itunes Connect上傳遇到問題,ERROR ITMS-90682: "Invalid Bundle. The asset catalog at 'Payload/ElitePlus.app/Assets.car' can't contain 16-bit or P3 assets if the app is targeting iOS releases earlier than iOS 9.3."
解決方法一 解決方法二
11.iOS 10 因蘋果健康導致閃退 crash 原文鏈接
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'NSHealthUpdateUsageDescription must be set in the app's Info.plist in order to request write authorization.'
12.新增了CAAnimationDelegate,之前使用CAAnimation的文件需要強制添加代理
13.上架蘋果商店,如果上傳了ipa,但是在提交的時候構建版本的地方沒有?,那麼請確定你應用中的權限是否已經添加,添加的權限描述是否填寫,推送是否已經開啟(視情況而定);
14.教你如何科學的在Xcode8上使用插件
轉自:AME_時雨 鏈接
Xcode8的一些變動
內含:
證書管理/xib注意事項/代碼及Api注意/代碼注釋不能用的解決辦法/權限以及相關設置 6.字體變大,原有frame需要適配 7.推送 8.屏蔽雜亂無章的bug
更新Xcode8的小伙伴是不是崩的不要不要的
iOS 10相冊相機閃退bug
iOS 10 因蘋果健康導致閃退 crash
麥克風、多媒體、地圖、通訊錄
iOS 10相機等崩潰
iOS 10 配置須知
iOS開發 適配iOS 10以及Xcode8
iOS 10 推送須知
Xcode8新特性和坑
iOS 10 不log