我在我的应用程序中启用 iCloud 以保存一些首选项。在功能部分启用了 iCloud,我的配置文件已更新:

我保存和检索测试示例的代码如下:
NSUbiquitousKeyValueStore *cloudStore = [NSUbiquitousKeyValueStore defaultStore];
if ([[cloudStore stringForKey:@"testString"] length] == 0) {
NSLog(@"Nothing in iCloud - setting a value...");
[cloudStore setString:@"I'm live in iCloud!" forKey:@"testString"];
[cloudStore synchronize];
} else {
NSString *result = [cloudStore stringForKey:@"testString"];
NSLog(@"Found something in iCloud - here it is: %@", result);
}
Run Code Online (Sandbox Code Playgroud)
我的问题是数据仅保存在本地(如 NSUserDefaults)。当我删除设备中的应用程序时,保存的数据不可恢复。在其他设备中,显然数据也无法恢复。
第一次保存数据。接下来,如果我再次打开该应用程序,则其他代码可以很好地检索数据。但是当我删除 de app 并再次运行时,数据没有保存。
似乎数据没有保存在 iCloud 上,只保存在本地。
我的项目中唯一的“奇怪”是项目名称与包名称不同。
更新:
我的问题仅在 iOs6 中。在 iOs7 中一切正常。当我在带有 iOs 6 的设备中调试我的应用程序时,“调试导航器”iCloud 部分显示:

配置 iCloud 的所有步骤似乎都没有问题(对于带有 iOs7 的设备工作正常),如果我使用以下代码测试它工作正常:
NSURL *ubiq …Run Code Online (Sandbox Code Playgroud) 我正在制作一个录制视频的应用程序,使用带有 CKAsset 的 CloudKit 将其上传到 iCloud,然后下载文件并在 AVPlayer 中播放。这都是用 Swift 2.0 编写的
我已经下载了数据,我想我已经能够参考它,但我不确定。当我将 URL 转换为 NSData 对象并将其打印到控制台时,数据/垃圾确实会打印。然而,视频文件作为二进制文件下载。我能够转到 CloudKit 仪表板并下载文件并将“.mov”附加到它,并且它在 Quicktime 中打开没问题。
所以我认为我的主要问题是我无法弄清楚如何让视频文件实际播放,因为该文件没有扩展名。我曾尝试使用 URLByAppendingPathExtension() 将 '.mov' 附加到末尾,但无济于事。让我知道任何想法!
上传视频
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
let tempURL = info[UIImagePickerControllerMediaURL] as! NSURL
dismissViewControllerAnimated(true) { () -> Void in
self.uploadVideoToiCloud(tempURL)
print("\n Before Upload: \(tempURL)\n")
}
}
func uploadVideoToiCloud(url: NSURL) {
let videoRecord = CKRecord(recordType: "video", recordID: id)
videoRecord["title"] = "This is the title"
let videoAsset = CKAsset(fileURL: url)
videoRecord["video"] = videoAsset
CKContainer.defaultContainer().privateCloudDatabase.saveRecord(videoRecord) …Run Code Online (Sandbox Code Playgroud) 我正在使用 CalDav 访问 Apple iCloud 日历。目前我的帐户中有 4 个日历:家庭、工作、测试校准 1、测试校准 2。前两个似乎是默认创建的,另外两个是测试日历。
然而,当我列出我的委托人的日历时,我得到 8 个不同的日历:
/calendars/64E6F061-DE12-4D6F-B7D4-5DFDE53C800C/是我的测试校准 1
/calendars/A1FBED21-5ED1-4BEF-8C4F-88A0D425BB7A/是我的 Test Cal 2
/calendars/home/主日历,相信这是主日历
/2003926771/calendars/work/工作日历
但我不确定这些其他日历的用途:
/calendars/inbox/
/calendars/notification/
/calendars/tasks/
/calendars/outbox/
可以尝试从他们的名字中猜测,但这会带来更多问题。tasks例如,可能意味着 VTODO 在此日历中进行管理,但这是否意味着 VTODO 未在任何其他日历中列出?
无论如何,主要问题是有人知道每个(默认?)iCloud 日历的用途吗?
正在使用 caldav 访问 icloud 日历,它工作正常。今天,我的邮递员集合中的所有请求都开始从 caldav.icloud.com 获得 401 我正在访问我自己的个人帐户进行测试,两次检查我的密码一百次,仍然无法正常工作。
要求:
PROPFIND / HTTP/1.1
Host: caldav.icloud.com
Authorization: Basic xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Content-Type: application/xml
Cache-Control: no-cache
Postman-Token: 39b27b44-0a6f-b351-540f-f9446df618d0
<propfind xmlns='DAV:'>
<prop>
<current-user-principal/>
</prop>
</propfind>
Run Code Online (Sandbox Code Playgroud)
回应是:
401 unauthorized
Run Code Online (Sandbox Code Playgroud)
标题:
Connection ?keep-alive
Content-Length ?141
Content-Type ?text/html;charset=utf-8
Date ?Fri, 30 Jun 2017 14:23:34 GMT
Server ?AppleHttpServer/2f080fc0
Strict-Transport-Security ?max-age=31536000; includeSubDomains
WWW-Authenticate ?x-mobileme-authtoken realm="MMCalDav", basic realm="MMCalDav"
X-Apple-Request-UUID ?95e3a459-10b1-4d0a-a3ae-73f29b569481
X-Responding-Server ?caldav:44101701:pv38p41ic-ztdg01080801:8001:17D70:375f9f89bf
X-Transaction-Id ?95e3a459-10b1-4d0a-a3ae-73f29b569481
access-control-expose-headers ?X-Apple-Request-UUID, Via
via ?icloudedge:br30p01ic-zteu01122201:7401:17D30:Berlin
Run Code Online (Sandbox Code Playgroud)
身体:
<html>
<head>
<title>Unauthorized</title>
</head>
<body>
<h1>Unauthorized</h1>
<p>You are not authorized to …Run Code Online (Sandbox Code Playgroud) 刚刚完成和使用核心数据和 iCloud 同步的应用程序。在模拟器和设备上进行测试时,该应用程序运行良好:将文本和图像添加到持久存储没有问题,所有数据都已恢复,所有设备:在模拟器和真实 iPhone 上。我做了很多测试,比如从手机和模拟器中删除应用程序,每次我重新安装/运行应用程序时数据仍然存在。
现在该应用程序在应用程序商店中“上线”,但数据未在设备之间同步。我已使用相同的 Apple 用户名/ID 在两部 iPhone 上安装,在两部设备上都添加了记录,但数据并未按预期在每部手机上恢复或复制。
有任何想法吗?
我正在尝试用 python 代码在我的云驱动器中创建一个文件。当我使用任何应用程序在此位置“/Users/agauravdeep/Library/Mobile Documents/com~apple~CloudDocs/Untitled.rtf”创建文件时,它可以工作,但通过代码,到目前为止我甚至没有成功(尽管没有错误)尝试通过超级用户后。
代码非常简单
# -*- coding: utf-8 -*-
#!/usr/bin/python
from os.path import expanduser
def createBugsFileInitiallyIfNotPresent():
global bugsFileLocation
bugsFileLocation = expanduser("~")+"/Library/Mobile Documents/com~apple~CloudDocs/abc.txt"
if(os.path.isfile(bugsFileLocation)):
f = open(bugsFileLocation, 'w+')
f.write(" dddd ")
Run Code Online (Sandbox Code Playgroud)
这也有效, vi ~/Library/Mobile\ Documents/com~apple~CloudDocs/abcd.txt 但是当我在路径周围加上引号时它不起作用。
任何建议都会非常有帮助。
我必须快速上传文档,我必须使用 iCloud 执行此操作,以便我可以使用 icloud 将文件上传到我的服务器
我正在寻找一些材料来学习iCloud及其功能.我发现提供有关iCloud的信息的站点非常少.任何人都可以建议最好的学习方法吗?任何示例程序?先感谢您.