在 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 中解决这个问题,我们将不得不放弃。”
我读了整篇文章,但不明白它来自哪里。至于 iCloud 和苹果应用程序以及 iCloud 与 iPhone 和 Mac 的整体集成,它对我来说 100% 有效,我几乎使用 Apple 提供的所有支持它的应用程序。此外,我还下载了 Apple 的 Trailers 应用程序(尽管它不在 SVK iTunes 上,所以一定有原因),但我不知道 iCloud 集成在哪里 - 我得看看它向上。此外,我在其他应用程序中从未遇到过 iCloud 问题。我使用Appig的ToDo和iCloud同步工作100%,并且我在iPhone和Mac应用程序中有超过100个与我的工作密切相关的待办事项,所以我需要100%工作同步,所以我不知道2Do有什么问题。我还直接与 Appigo 沟通,他们推荐了 iCloud(当然,除了他们的付费同步服务)进行同步,因为我也尝试过 dropbox,但不满意(我每天都使用 dropbox 来同步文件)。我也每天使用 iBear 金钱应用程序,并且 iCloud 同步也从未遇到过任何问题!您还写到 Dropbox 是文件同步的更好解决方案,但在此之前写到 iCloud 非常适合文件同步 - 我有点不明白这一点。另外,你提到的游戏工作室并不使用iCloud,而是使用他们的服务,因为与不存在iCloud的ANDROID设备同步,所以我认为这里没有问题。这就是《真实赛车 3》最近的工作方式,并且仅在与 Apple 以外的设备同步时才如此。其他使用 iCloud 的游戏也是如此(根据我的经验)。最后,你写道 iCloud 是一个非常封闭的系统,这是一个问题 - 这不是苹果一直以来的理念吗?如果iCloud完全开放的话,根本就行不通。而且,整个iOS都是封闭的,总会有人抱怨他们做不到,但从我的角度来看,这只是好的,对吧?诚然,我没有阅读论坛上的抱怨和开发者的抱怨,但我对 iCloud 100% 满意,所以这篇文章让我感到惊讶。
是的,正如文章中所写。本机应用程序可以运行,用户不会注意到任何事情
吸一口气,这实际上是 TheVerge 的一篇翻译文章,所以我们读的是 Ellis Hamger 的观点,而不是 Ondrej Holzman 的观点(没有什么反对我的,我只是全力以赴)。
事实上,没有人关心苹果做得好不好。每个人都想知道自己做错了什么,因为在此类网站上做广告的收入是原来的两倍。因为否则我无法解释为什么整篇文章都是关于“iCloud 根本不起作用”,尽管这只是核心数据同步的问题,大约是 iCloud 的 1/10。但正如我所说,没有人关心什么几乎完美:
– iTunes 匹配
– 云中的 iTunes
– i消息
- 视频对话
- 照片流
– iCloud 备份
–联系人
–提醒
– 日历
-播客
- 游戏中心
毕竟,即使一小部分不能完美地工作,这些文章也是关于“什么都不起作用”的,因为那是一个笑话。然而了解事实的人都知道,这与客观报道无关。
今天,批评一切都是很流行的(尤其是在人们事先没有读过任何相关内容的情况下),所以要么加入董事会,要么互联网群众会用石头砸死你。
如果这篇文章没有暗示只有 Core Data 受到批评,那么它应该是这样的。是的,这篇文章主要取自 TheVerge,因为我们根本无法获取此类信息,我们无权访问。我尝试至少询问其他一些开发人员有关 iCloud 的问题,以了解问题所在和原因,他们或多或少证实了这些抱怨。
你写到每个人都想知道出了什么问题,这是事实。您是否认为每周都值得写一篇文章来介绍 iCloud 的真正出色之处、除了一件事之外的一切如何运作以及数据同步得如何完美?我不知道,我觉得这是一个非常有趣的话题,现在已经很流行,尤其是在国外,所以我写了它。
那么,是不是必须注明文章的出处呢?或者主要是文章的翻译?那么这不是你的创作而是别人的创作?此外,像这样的文章毫无用处地传播质疑,正如 Marek Odehnal 下面评论中的情况一样!
与 Jablíčkář 上的所有其他文章一样,文章的来源从最后一句的开头列出。
哦,抱歉,我没有意识到这一点
好吧,结果不太好 - 做一个小实验:只读标题,然后读所有的字幕 - 由此我感觉 iCloud 比癌症更糟糕(而且某处有一些核心数据,但在上面)我必须记住,iCloud 绝对不起作用,正如您在一个副标题中所写的那样 - 至少那个副标题是不合时宜的)。很少有人了解 Core Data 在 iCloud 中的实际作用,本文也绝对没有费心以任何方式解释它。事实上,您在几段中提到这一点确实还不够。我在任何地方都看不到多元化——你不必写整篇文章来说明一切都有效的事实。但在这篇千字文章中,没有一次提到iCloud的所有其他部分都像我想象的那样慢……好吧,这正是当前情绪的典型——批评苹果,广告有回报。应该指出的是,没有任何竞争公司提供类似的解决方案……没有空间了,对吧?
我不想给任何人提供建议,但我遵循一条规则:如果我不明白某件事,我就不会写它。
如果你一脸平静地告诉我你认为这篇文章是客观的或者表达了不止一个观点,那么不幸的是我将不得不笑。
是的,我选择的字幕更激进一些,有时甚至有些过分,我接受这一点。那里提到了其他 iCloud 功能的工作原理。还提到了 iCloud 提供了其他服务所没有的功能。 iCloud 并不是唯一提供此服务的。前面提到的 Dropbox 是最常见的替代方案,但它肯定不提供 iCloud 的功能,即数据库同步。
文章以几个开发者谈论同一话题的方式表达了对此事的更多看法。我个人有机会询问了几个开发工作室,他们都向我证实,Core Data 确实存在问题。
这很奇怪,因为当我阅读黑客新闻、支持论坛或 Verge 上的讨论时,大约一半的开发人员表示他们对此没有任何问题(即使在这个讨论中我们也有人自己也这么说)。但你刚刚与开发人员交谈,他们 100% 告诉你这不起作用。有趣的是,这似乎很有可能 - 我绝对不敢说它所服务的人的意见,他们......嗯......发生了分歧。
如果我们将苹果与苹果进行比较(呵呵),Dropbox 和 iCloud Document Sync 都可以完美运行。因此,当我们谈论核心数据同步时,我认为根本没有理由提及 Dropbox。
简而言之,我根本不明白的是,你整篇文章都是基于 iCloud 无法工作的事实——就这样。您提到第 13 行仅涉及核心数据同步。但本文的绝大多数内容都是关于 iCloud 本身如何不起作用的。因为这根本就是不真实的。这更多的是一种感觉,这可能是真的。但如果你想写得真实正确,那么你应该注意这一点。因为当你往下看时,有些人的理解和你写的完全一样——iCloud 不起作用——这就是为什么他们开始问 iCloud 备份是否至少起作用。我认为这是对大多数人来说听起来如何的最好证据。
我将写给你我在 The Verge 上写给作者的内容:这不是一个可以传播谎言的个人博客。实际上,有数百万(在 Jablicker 的情况下,有数千)人阅读过它,他们相信您并将您所写的内容视为事实。因此,您没有理由在写这篇文章之前没有弄清楚它的内容。即使我能理解。我觉得更糟糕的是,你有选择地扔掉文件而不符合事实,结果是一篇简化的文章,追逐轰动。
但我知道,如果文章的标题是“核心数据同步为什么不工作?”,那么阅读的人数可能会少很多。这是质量创作和数量创作之间的分界线。
我本人问过五位捷克开发者(四位回答),一位外国开发者,他们普遍确认 Core Data 存在问题。我并不是说这对每个人都是如此,但简而言之,我询问的人证实了我在其他地方读到的内容。不幸的是,我没有收到积极的回应,我本来会在文章中提到这一点。我本来可以描述更多的开发人员,但我写给每个想到的捷克开发人员,我们还添加了一些与我们有联系的外国开发人员,但并非所有人都能交流。
遗憾的是,我没有坚持使用“iCloud 的两张面孔”这篇文章的原始版本,因为我承认它会更合适,而且只是一个不同的标题就会给这篇文章带来完全不同的感觉。但现在我无法收回。
是的,这听起来可能会有很大不同。我相信你们和这些开发人员一样,我在各个论坛上阅读了数百人的意见,在那里我看到它是如此的激烈。因为很多人确实使用核心数据同步没有问题 - 如果他们使用简单的结构并正确处理合并,那么应该不会有问题。 CDS(核心数据同步)在实现中并不像在原理中那样存在错误 - 例如,当您有两个具有共同祖先的数据库,您在每个数据库中进行了一些更改,然后尝试传输这些更改时该怎么办和这些变化有冲突吗?这是一个相当大且相当复杂的数据库问题(O(mn^2)),而且还没有人能够令人满意地解决它,Apple 将作为少数人之一进行尝试。
我几乎为那些对此不太了解的人感到遗憾,来到这里,读了一篇文章,然后带着 iCloud 就是一坨屎的感觉离开。同时,正如我之前所写的,运行没有任何问题的几十个功能确实很棒,并且多次为我节省了大量数据。所以我觉得这个文件不公平,因为 CSD 谴责整个 iCloud 是一个非常困难的问题 - 不幸的是,有些人确实是这样理解的。
至于有关核心数据同步问题的文章 - 我很乐意阅读它,并且我将不胜感激有关它的任何进一步信息。遗憾的是,CDS 捕获了所有 iCloud(不仅在您提交的内容中,而且在 E.汉堡提交的内容中也有一点,尽管他试图以某种方式将其分开 - 然后接管了数十台服务器 - 简化 - 以这种风格发布“iCloud 很有用”)。
我认为苹果不值得——特别是因为没有其他人试图解决这个问题。
这篇文章实际上只是对不满的开发人员及其问题的一个地方的解释。我没有开发和 iCloud 方面的个人经验,我只是借鉴了现有的信息。
补充一下事实,事实是,同步从-从式数据库是一个 O(mn^2) 问题,Google 和 Oracle 都不会尝试(而 Apple 已经针对中等复杂的结构很好地解决了这个问题)。苹果是唯一一家试图解决这个问题的公司,但也只是因此而受到批评。另一方面,Google 的主从同步(在线)O(1),有时离线 O(n) 却在背后嘲笑,整个科技博客圈完全不明白它在写什么。因为只有在这种情况下,技术落后者才会受到赞扬,而先驱者才会受到批评。该死的人类对主要传播的无知。
我从 Android 切换过来,所以我有一个简单的问题:我从文章中了解到问题是在多个设备上同步时(例如在 iPhone 和 iPad 上保存的游戏位置)。我只有一部 iPhone,所以问题是这个问题是否也适用于 iCloud 上仅有且仅有一台设备的备份。我会卖掉我的 iPhone,购买一部新手机,然后从 iCloud 上传完整的备份,这样我就可以在新手机中拥有所有设置和应用程序设置(社交网络密码、保存的游戏位置...),例如上次在旧的,它是这样工作的吗?这是移民的主要原因之一,即没有root的Android无法完全备份,当我切换到另一部手机时,我们下载了所有应用程序,但我必须手动重做其中的所有设置,并且有数十个应用程序,这需要几个小时的额外时间。那么 iCloud 是否可以解决 iTunes 中一台设备的这个问题呢?谢谢(你的)信息。
你不必害怕! Apple 设备上的 iCloud 在任何地方都可以 100% 运行。大约 2 个月前,我买了一台 iP5,坐在一家有 wifi 的咖啡店里,输入我的苹果帐户密码,10 分钟后我就得到了我旧 iPhone 的精确图像,甚至连最后打开的应用程序都在我看来! iPhone 中的所有数据将在大约 10 分钟内下载到新的 iP(我有一台完整的 32GB iPhone,其中包含几年前第一部 iPhone 的数据,因此可能需要更短的时间)到新的 iP,即使应用程序的排列(当然)仍然需要下载,但它们都将包含以前的 iPhone 中包含的数据。您所要做的就是手动登录到需要它的应用程序。)
你不必害怕! Apple 设备上的 iCloud 在任何地方都可以 100% 运行。大约 2 个月前,我买了一台 iP5,坐在一家有 wifi 的咖啡店里,输入我的苹果帐户密码,10 分钟后我就得到了我旧 iPhone 的精确图像,甚至连最后打开的应用程序都在我看来! iPhone 中的所有数据将在大约 10 分钟内下载到新的 iP(我有一台完整的 32GB iPhone,其中包含几年前第一部 iPhone 的数据,因此可能需要更短的时间)到新的 iP,即使应用程序的排列(当然)仍然需要下载,但它们都将包含以前的 iPhone 中包含的数据。您所要做的就是手动登录到需要它的应用程序。)
我也必须在这里做出贡献.. 作为一名初学者开发人员,我也在尝试在我的应用程序中实现 iCloud.. 我还没有丢失任何数据.. 一切都按预期进行.. 我想我是幸运..我唯一可能不喜欢的是速度同步..加载大约1 MB的数据肯定比从互联网上下载经典的1 MB数据要花更长的时间..但是,由于所有日志都已下载,所以这是可以接受的.. 是的,您的 IP 或 iPad 很容易被窃听,因此需要从 iCloud 删除所有数据,然后恢复整个手机。.(数据将保留在那里,但如果设置错误,则会生成错误.. )但是一切都会在 10 分钟内恢复,这个问题只涉及开发人员。。这不会发生在普通人身上。。在 iOS6 上,我绝对不会以核心数据的形式使用 iCloud 出现重大问题,我有些不同意与文章。
哦,好吧,第一句话“史蒂夫·乔布斯推出了一项至今仍令许多开发人员感到恐惧的服务。它只不过是 iCloud”。事实上,这实际上只是核心数据同步的问题,我们将在大约 12 行下面找到答案。
天啊,为了哗众取宠,必须歪曲事实,让它们更加耸人听闻。