iOS 10 與Xcode 8 新特性

iOS 10


1. 訪問(wèn)權(quán)限崩潰問(wèn)題

如果打開(kāi)APP后點(diǎn)擊有關(guān)權(quán)限訪問(wèn)后直接Crash了則需要在需要在info.plist文件中進(jìn)行相關(guān)配置(藍(lán)牙焰宣,日歷蒿讥,相機(jī)达椰,相冊(cè)挂绰,相機(jī)屎篱,聯(lián)系人,健康等權(quán)限...)

權(quán)限配置步驟:

  1. 打開(kāi)項(xiàng)目中的info.plist文件
  2. 在info.plist文件Add Row一行后選擇相應(yīng)的權(quán)限進(jìn)行添加
  3. 先去相應(yīng)的Key葵蒂,Value 應(yīng)該可以隨便填寫
配置地方

如果一個(gè)個(gè)添加嫌麻煩可以全部添加到plist文件中



打開(kāi)plist源文件后添加如

<key>NSBluetoothPeripheralUsageDescription</key>
<string>App需要您的同意,才能訪問(wèn)藍(lán)牙</string> 
<key>NSCalendarsUsageDescription</key>
<string>App需要您的同意,才能訪問(wèn)日歷</string>
<key>NSCameraUsageDescription</key>
<string>App需要您的同意,才能訪問(wèn)相機(jī)</string>
<key>NSHealthShareUsageDescription</key>
<string>App需要您的同意,才能訪問(wèn)健康分享</string>
<key>NSHealthUpdateUsageDescription</key>
<string>App需要您的同意,才能訪問(wèn)健康更新 </string>
<key>NSHomeKitUsageDescription</key>
<string>App需要您的同意,才能訪問(wèn)家庭 </string>
<key>NSContactsUsageDescription</key>
<string>App需要您的同意,才能訪問(wèn)通訊錄 </string>
<key>NSLocationAlwaysUsageDescription</key>
<string>App需要您的同意,才能始終訪問(wèn)位置</string>
<key>NSLocationUsageDescription</key>
<string>App需要您的同意,才能訪問(wèn)位置</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>App需要您的同意,才能在使用期間訪問(wèn)位置</string>
<key>NSAppleMusicUsageDescription</key> 
<string>App需要您的同意,才能訪問(wèn)媒體資料庫(kù)</string>
<key>NSMicrophoneUsageDescription</key>    
<string>App需要您的同意,才能訪問(wèn)麥克風(fēng)</string>
<key>NSMotionUsageDescription</key>
<string>App需要您的同意,才能訪問(wèn)運(yùn)動(dòng)與健身</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>App需要您的同意,才能訪問(wèn)相冊(cè)</string>
<key>NSRemindersUsageDescription</key>   
<string>App需要您的同意,才能訪問(wèn)提醒事項(xiàng)</string>
<key>NSSiriUsageDescription</key>
<string>App需要您的同意,才能訪問(wèn)Siri</string>
<key>NSSpeechRecognitionUsageDescription</key>
<string>App需要您的同意,才能訪問(wèn)語(yǔ)音識(shí)別</string>
<key>NSVideoSubscriberAccountUsageDescription</key>
<string>App需要您的同意,才能訪問(wèn)視頻用戶賬戶</string>```

#2. nullable報(bào)錯(cuò)問(wèn)題
使用Xcode8之后交播,需要?jiǎng)h除nullable否則報(bào)錯(cuò)

-(void)webView:(UIWebView *)webView didFailLoadWithError:(nullable NSError *)error```

3. ATS(App Transport Security) 網(wǎng)絡(luò)適配問(wèn)題

  1. iOS 9時(shí),默認(rèn)HTTS的網(wǎng)絡(luò)是被禁止的, 但可以通過(guò)向info.plist文件中添加NSAppTransportSecurity践付,并將NSAllowsArbitraryLoads設(shè)置為YES來(lái)禁用ATS秦士。但是,從2017年1月1日起永高,所有新提交的APP默認(rèn)不允許配置NSAllowsArbitraryLoads來(lái)繞過(guò)ATS的限制隧土,所以你的APP應(yīng)盡早使用HTTPS進(jìn)行內(nèi)容訪問(wèn),以避免APP被拒絕風(fēng)險(xiǎn)命爬。
  2. 如果APP中如果集成了第三方的SDK曹傀,則可以通過(guò)NSAppTransportSecurity中NSExceptionDomains設(shè)置白名單的方式對(duì)特定的域名開(kāi)放HTTP內(nèi)容來(lái)通過(guò)審核。
    NSExceptionDomains設(shè)置方法
  3. 在NSAppTransportSecurity 中新加入了NSAllowsArbitraryLoadsInWebContent鍵饲宛,允許任意web頁(yè)面加載皆愉,同時(shí)蘋果會(huì)用 ATS 來(lái)保護(hù)你的app。

4.新增UIViewPropertyAnimator類

類特點(diǎn):

1.可中斷性
2.可擦除
3.可反轉(zhuǎn)性
4.豐富的動(dòng)畫時(shí)間控制功能

//初始化屬性動(dòng)畫器
UIViewPropertyAnimator *viewPropertyAnimator = [[UIViewPropertyAnimator alloc] initWithDuration:5.f curve:UIViewAnimationCurveLinear animations:^{
    [self.view setAlpha:0.3];
}];
[viewPropertyAnimator startAnimation];

5.Notification(通知)

  • 所有相關(guān)通知被統(tǒng)一到了UserNotifications.framework框架中艇抠。
  • 增加了撤銷幕庐、更新、中途還可以修改通知的內(nèi)容练链。
  • 通知中可以加入視頻翔脱、圖片,自定義通知的展示等等媒鼓。
  • 相對(duì)之前的通知來(lái)說(shuō)更加好用易于管理届吁,并且進(jìn)行了大規(guī)模優(yōu)化错妖。
  • 對(duì)于權(quán)限問(wèn)題進(jìn)行了優(yōu)化,申請(qǐng)權(quán)限就比較簡(jiǎn)單了(本地與遠(yuǎn)程通知集成在一個(gè)方法中)疚沐。
    通知相關(guān)參考

6.UIStatusBar方法過(guò)期

過(guò)期方法:

// Setting the statusBarStyle does nothing if your application is using the default UIViewController-based status bar system.
@property(readwrite, nonatomic) UIStatusBarStyle statusBarStyle NS_DEPRECATED_IOS(2_0, 9_0, "Use -[UIViewController preferredStatusBarStyle]") __TVOS_PROHIBITED;
- (void)setStatusBarStyle:(UIStatusBarStyle)statusBarStyle animated:(BOOL)animated NS_DEPRECATED_IOS(2_0, 9_0, "Use -[UIViewController preferredStatusBarStyle]") __TVOS_PROHIBITED;

// Setting statusBarHidden does nothing if your application is using the default UIViewController-based status bar system.
@property(readwrite, nonatomic,getter=isStatusBarHidden) BOOL statusBarHidden NS_DEPRECATED_IOS(2_0, 9_0, "Use -[UIViewController prefersStatusBarHidden]") __TVOS_PROHIBITED;
- (void)setStatusBarHidden:(BOOL)hidden withAnimation:(UIStatusBarAnimation)animation NS_DEPRECATED_IOS(3_2, 9_0, "Use -[UIViewController prefersStatusBarHidden]") __TVOS_PROHIBITED;```
新方法:

if UIKIT_DEFINE_AS_PROPERTIES

@property(nonatomic, readonly) UIStatusBarStyle preferredStatusBarStyle NS_AVAILABLE_IOS(7_0) __TVOS_PROHIBITED; // Defaults to UIStatusBarStyleDefault
@property(nonatomic, readonly) BOOL prefersStatusBarHidden NS_AVAILABLE_IOS(7_0) __TVOS_PROHIBITED; // Defaults to NO
// Override to return the type of animation that should be used for status bar changes for this view controller. This currently only affects changes to prefersStatusBarHidden.
@property(nonatomic, readonly) UIStatusBarAnimation preferredStatusBarUpdateAnimation NS_AVAILABLE_IOS(7_0) __TVOS_PROHIBITED; // Defaults to UIStatusBarAnimationFade

else

  • (UIStatusBarStyle)preferredStatusBarStyle NS_AVAILABLE_IOS(7_0) __TVOS_PROHIBITED; // Defaults to UIStatusBarStyleDefault
  • (BOOL)prefersStatusBarHidden NS_AVAILABLE_IOS(7_0) __TVOS_PROHIBITED; // Defaults to NO
    // Override to return the type of animation that should be used for status bar changes for this view controller. This currently only affects changes to prefersStatusBarHidden.
  • (UIStatusBarAnimation)preferredStatusBarUpdateAnimation NS_AVAILABLE_IOS(7_0) __TVOS_PROHIBITED; // Defaults to UIStatusBarAnimationFade

endif```

上面這個(gè)新方法在UIViewController.h文件中暂氯,只需要在viewController里調(diào)用即可。

- (BOOL)prefersStatusBarHidden{ 
  return YES;
}

- (UIStatusBarStyle)preferredStatusBarStyle{  
  return UIStatusBarStyleDefault;
}```

##7.插件取消
Xcode8取消了三方插件的功能亮蛔,好多教程破解可以繼續(xù)使用痴施,但是可能app上線可能會(huì)被拒。

#Xcode 8 
---
Xcode 8 可以創(chuàng)建iPhone究流,iPad辣吃,Apple Watch,Mac芬探,Apple TV 等平臺(tái)的應(yīng)用程序神得。

![Xcode 8 首界面](http://upload-images.jianshu.io/upload_images/2529977-c4a3f37cef2c061e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

##1. Swift 3
Swift 3對(duì)大量語(yǔ)法進(jìn)行了優(yōu)化及更新,會(huì)對(duì)Swift 3以前的版本會(huì)有影響偷仿,為解決此問(wèn)題Xcode 8在編譯設(shè)置中支持開(kāi)發(fā)者選擇Swift 2或Swift 2.3 進(jìn)行編譯哩簿。
如果一個(gè)目標(biāo)(Target)需要支持Swift 2.3, 需要在目標(biāo)(Target)的編譯設(shè)置里把Use Legacy Swift Language Version 設(shè)置成Yes
![支持Swift語(yǔ)言以往版本](http://upload-images.jianshu.io/upload_images/2529977-6b613df856043023.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

##2. 證書管理
Xcode 8添加了自動(dòng)管理證書功能。
建議勾選這個(gè)選項(xiàng)Automatically manage signing
如未設(shè)置開(kāi)發(fā)者賬號(hào)酝静,則需要在xcode->preferences->Accounts中添加

![自動(dòng)管理證書](http://upload-images.jianshu.io/upload_images/2529977-81d200dcecac3fa6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)


#Xcode 8問(wèn)題解決
---
##1. 代碼注釋快捷功能不能使用
解決方法
打開(kāi)終端 - 輸入命令運(yùn)行:sudo /usr/libexec/xpccachectl
重啟計(jì)算機(jī)

##2. 出現(xiàn)雜亂的Debug
會(huì)在Debug窗口出現(xiàn)如下信息
>2016-10-10 16:12:37.746003 HHRouterExample[9121:339626] 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, privacy_setting: 2, enable_private_data: 0

屏蔽方法
選擇Product-> Scheme -> Edit Scheme -> Run -> Arguments 然后在Environment Variables里添加`OS_ACTIVITY_MODE = Disable`
![屏蔽方法](http://upload-images.jianshu.io/upload_images/2529977-df319775614e7154.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
##官方鏈接地址
---
[UserNotifications](https://developer.apple.com/reference/usernotifications)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末节榜,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子别智,更是在濱河造成了極大的恐慌宗苍,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,311評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件薄榛,死亡現(xiàn)場(chǎng)離奇詭異浓若,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)蛇数,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門挪钓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人耳舅,你說(shuō)我怎么就攤上這事碌上。” “怎么了浦徊?”我有些...
    開(kāi)封第一講書人閱讀 152,671評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵馏予,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我盔性,道長(zhǎng)霞丧,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 55,252評(píng)論 1 279
  • 正文 為了忘掉前任冕香,我火速辦了婚禮蛹尝,結(jié)果婚禮上后豫,老公的妹妹穿的比我還像新娘。我一直安慰自己突那,他們只是感情好挫酿,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著愕难,像睡著了一般早龟。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上猫缭,一...
    開(kāi)封第一講書人閱讀 49,031評(píng)論 1 285
  • 那天葱弟,我揣著相機(jī)與錄音,去河邊找鬼猜丹。 笑死翘悉,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的居触。 我是一名探鬼主播,決...
    沈念sama閱讀 38,340評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼老赤,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼轮洋!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起抬旺,我...
    開(kāi)封第一講書人閱讀 36,973評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤弊予,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后开财,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體汉柒,經(jīng)...
    沈念sama閱讀 43,466評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評(píng)論 2 323
  • 正文 我和宋清朗相戀三年责鳍,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了碾褂。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,039評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡历葛,死狀恐怖正塌,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情恤溶,我是刑警寧澤乓诽,帶...
    沈念sama閱讀 33,701評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站咒程,受9級(jí)特大地震影響鸠天,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜帐姻,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評(píng)論 3 307
  • 文/蒙蒙 一稠集、第九天 我趴在偏房一處隱蔽的房頂上張望奶段。 院中可真熱鬧,春花似錦巍杈、人聲如沸忧饭。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,259評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)词裤。三九已至,卻和暖如春鳖宾,著一層夾襖步出監(jiān)牢的瞬間吼砂,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工鼎文, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留渔肩,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,497評(píng)論 2 354
  • 正文 我出身青樓拇惋,卻偏偏與公主長(zhǎng)得像周偎,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子撑帖,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 因?yàn)橐Y(jié)局swift3.0中引用snapKit的問(wèn)題,看到一篇介紹Xcode8,swift3變化的文章,覺(jué)得很詳細(xì)...
    uniapp閱讀 4,391評(píng)論 0 12
  • iOS6新特性 一缴罗、關(guān)于內(nèi)存警告 ios6中廢除了viewDidUnload助琐,viewWillUnload這兩個(gè)系...
    Jimmy_P閱讀 2,136評(píng)論 3 29
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件面氓、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,024評(píng)論 4 62
  • 今天我們上了主題為“節(jié)日”的班會(huì)弓柱,達(dá)成一個(gè)共識(shí):無(wú)論是中國(guó)的還是外國(guó)的節(jié)日,無(wú)論它的由來(lái)是什么侧但,無(wú)論是怎樣的慶祝方...
    常星慧閱讀 236評(píng)論 0 0
  • 1. 以前的一個(gè)學(xué)生A矢空,畢業(yè)前找了一個(gè)單位實(shí)習(xí),干了不到一個(gè)月辭職了禀横,她來(lái)找我的時(shí)候屁药,還帶著一臉憤憤不平的表情。 ...
    不辣的媽閱讀 324評(píng)論 0 2