如今在蘋果的官網上,咱們已經能夠下載到Xcode8的GM版本了,加上9.14日凌晨,蘋果就要正式推出iOS10系統的推送了,在此之際,iOS10的適配已經迫在眉睫啦,不知道Xcode8 beat版本,童鞋們有木有下載過來試試呢?就個人使用來講,整體以爲蘋果仍是坑不斷,可是也在一直進步的啦。下面我就來講說,iOS10的適配以及Xcode8使用上的一些注意點。ios
用Xcode8打開工程後,比較明顯的就是下圖了,這個是蘋果的新特性,能夠幫助咱們自動管理證書。建議你們勾選這個Automatically manage signing
(Ps.可是在beat2版本我用的時候,徹底不能夠,GM版本居然神奇的又好了。)web
下面我來講說可能會出現的問題:xcode
1.Xcode未設置開發者帳號狀況下的截圖bash
解決辦法是:你們在Xcode的偏好設置中,添加蘋果帳號,便可。網絡
2.設備機器未添加進開發者的Device狀況下的截圖多線程
解決辦法是:你們在官網將設備添加進開發機後,陪下描述文件從新下個描述文件便可。架構
3.正常狀況:Xcode配置登陸開發者帳號後的圖片,耐心等待便可。app
等待完成以後的圖ide
使用Xcode8打開xib文件後,會出現下圖的提示。佈局
你們選擇Choose Device便可。 以後你們會發現佈局啊,frame亂了,只須要更新一下frame便可。以下圖
注意:若是按上面的步驟操做後,在用Xcode7打開Xib會報一下錯誤,
解決辦法:須要刪除Xib裏面
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
複製代碼
這句話,以及把< document >中的toolsVersion和< plugIn >中的version改爲你正常的xib文件中的值 ,不過不建議這麼作,在Xcode8出來後,但願你們都快速上手,全員更新。這就跟Xcode5到Xcode6同樣,有變更,可是仍是要儘早學習,儘快適應喲!
使用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, 在Environment Variables裏邊添加 OS_ACTIVITY_MODE = Disable
Ps.考慮到添加上述內容在Xcode8後,真機調試可能出現異常,你們能夠自定義一個宏定義,來作日誌輸出。
#ifdef DEBUG
#define DDLOG(...) printf(" %s\n",[[NSString stringWithFormat:__VA_ARGS__]UTF8String]);
#define DDLOG_CURRENT_METHOD NSLog(@"%@-%@", NSStringFromClass([self class]), NSStringFromSelector(_cmd))
#else
#define DDLOG(...) ;
#define DDLOG_CURRENT_METHOD ;
#endif
複製代碼
你們有任何問題,能夠評論給我~ 若是寫的不錯,但願你們能夠關注我。感謝。
加qq邀請你加入 2507671038