iOS开发之适配iOS10以及Xcode8
简介
随着iOS 10的推出以及Xcode 8的正式发布,许多iOS开发者发现在新版本的开发环境中需要对项目进行一些适配工作才能确保应用程序在iOS 10上正常运行,本文将详细介绍如何适配iOS 10以及Xcode 8开发环境。
环境适配
在Xcode 8中,苹果引入了一些新特性以及变化,因此需要对开发环境进行一些调整才能正常开发。
Swift 3
Xcode 8引入了Swift 3语言,相对于Swift 2.x,有许多的不同之处,例如语言语法、API名称等,因此需要对应用程序做出相应的调整。开发者需要仔细阅读官方文档中的迁移指南才能较为顺利地完成工作。
Info.plist权限申请
在iOS 10中,苹果修改了应用程序对隐私信息的访问权限,必须通过Info.plist文件来向用户解释应用程序所需获取的隐私信息,并由用户进行授权。例如,在访问相机或者相册时,需要在Info.plist文件中添加相应的权限请求描述。
<key>NSCameraUsageDescription</key>
<string>使用相机进行拍照</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>访问相册进行图片选择</string>
ATS
在iOS 9中,苹果强制要求所有应用程序必须使用HTTPS协议来访问网络。在iOS 10中,这项要求更加严格,所有应用程序默认情况下都必须启用ATS(App Transport Security)安全传输协议,不再支持明文HTTP协议的访问。因此,开发者需要针对应用程序中涉及到的网络请求,在Info.plist文件中配置相应的ATS信息。
<key>NSAllowsArbitraryLoads</key>
<true/>
以上代码配置了应用程序可以允许任意网络请求(包括HTTP请求),但是这明显违背了ATS协议的本意,建议在实际使用时根据应用程序需要进行请求协议的限制。
接口适配
在适配开发环境的基础上,针对iOS 10中引入的新特性、接口等,进行相应的适配。
通知
iOS 10中对通知进行了重大改进,现在的通知支持丰富内容、扩展、交互等,开发者可以通过新的通知框架UNUserNotificationCenter来管理本地通知以及远程推送通知。
示例1:添加本地通知
let content = UNMutableNotificationContent()
content.title = "提醒"
content.body = "该开始工作了"
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 60, repeats: false)
let request = UNNotificationRequest(identifier: "WorkReminder", content: content, trigger: trigger)
UNUserNotificationCenter.current().add(request, withCompletionHandler: nil)
以上代码添加了一个60秒后触发的提醒通知,通知的标题为“提醒”,通知的正文内容为“该开始工作了”。
iOS 10自带的Speech
iOS 10中增加了一套Speech API,从而让应用程序可以通过文本转语音的方式来交互。
示例2:将文本转化为语音
import Speech
let synthesizer = AVSpeechSynthesizer()
let utterance = AVSpeechUtterance(string: "Hello, how are you doing today?")
synthesizer.speak(utterance)
以上代码通过使用iOS 10默认的AVSpeechSynthesizer类来将字符串“Hello, how are you doing today?”转化为语音,并播放出来。
结论
针对iOS 10以及Xcode 8带来的新变化,开发者需要对应用程序进行一些适配工作,从而保证应用程序在iOS 10上正常运行。在环境适配方面,需要注意Swift 3语言以及Info.plist文件的访问权限等。在接口适配方面,需要了解iOS 10中引入的新特性,例如UNUserNotificationCenter以及Speech API等。
希望本文对读者适配iOS 10以及Xcode 8开发环境有所帮助,同时也提醒读者随时关注官方文档更新以及变化。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:iOS开发之适配iOS10以及Xcode8 - Python技术站