史蒂夫·乔布斯生前推出iCloud (腾讯科技配图)
腾讯科技讯(瑞雪)北京时间3月27日消息,美国科技博客The Verge近日刊载文章称,当苹果推出iCloud时,已故苹果联合创始人史蒂夫·乔布斯(Steve Jobs)曾经承诺,这种产品“能良好运作”;但事实却是,iCloud与Core Data数据库的同步存在问题,而且到现在也还没有得到解决。
以下是这篇文章的全文:
跟苹果其他任何软件产品相比,iCloud很可能都更加以“能良好运作”为目标。当苹果推出iCloud时,这家公司开宗明义地阐明了自己的希望,那就是支持自动化,彻底消灭设置菜单和文件系统。已故苹果联合创始人史蒂夫·乔布斯(Steve Jobs)生前曾经承诺,在iCloud这种产品上,他会做得比MobileMe更好,后者是苹果几年以前为冲击网络服务市场而推出的一种产品,但到后以惨败收场。
通过iCloud服务,用户在电脑上对文件作出的改动都会马上在iPhone或其他设备上出现。“这种产品能良好运作。”乔布斯在2011年首次演示这种服务时宣称。“所有事情都能自动发生。”他继续说道。“很容易就能把应用与iCloud的存储系统连在一起。”
将近两年时间里过去了,用户对于iCloud与来自第三方开发者的应用进行整合的需求比以往任何时候都更要强烈;但在这一点上,iCloud的表现并不像乔布斯所说的那样“很容易”,而是乱得一塌糊涂。“对我们来说,iCloud还没有带来令人满意的结果。”软件开发和咨询公司Black Pixel首席执行官丹尼尔·帕斯科(Daniel Pasco)上周说道。“我们在这一方面付出了相当多的时间,但iCloud与Core Data数据库的同步存在问题,而我们无法解决这些问题。”阅读应用Pocket的首席开发员史蒂夫·斯特扎(Steve Streza)在一条尖酸刻薄的Twitter消息中这样说道:“请记住,Black Pixel拥有许多在Cocoa开发方面聪明的人才。如果他们都不能让iCloud运转起来,那么有谁可以?”
iCloud故障
“到现在我已经把iCloud编码改写了几次,想要找到一种行之有效的解决方案。”开发者迈克尔·戈贝尔(Michael Gobel)在一篇博文中写道。“很明显,苹果也还没有找到。”现在的问题在于,苹果没能改进Core Data数据库与iCloud之间进行同步的方式,但却继续宣传iCloud是一种毫无问题的解决方案。
“关于iCloud支持Core Data的问题,苹果的承诺是它将把所有改变的东西都记录到一份事务日志中,从而解决所有令人烦恼的同步问题。但结果是没能做到良好的运作。”一位非常知名的开发者说道,这位开发者要求匿名,原因是想要与苹果保持良好的关系。iCloud在处理数据库的问题上本应驾轻就熟,但很明显这个问题现在正让它“呼吸困难”。从用户的角度来说,这意味着即使一名开发者付出了程度上的努力,数据还是会消失,或是设备和数据不能彼此同步。
“在我们遇到的问题中,有很多需要几个小时才能解决,而有一些更是会永远烂在你的账号里。”一位顶级开发者对我说道。“在我们的客户遇到问题时,AppleCare维护计划没能对他们起到什么帮助作用。”不幸的是,许多想要同步文件的应用都要求使用多个数据库,这些数据库彼此之间具有依赖性。“毫无疑问,iCloud对于简单直接的文件存储来说是一个出色的工具。”个人财务管理应用Money的开发者Jumsoft说道,他所指的是iCloud基于文件的同步功能,这种功能被任务管理应用Clear和日记应用Day One所使用。将Core Data框架从应用中拿掉“将使其变得几乎跟简单的电子表格没什么两样”,Jumsoft说道。
许多问题都来自于一个事实,那就是苹果并未考虑到某些特殊情况;在这些情况下,用户会做一些出人意料的事情,比如说注销一个苹果ID,然后登录另一个苹果ID等。“对于打开应用时注销iCloud,但随后又进行登录并继续使用应用的用户来说,我们应该如何处理呢?”一名开发者在苹果的支持论坛上写道。“就同步数据而言,事实是真要做到同步是很难的,网络可用性并非一直都很可靠或一直都很快。你必须写出很多编码来处理更新和遇到的问题。”斯特扎在一篇博客文章中写道。能解决这种问题的方法是,对支持电邮逐一作出回应,并在某些情况下人工帮助每名用户重置iCloud数据,而这对开发者来说将浪费大量的时间。
iCloud的故障会导致用户文件受损或数据丢失,这令其用户忠诚度也面临风险。“我一直都在收到用户投诉和一星评级。”开发者布莱恩·阿诺德(Brian Arnold)在苹果的支持论坛上写道。“我还没有收到有关这些问题为何会发生的适当回复,也没有收到有关我能做些什么来解决这些问题的回复。”在苹果的支持论坛上,有关Cloud同步的投诉比比皆是。
“iCloud与Core Data(的同步)是开发者糟糕的噩梦。”一名开发者向The Verge说道。“那种感觉会让人感到沮丧、疯狂,而且还要花费成百上千个小时来提供支持。”而糟糕的事情之一则是,客户在看到苹果的营销宣传以后会要求获得iCloud支持,但开发者却无法交付这种支持。“需要明白的一件关键的事情在于,用户对于iCloud运作的概念在很大程度上基于并不使用Core Data进行同步的应用。”AgileTortoise开发者格雷格·皮尔斯(Greg Pierce)说道。
当苹果使用iCloud时,经常发生的情况是,这家公司甚至都不用Core Data来同步信息。举例来说,像Keynote这样的幻灯片演示应用会使用基于文件的同步方法,这种方法要简单得多。Keynote肯定能有效运作,但苹果会密切关注基于文件的同步功能。而当苹果确实需要依赖Core Data时,这家公司的软件比第三方开发者幸运不到哪儿去。苹果的Trailers应用就使用Core Data来进行同步,这个应用经常都会与用户收藏失去联系。“苹果好的技术是他们自己使用的技术。”一名开发者这样对我说道。
苹果保持缄默
“有没有苹果的人能对这种情况发表点什么言论?”开发者贾斯汀·得利斯科尔(Justin Driscoll)在苹果支持论坛上问道。“我原本准备明天为我的应用展开一次促销活动,但现在看起来我不得不停止出售这个应用了。”当开发者面临着无法实现iCould同步的困境时,苹果并未施以援手,而是选择把支持请求转向下一次iOS或Mac更新。
这个问题在一年多以前的2012年苹果全球开发者大会上就已经出现,当时许多开发者都在苹果的支持服务台前排队,希望能获得有关iCould为何如此难以实现同步的答案。苹果有关将iCloud整合到应用中的文件一直都很少,开发者希望能从苹果那里得到答案。“你可能会被误导,以为将iCloud整合到Core Data中就像闲庭信步那样轻松。”开发者德鲁·麦考马克(Drew McCormack)在苹果全球开发者大会召开的一个月以前这样写道。“不幸的是,在这个节骨眼上,没什么能比这种想法更加远离事实了。”
等待iOS 6发布吧,这就是苹果在全球开发者大会向开发者给出的答案。这家公司还发布了示例代码,让开发者用来实现iCloud与Core Data的同步,但哪怕从好程度上来说,这些代码都是不完整的。“从iOS 5升级到iOS 6以后,情况确实有所好转,但还是不够。”一名开发者对我说道。一名与苹果关系密切的消息人士向我透露,问题的部分原因在于,截至去年为止,苹果仅有4名员工负责领导这家公司有关Core Data的工作。到现在为止,苹果仍旧没有表达出任何想要修复Core Data同步问题的意愿。
苹果在2012年全球开发者大会并未提供解决办法(腾讯科技配图)
苹果拒绝就这篇报道置评。
阴云笼罩的天空
许多资深的开发者都已经学到了教训,彻底放弃了实现iCloud与Core Data同步的念头。“到后,当我们想要为(我们的应用)进行iCloud与Core Data的同步时,才发现根本不行,不管怎么做也没用。”一名iPhone和Mac应用开发者说道,他开发的应用跻身畅销的应用之列。“iCloud与Core Data同步的有些问题从理论上来说根本是无法解决的,而其他一些问题则是执行过程中的明显bug。”他说道。想要做到同步也是有其他选择存在的,但这些选择都无法做到不辜负iCloud在近两年以前所设定的目标:创造一种无缝的、“能良好运作的”同步解决方案,无需用户登录或设定任何东西。
那么,云存储应用Dropbox又如何呢?看起来这好像是人气度的一种解决方案,但事实不然。首先,整合Dropbox意味着要求用户注册和授权另一个应用。“无论是从个人角度出发,还是从Elements的角度出发,我都很喜欢Dropbox。但我还是想要支持iCloud,因为它能为用户减少一个准入壁垒,让他们不必注册Dropbox账号就能同步文件。”Elements应用