关闭广告

在 2011 年 WWDC 上的最后一次主题演讲中,史蒂夫·乔布斯 (Steve Jobs) 推出了一项至今仍让许多开发人员感到恐惧的服务。它正是 iCloud,它是陷入困境的 MobileMe 的有益继承者。然而,即使是 iCloud 也并非没有错误。开发商又闹事了……

史蒂夫·乔布斯于 2011 年 XNUMX 月首次演示 iCloud,该服务于四个月后推出,目前已运行约一年半。从表面上看,这是一个相对流畅的服务,用这位传奇远见者的话说,“只是有效”(或者至少应该有效),但在内部,这是一个不受约束的机制,经常做它想做的事,开发人员没有有效的武器来对抗它。

“一切都会自动发生,并且可以非常轻松地将您的应用程序连接到 iCloud 存储系统,” 乔布斯当时说道。当开发人员现在想起他的话时,他们可能会感到愤怒。 “iCloud 对我们来说不起作用。我们确实花了很多时间,但 iCloud 和 Core Data 同步存在这些我们无法解决的问题。” 他承认 Black Pixel 工作室的负责人,该工作室负责著名的 RSS 阅读器 NetNewsWire。对她来说,iCloud 应该是理想的同步解决方案,尤其是在谷歌即将关闭其 Google Reader 的时候,但对苹果服务的押注并没有成功。

没有任何作用

令人惊讶的是,一项拥有超过 250 亿用户、也是全球同类服务中最大的服务之一却出现这样的问题。粗略地看一下此事,人们可能会将矛头指向开发商,但目前他们在这件事上是无辜的。 iCloud 试图在其应用程序中实现其中的许多功能,但他们的尝试常常以失败告终。因为iCloud在同步方面存在严重问题。

[do action=”quote”]我什至数不清所有遇到问题并最终放弃的开发者。[/do]

“我多次重写了我的 iCloud 代码,希望找到一个可行的解决方案,” 开发商迈克尔·戈贝尔。然而,他还没有找到解决方案,因此他还无法营销他的应用程序,更确切地说是应用程序商店。 “我什至无法计算所有遇到与我相同问题并最终放弃的开发商和公司。在丢失了数十万用户数据后,他们干脆完全放弃了 iCloud。”

苹果iCloud最大的问题是数据库同步(Core Data)。可以通过苹果云同步的另外两种类型的数据——设置和文件——在限制范围内工作,没有任何问题。然而,Core Data 的行为完全不可预测。它是一个高级框架,允许您跨设备同步多个数据库。 “iCloud 承诺通过 Core Data 支持解决所有数据库同步问题,但它就是行不通。” 一位不愿透露姓名的知名开发商表示,为了与苹果保持良好关系。

与此同时,苹果完全忽视了这些问题,iCloud 继续宣传为简单的解决方案,用户向开发者提出要求。但尽管开发人员尽了最大努力,用户数据仍会不受控制地消失,设备也会停止同步。 “这些问题通常需要几个小时才能解决,有些问题可能会永久破坏您的帐户,” 另一位领先的开发人员倾向于苹果并补充道: “此外,AppleCare 无法与客户解决这些问题。”

“我们一直在努力解决 Core Data 和 iCloud 的结合问题。整个系统是不可预测的,开发人员通常影响其功能的选项有限。” 描述捷克开发工作室 触摸艺术,它向我们证实,由于存在持续存在的问题,它正在放弃此解决方案并自行工作,其中它将使用文件同步而不是数据库同步本身。然后他就可以使用 iCloud 来实现此目的,因为通过 iCloud 可以毫无问题地进行文件同步。毕竟这一点也得到了 Jumsoft 的开发者的证实: “iCloud 无疑是直接文件存储的绝佳工具。” 然而,不幸的是,Jumsoft 其著名的 Money 应用程序需要 Core Data,这是一个绊脚石。

[do action="quote"]iCloud 和 Core Data 是每个开发者最可怕的噩梦。[/do]

许多问题还源于很容易发生的意外情况,例如用户从设备上的一个 Apple ID 注销并通过另一个 Apple ID 登录时。苹果根本不指望他们。 “当未登录 iCloud 的用户打开应用程序,然后连接到 iCloud 并再次启动应用程序时,如何解决问题?” 他问 与 Apple 论坛上的一位开发人员合作。

iCloud 的所有问题最终都会导致应用程序用户丢失数据的不满,而开发人员往往只能袖手旁观。 “用户向我抱怨并给应用程序评分为一颗星,” 他抱怨 在苹果论坛上,开发者布赖恩·阿诺德(Brian Arnold)仍然没有收到苹果关于如何处理类似问题或为什么会发生这些问题的解释。论坛上充斥着关于 iCloud 同步的此类抱怨。

一些开发者已经对 iCloud 失去了耐心,这也就不足为奇了。 “iCloud 和 Core Data 是每个开发者最可怕的噩梦,” 针对 一触即发 未透露姓名的开发商。 “这有时令人沮丧、令人发狂,值得花费无数个小时进行故障排除。”

苹果沉默了。他自己绕过问题

也许这并不奇怪,苹果公司的 iCloud 问题就像什么都没发生过一样。苹果实际上并没有在其应用程序中使用有问题的核心数据。实际上有两种 iCloud——一种为 Apple 的服务提供支持,另一种则提供给开发者。 iMessage、邮件、iCloud 备份、iTunes、照片流等应用程序和服务是基于与第三方开发人员完全不同的技术构建的。也就是说,总是有麻烦的人。 iWork 套件中的应用程序(Keynote、Pages、Numbers)确实使用与第三方应用程序相同的 API,但仅用于更简单的文档同步,Apple 非常小心地做到了这一点。当他们让 iCloud 和 Core Data 进入他们位于库比蒂诺的应用程序时,他们在可靠性方面并不比第三方开发者更好。 Trailers 应用程序使用 Core Data 进行同步,这是不言而喻的,用户经常会丢失一些记录。

然而,对于不太受欢迎的预告片来说,这些问题相对容易丢失。但是,最流行的应用程序的开发人员应该告诉他们的用户什么呢?他们只能依赖 iCloud 中存在问题的核心数据,但往往无法保证苹果在广告中不断宣传的功能?苹果肯定不会帮助他们。 “苹果公司的任何人都可以对这种情况发表评论吗?” 他问 开发者 Justin Driscoll 在论坛上的表现并不成功,由于 iCloud 不可靠,他被迫关闭了即将推出的应用程序。

这一年苹果并没有给开发者提供任何帮助,所以大家都希望至少在去年的 WWDC,也就是专门为开发者举办的大会上能解决一些问题,但即便如此,在开发者的巨大压力下,苹果也没有带来多少帮助。例如,他提供了可用于同步 Core Data 的示例代码,但还远远不够完整。同样,没有显着的帮助。此外,苹果工程师敦促开发者等待 iOS 6。 “从 iOS 5 迁移到 iOS 6 让事情变得 XNUMX% 好” 一位未透露姓名的开发商证实, “但距离理想还很远。” 据其他消息人士透露,去年苹果只有四名员工负责 Core Data,这清楚地表明苹果对这一领域不感兴趣。不过,该公司拒绝对此信息发表评论。

再见,围巾

经历了所有提到的沧桑之后,许多开发者对 iCloud 说“不”也就不足为奇了,尽管可能心情很沉重。 iCloud 应该最终带来开发人员渴望的东西 - 一个简单的解决方案,确保相同的数据库及其在两个或更多设备上的持续同步。不幸的是,现实是不同的。 “当我们将 iCloud 和 Core Data 作为我们应用程序的解决方案时,我们意识到我们无法使用它,因为没有任何效果,” 一些最畅销的 iPhone 和 Mac 应用程序的开发者说道。

iCloud 不易被放弃的另一个原因是,苹果会注意到使用其服务的应用程序(iCloud、Game Center),而完全忽略那些在 App Store 中没有任何苹果内容的应用程序。从营销角度来看,iCloud 也是一个很好的解决方案。

例如,Dropbox 作为一种可能的替代方案提供,但它不再那么用户友好。一方面,用户必须设置另一个帐户(购买新设备后会自动使用 iCloud),另一方面,在应用程序运行之前需要授权,而 iCloud 也会失败。最后 - Dropbox 提供文档同步,这根本不是开发人员所寻求的。他们想要同步数据库。 “目前使用最广泛的 Dropbox 已经证明了其数据同步能力。但当涉及到同步数据库时,我们依赖于 iCloud,” 来自 Touch Art 的 Roman Maštalíř 承认。

[do action="quote"]我想告诉 Apple 他们修复了 iOS 7 中的所有内容,但我不太相信。[/do]

然而,2Do 应用程序的开发人员没有耐心,由于 iCloud 的多次负面体验,他们根本没有尝试苹果服务,并立即提出了自己的解决方案。 “由于存在各种问题,我们不使用 iCloud。这是一个非常封闭的系统,我们无法对其进行尽可能多的控制,” 开发商 Fahad Gillani 告诉我们。 “我们选择 Dropbox 进行同步。但是,我们不使用它的文档同步,我们为它编写了自己的同步解决方案。”

另一家捷克工作室 Madfinger Games 的游戏中也没有 iCloud。然而,热门游戏《Dead Trigger》和《Shadowgun》的创作者并未使用 Apple 服务,原因略有不同。 “我们有自己的基于云的系统来保存游戏中的位置,因为我们希望能够在平台之间传输游戏进度,” David Kolečkář 向我们透露,由于 Madfinger Games 开发的是 iOS 和 Android 游戏,iCloud 从来都不是解决方案。

会有解决办法吗?

随着时间的推移,许多开发者慢慢对苹果拿出解决方案失去了希望。例如,下一届 WWDC 即将到来,但由于苹果现在几乎不与开发者沟通,所以预计他不会张开双臂来到 WWDC,满载建议和答案。 “我们所能做的就是不断向苹果发送错误报告并希望他们修复它们,” 一位不愿透露姓名的 iOS 开发者感叹道,另一位开发者也表达了他的观点: “我很想告诉苹果,他们修复了 iOS 7 中的所有问题,两年后 iCloud 终于可以毫无问题地使用了,但我不太相信。” 但今年 WWDC 的中心主题应该是 iOS 7,因此开发者至少可以抱有这样的希望。

如果苹果不在其新版操作系统中提供 iCloud 问题的解决方案,那么对于某些项目来说,这可能会成为棺材上的钉子。一位迄今为止一直是 iCloud 坚定支持者的开发人员表示: “如果苹果不在 iOS 7 中解决这个问题,我们将不得不放弃。”

来源: TheVerge.com, thenextweb.com
.