1、證書管理web
用Xcode8打開工程後,比較明顯的就是下圖了,這個是蘋果的新特性,能夠幫助咱們自動管理證書。建議你們勾選這個Automatically manage signing(Ps.可是在beat2版本我用的時候,徹底不能夠,GM版本居然神奇的又好了。)xcode
下面我來講說可能會出現的問題:app
1.Xcode未設置開發者帳號狀況下的截圖ide
解決辦法是:你們在Xcode的偏好設置中,添加蘋果帳號,便可。佈局
2.設備機器未添加進開發者的Device狀況下的截圖學習
解決辦法是:你們在官網將設備添加進開發機後,陪下描述文件從新下個描述文件便可。字體
3.正常狀況:Xcode配置登陸開發者帳號後的圖片,耐心等待便可。spa
等待完成以後的圖插件
2、Xib文件的注意事項debug
使用Xcode8打開xib文件後,會出現下圖的提示。
你們選擇Choose Device便可。
以後你們會發現佈局啊,frame亂了,只須要更新一下frame便可。以下圖
注意:若是按上面的步驟操做後,在用Xcode7打開Xib會報一下錯誤,
解決辦法:須要刪除Xib裏面
這句話,以及把中的toolsVersion和中的version改爲你正常的xib文件中的值
,不過不建議這麼作,在Xcode8出來後,但願你們都快速上手,全員更新。這就跟Xcode5到Xcode6同樣,有變更,可是仍是要儘早學習,儘快適應喲!
3、代碼及API注意
使用Xcode8以後,有些代碼可能就編譯不過去了,具體我就說說我碰到的問題。
1.UIWebView的代理方法:
**注意要刪除NSError前面的 nullable,不然報錯。
1
2
3
4
|
- (void)webView:(UIWebView *)webView didFailLoadWithError:(nullable NSError *)error
{
[self hideHud];
}
|
4、代碼註釋不能用的解決辦法
這個是由於蘋果解決xcode ghost,把插件屏蔽了。
解決方法
打開終端,命令運行: sudo /usr/libexec/xpccachectl
而後必須重啓電腦後生效
注意:Xcode8內置了開啓註釋的功能,位置在這裏
快捷鍵的設置在這裏
貌似Xcode8取消了三方插件的功能,具體能夠查閱下Xcode8 Source Editor
5、權限以及相關設置
注意,添加的時候,末尾不要有空格
咱們須要打開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 咱們須要經過您的地理位置信息獲取您周邊的相關數據
定位的須要這麼寫,防止上架被拒。
6、字體變大,原有frame須要適配
經有的朋友提醒,發現程序內原來2個字的寬度是24,如今2個字須要27的寬度來顯示了。。
但願有解決辦法的朋友,評論告我一下耶,謝謝啦
7、推送
以下圖的部分,不要忘記打開。全部的推送平臺,不論是極光仍是什麼的,要想收到推送,這個是必須打開的喲??
以後就應該能夠收到推送了。另外,極光推送也推出新版本了,你們也能夠更新下。
PS.蘋果此次對推送作了很大的變化,但願你們多查閱查閱,處理推送的代理方法也變化了。
iOS10收到通知再也不是在
[application: didReceiveRemoteNotification:]方法去處理, iOS10推出新的代理方法,接收和處理各種通知(本地或者遠程)
1
|
- (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);}
|
稍後我會更新文章,對推送作一個詳細的講解。
8.屏蔽雜亂無章的bug
更新Xcode8以後,新創建工程,都會打印一堆莫名其妙看不懂的Log.
如這些
1
|
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
若是寫了以後仍是打印log,請從新勾選對勾,就能夠解決了。
Ps.考慮到添加上述內容在Xcode8後,真機調試可能出現異常,你們能夠自定義一個宏定義,來作日誌輸出。
1
2
3
4
5
6
7
8
9
10
11
|
#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
|