配置iCloud,首先你就先要有一个真实的苹果开发者账号,没错,就是一年688的那个。开通了之后,在Xcode中新建一个项目。然后在 TARGETS - Capabilities - iCloud 中打开开关就可以了。
成都创新互联公司成立于2013年,我们提供高端网站建设、成都网站制作公司、成都网站设计、网站定制、全网整合营销推广、微信小程序、微信公众号开发、成都网站营销服务,提供专业营销思路、内容策划、视觉设计、程序开发来完成项目落地,为成都垃圾桶企业提供源源不断的流量和订单咨询。
就像这样,是不是很简单啊。
诶,可是好像有什么地方不对,有些地方爆红了。
这是因为我们还没有给这个App ID 注册,所以接下来我们去苹果的 开发者官网 添加一个App ID,在添加的时候勾选 iCloud 服务就可以啦。
什么?你说你已经创建过App ID了???没关系,在管理App ID这边选择 Edit ,然后在勾选 iCloud 也是一样的。
这时候回到Xcode中在看一下,应该就已经没有爆红了吧。
什么???还有爆红??? 那你重启一下XCode试试吧。再不行,你重启一下电脑试试好了。
在Xcode中 iCloud 下边一共有三个可以勾选的服务,其中第一个就是 key-value storage ,这个也是最简单的 iCloud 使用方法了,他跟 NSUserDefaults 的使用方法基本一样,都是以键值对的方式存储数据。只不过处理iCloud的类为 NSUbiquitousKeyValueStore 。
存储数据的方式很简单,只要使用 setObject:forkey: 之后,使用 synchronize 同步一下就可以了。
获取数据的方式也一样,是要使用 objectForKey 就可以了。
看一下 NSUbiquitousKeyValueStore 的头文件,我们发现他还有一个通知消息
注册这个通知,就可以在数据修改的时候接收到通知,然后做对应的处理。最好的验证方法就是在存储了数据之后直接删除掉这个app,然后再次安装,这个时候就会触发该通知。
先放一下demo的[ 地址 。
以上就是关于配置iCloud和key-value存储的简单使用,后边我们再看看其他两种服务是怎么样使用的。
相较于key-value的存储类型,Documents是用来管理一些比较大的文件,比如用户创建的文档等等。
在我们打开iCloud选项的时候,系统就是自动为我们添加一个 xxx.entitlements 的文件,这个东西用来保证应用的安全性,确保只有你的应用才能访问你自己创建的文档,系统也是依赖于他来区分用户的iCloud账户中每个应用的文档。
查看这个 xxx.entitlements 我们会发现在他里边有这样的一个key Ubiquity Container Identifiers ,对应的value为 iCloud.$(CFBundleIdentifier) 。其实这个 $(CFBundleIdentifier) 就代表这你的APP ID。所以也可以看成是 iCloud.com.zzr.ZZRiCloudDemo 。
NSFileManager 主要是对文件的操作,我们用它来获取iCloud的存储地址。
根据我们的entitlements,通过 NSFileManager 就可以获得iCloud的存储地址,在获取地址之后,我们要先判断一下获取的地址是否为空,如果这个地址为空,则说明用户的iCloud暂时不可用,接下来一切的操作都没办法进行下去。
UIDocument 主要是用于对文件内容的操作。
其实获取了文件的地址之后,我们已经可以直接对文件进行操作了,但是官方还是让我们通过 UIDocument 来操作,因为当我们在对iCloud进行操作的时候,不止是只有我们自己对他进行操作, iCloud daemon 也会对iCloud操作,用 UIDocument 操作能够保证存取安全。
在使用 UIDocument 之前,我们新建一个类,继承于 UIDocument ,并且重写两个方法:
NSMetadataQuery 主要用来查询数据。
有了之前的准备工作,创建一个文档就非常简单了,只要创建好我们要保存的文件,通过
就可以将文档上传到iCloud中了。
我们以一个txt文件作为示范。
修改文档,其实就是重写文档,就是将上边创建文档中的 UIDocumentSaveForCreating 改为 UIDocumentSaveForOverwriting 。
删除文档其实就是通过之前的地址获取到文件,然后调用remove方法即可。
之前讲了增加、删除、修改,好像增删改查中只剩下查询这个方法没有介绍了。查询和前边几个有点不同,他需要用到 NSMetadataQuery 。
直接调用 startQuery 开始查询,iCloud就已经开始帮我们查询了,查询好之后,iCloud会通过通知来告诉我们查询到了东西。
所以我们注册两个通知
并相应他们
其中
就是查询到的内容的数组,遍历他,就可以获取到对应目录下的全部文件了。
先放一下demo的 地址 。
demo简单的制作了一个text文档的存储功能,一些交互没有完善,但是基本的增删改查功能都已经实现了。
以上就是 iCloud Document 的简单使用。此文章仅供个人学习使用,如有不当,希望大佬指出。
原文:
移动互联网时代,掌握 iOS 开发和安卓开发 还是很有好处的,我最近在学习移动端开发的时候,最先遇到的问题就是环境安装问题了。
虽说网络上的教程已经很丰富了,但是也不是每次都很顺利,总是避免不了踩坑。这里就做一个 iOS 开发的踩坑笔记,不一定没个人都会遇到这些坑,但是如果你也恰巧遇到的话,希望能对你有一些帮助和启发。
首先声明一点,要本地打包 iOS 或者 macOS 的 APP,必须要 Mac 电脑,因为iOS软件必须用Xcode来打包。Xcode是苹果设备专用的开发工具,苹果做的这是一整套工具链,不跨平台。如果开发安卓APP的话无所谓Windows还是Mac,开发安卓用的Android Studio是跨平台的,Mac和Windows都可以安装使用。
再提一个小知识,现代Web开发迅速发展,一些跨平台框架如React Native、Ionic,可以做到一次开发,跨平台部署。这样的框架带来一个优势,你在开发阶段其实可以不用Mac,只需要有iPhone手机就可以,比如使用 expo 的服务,可以联网用自己的iPhone真机调试,使用官方提供的云部署来打包iOS APP。同样的Ionic也提供这样的服务,但是这类服务售价太高,可能不太适合个人开发者,而且没有iOS本地模拟器调试,可能还不太方便查问题,有兴趣的朋友可以深入了解下。
简单总结来说,一般情况下想要做iOS的开发,需要先备好Mac电脑。
我们依照 Capacitor 文档来搭建环境,Capacitor 是Ionic团队推出的打包原生APP的工具
于是我就只能在 Apple Store 上安装 Xcode 了,这个比较简单点,直接在 Apple Store 上搜索 Xcode 就行了。
这一步我这报错
报错信息大致说我需要Ruby开发环境,用以下两条命令安装 Xcode 命令行工具
然后又报出了新的错,提示我命令行工具已经安装过了,需要更新
先把旧的删除,再重新安装即可,所以这一步安装CocoaPods我需要以下4条命令
以上就是我在搭建iOS/macOS APP 开发环境的时候遇到的坑,作为一个笔记供大家参考。如果大家有更好的经验也欢迎分享出来。
前两天,在适配 HTTPS 时,由于我们的测试环境服务器没有启用 HTTPS,只有正式环境的服务器启用了 HTTPS ,所以在项目中需要针对不同环境做不同的 ATS 配置处理。这个配置也涉及到 info.plist 中 ATS 相关属性的修改,这也就引出了 info.plist 是否可以动态配置的问题了。
一开始,我想 info.plist 本质上是一个 XML 文件,那么 XML文件中可不可以通过 #ifdef DEBUG 宏定义来动态配置呢?然后我就尝试了一下这种做法,结果编译不通过。实践证明此方法不可行。
然后,我又想 build setting 中不是可以分别设置 debug 和 release 模式下的一些参数么,于是到 build setting 中搜索了一下 info.plist,没想到还真有这个模块,release 和 debug 模式的默认值都是 info.plist。
接下来,我自己也复制了一个 info.plist,并改名 infoDebug.plist,然后修改了一些针对 debug 模式的参数,最后回到 build setting 中,将对应的选项值改为 infoDebug.plist,Command+B 编译一下之后,大功告成!
除此之外,如果我们如果需要动态配置开发或者生产网络环境, 以及在多项目和运行中切换环境,可以借助 Xcode 配置文件 xcconfig 来实现。
ios开发硬件环境配置
硬件配置:
需要一台Mac电脑及一个iDevice——iPhone、iPad、iPod Touch均可,但三个设备都有的话,会对硬件配置更加有利,可以在不同设备上进行测试,确保app能在所有苹果设备上运行。
软件设置:
在ios app开发中,首先要先会运用iOS应用程序设计语言Objective-C(现在最新的ios程序设计语言为swift)进行app设计。
完成软件设计后,在开发应用程序时,需要使用Apple开发套件(SDK)以及Xcode,即ios的集成开发环境(IDE),进行代码调试、编译等。
在ios app配置前,需要下载最新版本的Xcode。
对于所有开发人员而言,开发环境都绝不会陌生,至少接触过 测试环境(debug) 和 生产环境(release) 。那么必然涉及到环境的切换。
一般我们打生产环境包的时候,是不是都通过宏来区分测试环境还是生产环境?是不是需要一遍遍确定当前环境是否是生产环境?万一选错了环境,提交了测试环境而不是生产环境,就浪费时间需要重新打包上传审核,甚至影响到产品的发布时机。而且,一旦没及时发现且通过了审核,就会造成很严重的后果,瞬间翻车。
所以针对这个问题,我们需要找到一个方法来避免风险,做到一键打包并且确保是生产环境,而不是通过选择是生产环境还是测试环境。
下面是一些通过网上找到的资料。有兴趣的可以自己去研究下 使用 Xcode 的 Target 区分开发和生产环境 , iOS 多环境下实现环境切换 ,以及 使用iOS APP的Build Configuration区分开发和生产环境 。
既然我们上传app store的包都是release包,而平时开发打的都是debug包,就可以从这点下手试试。
至此只需要简单的3个步骤,就将生产和测试环境区分开了,再也不需要频繁的设置宏来确保 Archive 的是不是正式环境了。测试的时候要打生产的包,也只需要修改 DEBUG 的部分就可以了。
3.通过PCH配置相应的环境
4.切换环境的方式
1.点PROJECT-Build Setting 下面的➕添加User-Definne
2.分别添加APP_BUNDLE_ID 和APP_DISPLAY_NAME两项,并配置各环境相对应的值。(这里面的display单词被写错了o(╥﹏╥)o)
1.在Assets中添加debug 和UAT环境对应的icon,原有的AppIcon作为release环境所对应的icon.
2.点PROJECT-Build Setting 找到Asset Catalog App Icon Set Name,将第一步中添加的icon名称配置到相应环境中。
iOS Xcode使用xcconfig配置环境参数(DebugRelease)
iOS Xcode 多个target的设置
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款