《iOS组件与框架——iOS SDK高级特性剖析》——第8章,第8.2节配置应用以支持iCloud

简介:

本节书摘来自异步社区《iOS组件与框架——iOS SDK高级特性剖析》一书中的第8章,第8.2节配置应用以支持iCloud,作者 【美】Kyle Richter , Joe Keeley,更多章节内容可以访问云栖社区“异步社区”公众号查看

8.2 配置应用以支持iCloud
iOS组件与框架——iOS SDK高级特性剖析
要配置应用以使用iCloud,以前必须执行多个步骤:给应用指定权限(Entitlement),并前往iOS供应配置文件门户(iOS Provisioning Portal)配置应用。iCloud功能只能在设备上测试,因此要让iCloud应用能够正确运行,必须先完成与供应配置文件相关的工作。Xcode 5推出后,这个过程极大地简化了,在Xcode 5中就能完成。

8.2.1 设置账户
为连接到Member Center并代表开发人员执行所需的iCloud配置工作,Xcode 5需要iOS开发人员信息。选择菜单Xcode>Preferences,再选择选项卡Accounts,如图8.1所示。


15d3e0de12e366be94c18385206eee22e72e6cb2

图8.1 Xcode 5的Accounts选项卡

要添加新账户,单击Accounts选项卡左下角的加号并选择Apple ID。输入账户凭证,再单击Add按钮。Xcode将验证凭证,并在凭证有效时收集账户信息。可单击View Details按钮,以查看账户凭证以及为账户配置的供应配置文件,如图8.2所示。


6daa5cdf4b555464f14beb55e2baab7f5eb1b042

图8.2 Xcode 5的账户详情视图

8.2.2 启用iCloud功能
有了账户凭证后,Xcode 5便可使用这个账户给应用配置功能。它可根据需要设置App ID、权限和供应配置文件。为配置iCloud功能,在Xcode中选择Targets下的MyNotes,单击标签Capabilities,并找到iCloud部分。将iCloud开关设置为On,Xcode将自动为项目创建一个权限文件。选中复选框Use key-value store,为应用启用键值存储功能。Xcode将在Ubiquity Containers表中自动添加一项,其值为应用的束ID。就这个示例应用而言,这就够了;如果应用更复杂,需要与Mac OS X应用共享数据并支持多个无处不在的容器(ubiquity container),可在这里添加其他的名称。Xcode将向开发人员门户核实,确定为iCloud配置的App ID是否正确。如果不正确,Xcode将指出问题,如图8.3所示。如果您轻按按钮Fix Issue,Xcode将与开发人员门户联系,并修复所有的应用设置问题。


157e4eb80c013bfc6cb3d792281c141e84e944d9

图8.3 配置iCloud功能

8.2.3 初始化iCloud
应用每次运行时,都必须调用NSFileManager的方法URLForUbiquityContainerIdentifier,以获取用于存储和同步文件的iCloud容器的URL。为此,在应用委托的方法application: didFinishLaunchingWithOptions:中,调用了访问setupiCloud。


4e6f1886109a1fb35c21ee8431e5e8fa645faeb4

首次调用时,方法URLForUbiquityContainerIdentifier将为应用设置目录;以后调用时,它将核实URL是否还在。如果为应用启用了iCloud,将返回一个有效的URL;如果禁用了iCloud,将返回nil。用户完全有可能对应用(甚至整个设备)禁用iCloud,导致iCloud不再可用。在实际应用中,应在iCloud不可用时通知用户,并将所有文件操作都重定向到本地的Documents目录。

需要注意的一个重要细节是,对URLForUbiquityContainer:的调用是在一个后台队列中进行的。这样做是因为这个方法返回的时间不确定。如果调用它时还没有任何iCloud数据,它将很快执行完毕并返回;然而,如果调用它时有多个文档需要下载,系统可能花一段时间来设置目录并使用云端数据填充文件。必须考虑这种延迟问题,以免影响用户界面的响应速度。

相关文章
|
7月前
|
数据采集 监控 API
移动端性能监控探索:iOS RUM SDK 技术架构与实践
阿里云 RUM SDK 作为一款性能体验监控采集工具,可以作为辅助 App 运维的强有力助手,提升您的问题排查效率。
434 70
|
存储 人工智能 监控
大牛直播SDK在四足机器人和无人机巡检中的创新应用方案
在工业4.0和智能化浪潮下,传统巡检方式正经历深刻变革。四足机器人与无人机凭借灵活机动性和高效巡检能力崭露头角,而大牛直播SDK则赋予其实时直播与智能互动功能。本文介绍大牛直播SDK的核心优势、在四足机器人和无人机巡检中的应用方案,以及技术实现要点和未来展望,展示智能巡检的广阔前景。
441 6
|
前端开发 安全 开发工具
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
1028 90
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
|
监控 开发工具 Android开发
ARMS 用户体验监控正式发布原生鸿蒙应用 SDK
阿里云 ARMS 用户体验监控(RUM)推出了针对原生鸿蒙应用的 SDK。SDK 使用 ArkTS 语言开发,支持页面采集、资源加载采集、异常采集及自定义采集等功能,能够全面监控鸿蒙应用的表现。集成简单,只需几步即可将 SDK 接入项目中,为鸿蒙应用的开发者提供了强有力的支持。
842 119
|
前端开发 Java Shell
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
964 20
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
|
JSON 运维 Serverless
Serverless 应用引擎使用问题之ThinkPHP框架是否有基于SDK的demo
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
API 开发工具 vr&ar
PicoVR Unity SDK⭐️一、SDK下载、项目设置与程序初始配置
PicoVR Unity SDK⭐️一、SDK下载、项目设置与程序初始配置
|
数据可视化 API 开发工具
影创SDK☀️三、工程默认配置,及基础测试建议
影创SDK☀️三、工程默认配置,及基础测试建议
|
Java API 开发工具
影创SDK☀️二、开发环境配置
影创SDK☀️二、开发环境配置
|
移动开发 JavaScript 开发工具
Mac 10.9x下安装配置phonegap3.0开发环境 (涉及android sdk配置)
Mac 10.9x下安装配置phonegap3.0开发环境 (涉及android sdk配置)