《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数据,它将很快执行完毕并返回;然而,如果调用它时有多个文档需要下载,系统可能花一段时间来设置目录并使用云端数据填充文件。必须考虑这种延迟问题,以免影响用户界面的响应速度。

相关文章
|
9天前
|
搜索推荐 数据管理 定位技术
iOS应用开发中有多种主流框架
iOS应用开发中有多种主流框架
128 60
|
3月前
|
物联网 区块链 vr&ar
未来已来:探索区块链、物联网与虚拟现实技术的融合与应用安卓与iOS开发中的跨平台框架选择
【8月更文挑战第30天】在科技的巨轮下,新技术不断涌现,引领着社会进步。本文将聚焦于当前最前沿的技术——区块链、物联网和虚拟现实,探讨它们各自的发展趋势及其在未来可能的应用场景。我们将从这些技术的基本定义出发,逐步深入到它们的相互作用和集成应用,最后展望它们如何共同塑造一个全新的数字生态系统。
|
9天前
|
iOS开发 开发者
探索iOS开发中的SwiftUI框架
【10月更文挑战第39天】在苹果的生态系统中,SwiftUI框架以其声明式语法和易用性成为开发者的新宠。本文将深入SwiftUI的核心概念,通过实际案例展示如何利用这一框架快速构建用户界面,并探讨其对iOS应用开发流程的影响。
|
28天前
|
移动开发 网络协议 小程序
基于开源IM即时通讯框架MobileIMSDK:RainbowChat-iOS端v9.1版已发布
RainbowChat是一套基于开源IM聊天框架 MobileIMSDK 的产品级移动端IM系统。RainbowChat源于真实运营的产品,解决了大量的屏幕适配、细节优化、机器兼容问题
56 5
|
27天前
|
Swift iOS开发 开发者
探索iOS开发中的SwiftUI框架
【10月更文挑战第21天】在苹果生态系统中,SwiftUI的引入无疑为iOS应用开发带来了革命性的变化。本文将通过深入浅出的方式,带领读者了解SwiftUI的基本概念、核心优势以及如何在实际项目中运用这一框架。我们将从一个简单的例子开始,逐步深入到更复杂的应用场景,让初学者能够快速上手,同时也为有经验的开发者提供一些深度使用的技巧和策略。
47 1
|
1月前
|
存储 安全 开发工具
百度公共IM系统的Andriod端IM SDK组件架构设计与技术实现
本文主要介绍了百度公共IM系统的Andriod端IM SDK的建设背景、IM SDK主要结构和工作流程以及建设过程遇到的问题和解决方案。
55 3
|
2月前
|
iOS开发 开发者 UED
探索iOS应用开发中的SwiftUI框架
【9月更文挑战第26天】 在iOS开发的海洋中,SwiftUI犹如一艘现代的快艇,引领着开发者们驶向更加高效与直观的编程体验。本文将带你领略SwiftUI的魅力,从其设计理念到实际应用,我们将一步步揭开它如何简化界面构建过程的面纱。通过对比传统方式,你将看到SwiftUI如何让代码变得像诗一样优美,同时保持强大的功能性和灵活性。准备好让你的iOS开发技能加速升级,一起驾驭这股新潮流吧!
|
2月前
|
前端开发 iOS开发 开发者
探索iOS开发中的SwiftUI框架
【9月更文挑战第21天】在iOS应用开发的广阔天地中,SwiftUI框架如一股清新之风,为开发者带来了声明式语法的便捷与高效。本文将深入探讨SwiftUI的核心概念、布局方式及数据绑定机制,同时通过实例演示如何运用SwiftUI构建用户界面,旨在引领读者领略SwiftUI的魅力,并激发其对iOS开发新趋势的思考与实践。
43 6
|
2月前
|
开发工具 Swift iOS开发
探索iOS开发中的SwiftUI框架
【9月更文挑战第1天】在本文中,我们将一起潜入iOS开发的海洋,特别聚焦于SwiftUI这一现代且富有表现力的框架。SwiftUI不仅简化了界面设计流程,还为开发者提供了声明式Swift语法的便利。通过这篇文章,你将学会如何利用SwiftUI构建灵活且响应式的用户界面,并理解其背后的原理。无论你是刚入门的新手还是寻求进阶的开发者,本文都将为你提供有价值的指导和启示。
|
3月前
|
设计模式 Java Android开发
探索安卓应用开发:从新手到专家的旅程探索iOS开发中的SwiftUI框架
【8月更文挑战第29天】本文旨在通过一个易于理解的旅程比喻,带领读者深入探讨安卓应用开发的各个方面。我们将从基础概念入手,逐步过渡到高级技术,最后讨论如何维护和推广你的应用。无论你是编程新手还是有经验的开发者,这篇文章都将为你提供有价值的见解和实用的代码示例。让我们一起开始这段激动人心的旅程吧!

热门文章

最新文章