苹果放宽 iPhone 开发工具和数据共享限制

  • Ron Bodkin
  • 李永伦

2010 年 10 月 12 日

话题:移动Apple架构DevOps语言 & 开发

苹果近日宣布,他们“听取我们的开发者”和“我们放宽用于创建 iOS 应用程序的开发工具的所有限制,只要最终的应用程序没有下载任何代码就行了。” 他们还宣布,“我们将首次发布 App Store 审查指南,以帮助开发者了解我们如何审查提交的应用程序。”

开发工具

早在 4 月,苹果限制 iPhone 的开发只能使用他们的开发工具(正如 InfoQ 当时报道的那样)。该限制(协议的第 3.3.1 部分)已经完全取消,特别是这里提到的所有语言都被删除了:

应用程序从一开始就必须使用 Objective-C、C、C++ 或 JavaScript 编写(由 iPhone OS WebKit 引擎负责执行),只有用 C、C++ 和 Objective-C 编写的代码才能编译并直接链接到 Documented API 上(比如,不允许通过中间转换、兼容层和工具将应用程序链接到 Documented API 上)。

协议的第 3.3.2 部分也改变了:它禁止应用程序“以任何方式启动其它可执行代码,包括但不限于使用插件架构,调用其它框架,其他 API,或以其它方式。现在已经放宽,并且恢复到旧规则:

3.3.2 应用程序不能下载或安装可执行代码。仅当所有脚本、代码和解释器都包含在应用程序里而非下载的,解释代码才可用于应用程序。上述限制的唯一例外是由苹果内置的 WebKit 框架下载和运行的脚本和代码。

这些规则将再次允许使用诸如 Adobe Flash 开发应用程序。不过,正如 Stephen Shankland在博客提到的:

苹果和 Adobe 并没有对此立刻作出回应。但有一点是明确的:Adobe 还没决定就此取消 Flash-to-iOS 项目,但重拾这个项目也不简单。

鉴于最近的趋势,谷歌的 Android 手机操作系统正在迅速抢占苹果的 iOS 市场份额,这一变化可能是一个前瞻性的举措,以确保开发人员继续为 iPhone 以及 Android 开发应用程序。当然,开发者对于跨平台移动开发的兴趣是浓厚的,这点可以从 Appcelerator 的使用增长上看到,它能够用来开发 iPhone、Android 和 ipad 的应用程序。Mashable注意到

截至今天,已有超过 65,000 开发者签约使用 Titanium,iPhone 的 App Store 或 Android Market 上已有超过 4000 使用 Titanium 创建的应用程序。

数据共享的限制放宽

今年 6 月,苹果阻止其应用程序与许多公司共享数据,阻止应用程序“收集、使用或向任何第三方披露用户或设备的数据,”除非应用程序需要或通过“主营业务是提供移动广告的独立广告服务提供商”提供广告服务。比较特别的是,它排除了谷歌(及其 AdMob 部门,通过补充条款):“……(例如,隶属苹果以外的移动设备、移动操作系统或开发环境的开发商或经销商的广告服务提供商将不被认可为独立的)。”

这次改变是由 Flurry Analytics 关于未发布设备的报告触发的,以作为史蒂夫•乔布斯在 D8 会议上的回应,其中他也表示,他们愿意允许分析“仅作广告”之用。新协议的语言已被软化,在很大程度上,现在的重点是只需用户同意以及禁止分析软件获取设备的数据:

3.3.9 你和你的应用程序未经用户同意不能获取用户或设备的数据,只能提供与应用程序的使用或广告的投放直接相关的服务或功能。你不能使用应用程序里的分析软件收集并向第三方发送设备的数据。

关于谷歌的限制也被取消。谷歌反应积极,说:

不像以前的版本,这些新的条款确保苹果的开发者在广告解决方案上有足够的选择(包括谷歌的和 AdMob 的),能够赚钱并养活他们的应用程序。苹果的新条款将保证 iPhone 的应用程序广告对许多不同移动广告竞争对手开放,并使广告解决方案的运作能跨越更多平台。

审查指南发布

最后,许可协议的更新伴随着苹果 App Store 审查指南的发布。

华尔街日报的 Jennifer Valentino-DeVries 在博客里报道了这件事:“苹果公司似乎是说,它把应用程序看作其品牌的一个重要组成部分,而不仅仅是通过其系统发布的东西。”此外还指出

“我们在 App Store 里拥有超过 25 万应用程序。我们不再需要无聊的应用程序。如果你的应用程序不做有用的事情或提供有持效性的娱乐内容,它可能会被拒绝。”“如果你的应用程序看起来就像是用几天时间拼凑起来的,或者你想把你的第一个试验应用程序进入商店,以便打动你的朋友,请鼓起勇气拒绝自己这样做。我们有认真的开发者,他们不希望自己高质量的应用程序被许多业余玩意儿包围。”这些话 Steve Jobs 好像已经说了很多遍。就在这个月,他再次提及这个词儿——“业余玩意”——在谈及消费者不希望在互联网电视上看到的东西时。……但评论也明确指出,苹果认为应用程序市场正在成长。起初可能是无聊的应用程序使之进入这个市场,但那已不再是人们想要的了。

华盛顿邮报的 Rob Pegoraro 指出“这些规则许多都是常识性的指导方针”,但他发现了更多有争议性的规则,如:

2.11 重复 App Store 里已有应用程序的应用程序可能会被拒绝,特别是如果它们已经有很多了。2.12 不是非常有用的或不提供任何有持效性的娱乐价值的应用程序可能会被拒绝。3.1 应用程序的元数据提及任何其他移动平台的名字将会被拒绝。……9.3 使用蜂窝电话网络的音频流内容不得在 5 分钟内使用超过 5MB 的流量。……15.3 游戏中“敌人”不能只针对特定的种族、文化、真实政府或公司,或任何其他真实的实体。

总的来说,苹果的改变对于他们的开发者来说是很受欢迎的,虽然这些限制还有问题。

查看英文原文:Apple Relaxes iPhone Development Tool and Data Sharing Restrictions

移动Apple架构DevOps语言 & 开发