http://blog.csdn.net/jnbbwyth/article/details/52576169php
http://www.cocoachina.com/ios/20161227/18451.htmlcss
升級Xcode8已經是必然,升級iOS 10的用戶不能說大有人在,應該也不會少,樓主據說,若是不升級Xcode8,上架最新的包,那麼可能應用在iOS 10 上是不支持的.so,這些Xcode8的新特性,你應該瞭解!!!
1.快捷鍵 command + / 註釋失效; html
解決方法1: Xcode -> preferences -> key bindings 中的comment selection 是否設置上快捷鍵了 ios
解決方法2: 第四個問題詳解
2.Xcode8支持iOS 8如下真機測試方法:web
應用程序-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如下的真機 也能夠正常測試了
xcode
3.若是項目中包含證書app
證書內包含的Id 必須與 bundle Id 保持一致才行,開發者team帳號必須建立了 該 bundle Id 對應的證書,就是說不是全部的蘋果帳號都能真機測試了(這裏說的是項目中有證書的前提下)
4.使用Xcode 8建立新項目ide
會讓你選擇開發者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_時雨 連接
好文推薦一
內含:
證書管理/xib注意事項/代碼及Api注意/代碼註釋不能用的解決辦法/權限以及相關設置 6.字體變大,原有frame須要適配 7.推送 8.屏蔽雜亂無章的bug
好文推薦二
iOS 10相冊相機閃退bug
iOS 10 因蘋果健康致使閃退 crash
麥克風、多媒體、地圖、通信錄
iOS 10相機等崩潰
iOS 10 配置須知
iOS開發 適配iOS 10以及Xcode8
好文推薦三
好文推薦四
好文推薦五
用Xcode8打開工程後,比較明顯的就是下圖了,這個是蘋果的新特性,能夠幫助咱們自動管理證書。建議你們勾選這個Automatically manage signing(Ps.可是在beat2版本我用的時候,徹底不能夠,GM版本居然神奇的又好了。)
下面我來講說可能會出現的問題:
1.Xcode未設置開發者帳號狀況下的截圖
解決辦法是:你們在Xcode的偏好設置中,添加蘋果帳號,便可。
2.設備機器未添加進開發者的Device狀況下的截圖
解決辦法是:你們在官網將設備添加進開發機後,陪下描述文件從新下個描述文件便可。
3.正常狀況:Xcode配置登陸開發者帳號後的圖片,耐心等待便可。
等待完成以後的圖
使用Xcode8打開xib文件後,會出現下圖的提示。
你們選擇Choose Device便可。
以後你們會發現佈局啊,frame亂了,只須要更新一下frame便可。以下圖
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
這句話,以及把< document >中的toolsVersion和< plugIn >中的version改爲你正常的xib文件中的值使用Xcode8以後,有些代碼可能就編譯不過去了,具體我就說說我碰到的問題。
1.UIWebView的代理方法:
**注意要刪除NSError前面的 nullable,不然報錯。
- (void)webView:(UIWebView *)webView didFailLoadWithError:(nullable NSError *)error { [self hideHud]; }
這個是由於蘋果解決xcode ghost,把插件屏蔽了。
解決方法
打開終端,命令運行: sudo /usr/libexec/xpccachectl
而後必須重啓電腦後生效
注意:Xcode8內置了開啓註釋的功能,位置在這裏
快捷鍵的設置在這裏
貌似Xcode8取消了三方插件的功能,具體能夠查閱下Xcode8 Source Editor
注意,添加的時候,末尾不要有空格
咱們須要打開info.plist文件添加相應權限的說明,不然程序在iOS10上會出現崩潰。
具體以下圖:
麥克風權限: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 咱們須要經過您的地理位置信息獲取您周邊的相關數據
定位的須要這麼寫,防止上架被拒。
經有的朋友提醒,發現程序內原來2個字的寬度是24,如今2個字須要27的寬度來顯示了。。
但願有解決辦法的朋友,評論告我一下耶,謝謝啦
以下圖的部分,不要忘記打開。全部的推送平臺,不論是極光仍是什麼的,要想收到推送,這個是必須打開的喲✌️
以後就應該能夠收到推送了。另外,極光推送也推出新版本了,你們也能夠更新下。
PS.蘋果此次對推送作了很大的變化,但願你們多查閱查閱,處理推送的代理方法也變化了。
// 推送的代理 [<UNUserNotificationCenterDelegate>]
iOS10收到通知再也不是在[application: didReceiveRemoteNotification:]
方法去處理, iOS10推出新的代理方法,接收和處理各種通知(本地或者遠程)
- (void)userNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(UNNotificationPresentationOptions))completionHandler { //應用在前臺收到通知 NSLog(@"========%@", notification);}- (void)userNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void (^)())completionHandler { //點擊通知進入應用 NSLog(@"response:%@", response);}
稍後我會更新文章,對推送作一個詳細的講解。
更新Xcode8以後,新創建工程,都會打印一堆莫名其妙看不懂的Log.
如這些
subsystem: com.apple.UIKit, category: HIDEventFiltered, enable_level: 0, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 1,
屏蔽的方法以下:
Xcode8裏邊 Edit Scheme-> Run -> Arguments, 或者用快捷鍵打開:ctrl+shift+<,在Environment Variables裏邊添加
OS_ACTIVITY_MODE = Disable
若是寫了以後仍是打印log,請從新勾選對勾,就能夠解決了