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

相关文章
|
搜索推荐 数据管理 定位技术
iOS应用开发中有多种主流框架
iOS应用开发中有多种主流框架
980 60
|
开发框架 前端开发 Android开发
Flutter 与原生模块(Android 和 iOS)之间的通信机制,包括方法调用、事件传递等,分析了通信的必要性、主要方式、数据传递、性能优化及错误处理,并通过实际案例展示了其应用效果,展望了未来的发展趋势
本文深入探讨了 Flutter 与原生模块(Android 和 iOS)之间的通信机制,包括方法调用、事件传递等,分析了通信的必要性、主要方式、数据传递、性能优化及错误处理,并通过实际案例展示了其应用效果,展望了未来的发展趋势。这对于实现高效的跨平台移动应用开发具有重要指导意义。
1744 4
|
12月前
|
数据采集 监控 API
移动端性能监控探索:iOS RUM SDK 技术架构与实践
阿里云 RUM SDK 作为一款性能体验监控采集工具,可以作为辅助 App 运维的强有力助手,提升您的问题排查效率。
608 82
|
存储 人工智能 监控
大牛直播SDK在四足机器人和无人机巡检中的创新应用方案
在工业4.0和智能化浪潮下,传统巡检方式正经历深刻变革。四足机器人与无人机凭借灵活机动性和高效巡检能力崭露头角,而大牛直播SDK则赋予其实时直播与智能互动功能。本文介绍大牛直播SDK的核心优势、在四足机器人和无人机巡检中的应用方案,以及技术实现要点和未来展望,展示智能巡检的广阔前景。
601 6
|
前端开发 安全 开发工具
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
1276 90
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
|
移动开发 网络协议 小程序
基于开源IM即时通讯框架MobileIMSDK:RainbowChat-iOS端v10.0版已发布
RainbowChat是一套基于开源IM即时通讯聊天框架 MobileIMSDK 的产品级移动端IM系统。RainbowChat源于真实运营的产品,解决了大量的屏幕适配、细节优化、机器兼容问题。RainbowChat可能是市面上提供im即时通讯聊天源码的,唯一一款同时支持TCP、UDP两种通信协议的IM产品。与姊妹产品RainbowTalk和RainbowChat-Web 技术同源,历经考验。
1009 0
基于开源IM即时通讯框架MobileIMSDK:RainbowChat-iOS端v10.0版已发布
|
监控 开发工具 Android开发
ARMS 用户体验监控正式发布原生鸿蒙应用 SDK
阿里云 ARMS 用户体验监控(RUM)推出了针对原生鸿蒙应用的 SDK。SDK 使用 ArkTS 语言开发,支持页面采集、资源加载采集、异常采集及自定义采集等功能,能够全面监控鸿蒙应用的表现。集成简单,只需几步即可将 SDK 接入项目中,为鸿蒙应用的开发者提供了强有力的支持。
1060 134
|
iOS开发 开发者 MacOS
深入探索iOS开发中的SwiftUI框架
【10月更文挑战第21天】 本文将带领读者深入了解Apple最新推出的SwiftUI框架,这一革命性的用户界面构建工具为iOS开发者提供了一种声明式、高效且直观的方式来创建复杂的用户界面。通过分析SwiftUI的核心概念、主要特性以及在实际项目中的应用示例,我们将展示如何利用SwiftUI简化UI代码,提高开发效率,并保持应用程序的高性能和响应性。无论你是iOS开发的新手还是有经验的开发者,本文都将为你提供宝贵的见解和实用的指导。
618 66
|
前端开发 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
1182 20
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
|
iOS开发 开发者 Windows
uniapp云打包ios应用证书的获取方法,生成指南
打包用到的一共两个文件,一个是p12格式的私钥证书,一个是证书profile文件。其中生成p12证书的时候,按照官网的教程,是需要MAC电脑来协助做的,主要是生成一些csr文件和导出p12证书等。其实这些步骤也可以借助一些其他的工具来实现,不一定使用mac电脑,用windows电脑也可以创建。
1768 0