我正在尝试使用CKQueryOperation ,而performQuery在我的CloudKit数据库执行查询。 这两个工作,但是当使用CKQueryOperation我没有得到一个错误,当设备脱机,但我使用performQuery 这里是我的performQuery例子的裸骨头,数据库是我的CKDatabase database.performQuery(q, inZoneWithID: nil) { (records:[CKRecord]?, error:NSError?) in if error != nil { print(error!.localizedDescription) return } } 设备处于脱机状态时发生错误,允许我提示用户。 错误是 The internet connection appears to be offline 但是,当我使用CKQueryOperation时,我没有得到任何错误 let p = NSPredicate(format:"recordID IN %@", student.courses) let q = CKQuery(recordType: String(Course), predicate: p) let queryOperation = CKQueryOperation(query: q) queryOperation.recordFetchedBlock = { record in // […]
Production Environment我的CloudKit数据集比Development还要大一些,其他的奇异的差异也可能存在。 在生产模式下使用我的应用程序有一个讨厌的僵局 。 是否有可能以任何方式debugging客户端? 或者我应该尽可能多地login并发送出去? 这是一个线程问题,所以如果不检查Xcode中的线程,实际上是要做任何事情。 任何想法? 我正在使用核心数据本地存储。
我已经提交了一个使用CloudKit到Apple的iOS应用程序。 它被拒绝,因为它要求用户login到iCloud进行访问。 苹果的推理是,即使没有iCloudlogin,公共数据库仍然是可读的。 所以应用程序的一部分应该运作。 我试图修改应用程序,但是当我没有login时,我仍然会遇到这个错误。 <CKError 0x8141a360: "Internal Error" (1/4000); "Couldn't send a valid signature"> 我已经search了networking,解决scheme只是为了login到iCloud。 没有关于这个错误的Apple文档。 有没有人知道如何解决这个问题,而无需login到iCloud帐户? 非常感谢你。
我在应用程序商店中有我的应用程序的免费和付费版本。 我正在更新应用程序以使用CloudKit共享一些公共数据。 我希望免费和付费应用共享相同的数据。 首先,两个应用程序可以与CloudKit共享相同的数据吗? 如果是这样,我怎么能得到这个工作? 我已经尝试在两个目标的function中启用CloudKit,并在两个应用程序中select相同的容器。 select“使用默认容器”的主应用程序工作正常,但是我select了“指定自定义容器”并从第一个目标中select自定义容器的另一个应用程序在尝试下载任何东西时会返回错误。
有没有可能从Android本机应用程序使用CloudKit Web Service ? 如果我想让用户能够修改logging,该authenticationpopup窗口将如何出现在本机应用程序中? 我可以把一个button,本地应用程序,这将打开浏览器和redirect的内容将出现在那里,当身份validation成功,指定一个callback哪里令牌唯一标识用户,我猜可以接收用户logging名? 苹果工程师在本次会议video中谈论了从网上login: https : //developer.apple.com/videos/wwdc/2015/?id = 704
我想从CloudKit获取公共/私人条目的最后X分钟。 我尝试了这个效果,但失败了: let date = NSDate(timeInterval: -60.0 * 120, sinceDate: NSDate()) let predicate = NSPredicate(format: "creationDate > %@", date) 但是,这会得到我的数据,但我不确定是在查询所有内容还是只是查询某种上限: let predicate = NSPredicate(value: true) 我希望能够查询一定的时间。 这可能没有在客户端创buildsorting逻辑? 以下是完整的代码块: func fetchPublicData(completion: ((records:[AnyObject]) -> Void)!) { let date = NSDate(timeInterval: -60.0 * 120, sinceDate: NSDate()) let predicate = NSPredicate(format: "creationDate > %@", date) let query = CKQuery(recordType: […]
我可能会在这里丢失一些明显的东西 如何创build一个CloudKit通知,并提供有关您正在被通知的CKRecord的详细信息? (即不只是一个通用的“创build新项目”,而是一个通知,例如“吉尔和杰西卡的生日派对!”) 是否正确的方法来创build一个新的订阅与新的notification.alertBody为每个新的logging更改? 这没有任何意义。 这留下的选项queryNotification.recordID将数据从CloudKit(或我的本地存储)中提取出来,并以某种方式将其添加到通知? 添加或更改已通知通知的值的方法是什么? 我错过了什么? 更新:根据Edwin的build议,这是一个代码片段,但它不起作用。 let notification = CKNotificationInfo() notification.alertBody = "Added: %@" as NSString notification.alertLocalizationArgs = ["name"]
CKSubscription文档说: 当一个logging修改导致一个订阅触发,服务器发送推送通知给所有具有该订阅的设备, 除了原来的更改logging。 假设我有两个设备: device 1和device 2从不同的iCloud帐户login。 假设两个设备都订阅了某个loggingtypes的logging删除。 如果device 1创buildlogging,然后device 1删除它,则device 2得到通知 – 这是根据DOC,但.. 如果device 1创build一个logging,然后device 2删除它,然后device 2得到通知 – 我不认为这是根据DOC,并且它没有任何感觉, device 2删除它,所以应该通知device 1 在设备1和设备2上设置订阅 func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { application.registerUserNotificationSettings(UIUserNotificationSettings(forTypes: .Alert, categories: nil)) application.registerForRemoteNotifications() let defaultContainer = CKContainer.defaultContainer() let publicDatabase = defaultContainer.publicCloudDatabase publicDatabase.fetchAllSubscriptionsWithCompletionHandler({subscriptions, error in if error == nil { […]
使用CloudKit ,您可以专注于您的客户端应用程序开发,并让iCloud 消除编写服务器端应用程序逻辑的需要 。 CloudKit为您提供身份validation,私有和公共数据库,结构化和资产存储服务 – 所有这些服务都是免费的,且具有很高的限制。 你不能上传任何代码在苹果的服务器上运行? 我听说它与Google App Engine和其他云计算平台相比,但没有运行自己的代码的能力,是不是有限的,没有真正的可比性? 例如,如果我想构build一个新闻应用程序,该应用程序会定期向用户感兴趣的主题推送故事,那么只能使用CloudKit,因为我需要在服务器上进行预定作业和数据处理。 有什么想法吗?
当我收到logging添加(didReceiveRemoteNotification调用)的远程通知时,我收到以下错误信息: _BSMachError:(os / kern)无效能力(20) 我已经在论坛和Google上试图find更多关于这方面的信息,但是我找不到适用于我的情况的任何有用的build议。 错误信息是什么意思? 我能做些什么呢?