iPhone开发者许可变更:反响强烈、结果难料

最近有报道说Apple变更了iPhone开发者许可,进而阻止使用除Objective-C、C和C++之外的其他语言编写应用,也不允许“借助中间转换、兼容层和工具”来访问API。人们对此反响强烈,这种效应很有可能波及到整个业界。

用于开发iPhone、iPad和iPod Touch应用的iPhone SDK 3.2及之前版本在iPhone Developer Program License Agreement(DPLA)中都声明了如下条款:

3.3.1——应用只允许以Apple规定的方式使用Documented API,不允许使用或调用任何私有的API。

最新的iPhone OS 4.0 SDK目前还处于Beta版并已向注册的开发者提供下载。Apple对DPLA的多处变更还处于保密状态,John Gruber则报料说3.3.1的条款已经变成了下面这个样子:

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

这意味着今后必须使用Objective-C、C、C++或JavaScript编写iPhone应用了,严格禁止跨编译器的行为,这将对很多公司造成影响。由于许可说明还不是十分清楚,这也导致了人们的各种猜测。

Apple的这个举动对Adobe造成了直接的影响,他们刚刚在市场上发布了Adobe Creative Suite 5(CS 5)。Adobe鼓吹CS 5的一个主要亮点就是可以将Flash FLA文件导出为IPA,创建可以部署在iPhone上的应用,根据Adobe Creative Solutions的业务经理John Loiacono所述:

我们非常高兴地宣布开发者可以使用Flash开发工具在iPhone上构建、编译并运行应用了。

这类应用不会在运行期编译代码,理应与App Store所销售的其他应用享有同样的审批过程,但Apple对开发者许可的变更改变了这一切。
Adobe CTO Kevin Lynch对新的许可条件发表了如下评论:

昨天,Apple对其SDK许可进行了一些改变,限制了开发者可以使用的技术[…]。

我们依然会将该功能放到CS 5中,随着时间的流逝,Apple还会不断改变规则,是否允许这些应用就是他们自己的事儿了。

Unity 3D有个游戏开发工具,开发者可以使用该工具在多个平台上创建游戏。目前有成百上千的iPhone应用都使用到了这个工具,其中一些还在App Store上热卖。Alex Blewitt认为Unity会深受这种变更的影响:

作为一个3D工具,Unity可以用在多个平台上,能够加速游戏开发。然而,它却是Apple明令禁止的“兼容层或工具”。

Gruber认为Unity不会受到什么影响:

一开始我还以为这将禁止使用 Unity3D编写游戏呢,但或许并非这样——Unity3D会生成一个完整的Xcode项目和Objective-C源文件,这看起来更像是一个预处理而非跨编译器,很难说。如果要我打赌,那么开发者使用Unity3D编写C#代码的事实则违背了规则。

Unity 3D自己不知道该说什么。他们已经与Apple取得了联系并在焦急地等待澄清结果。

我们希望自己安然无恙,但显然这种希望并不能保证什么。我所能保证的就是我们将在力所能及的范围内一如既往地完善Unity3D,只要获悉了更多信息,我们会在第一时间通知大家。

还有很多工具都受到了许可变更的影响,如MonoTouch、Titanium、PhoneGap和Ansca Corona等。他们都提出了类似的问题:并不知晓Apple对许可进行变更的意图是什么,他们也深信一切都会好起来的:

MonoTouch:我们与Apple进行了接触以了解其意图,相信在4.0 SDK最终版发布前还有很大空间修改我们的方向。

如果Apple的动机在于技术,想让大家使用他们的工具链,那么MonoTouch很容易就能满足SDK的条款。MonoTouch只能运行在Mac OS X上并与Xcode和iPhone SDK紧密集成。

Appcelerator Titanium:我们坚信自己的做法完全符合iPhone OS 4.0服务条款[…]。

使用Titanium的前提是开发者必须要安装Apple iPhone SDK和Apple Xcode工具链,必须在Macintosh上安装Titanium,只有具备了合法的Apple开发者资格后才能创建基于Titanium的iPhone/iPad应用。

Titanium会在应用创建阶段生成合法的Xcode项目、Objective-C(有时是C/C++)代码并使用Apple公开发布的API通过xcodebuild将Xcode项目编译为本地应用。

PhoneGap:每个人都对新政策松了一口气。Apple已经认可了phonegap应用。

Ansca Corona:我相信Corona没问题,我们一直致力于创造最棒的多平台游戏工具,为Apple和Android设备创建应用,我们还会一如既往地向Corona中增加新特性,期待每次发布的新版本都能更上一层楼[…]。

到目前为止,Apple尚未以官方和非官方的方式通知我们不兼容的问题。Apple还为4月3日iPad Store的盛大开幕批准了几个Corona应用,这个事实再次表明我们是符合服务条款要求的,为iPhone/iPad生态圈创造了巨大的价值。

很多人都对Apple的这个举动感到困惑甚至有些义愤填膺。Dan Grigsby是一位企业家,同时也是一个iPhone开发者,他已经放弃了iPhone:

Apple想要巩固App Store的地位,这我没意见。如果他们将App Store看作是品牌扩展,这也很好。如果这就是他们的目标,那他们应该全方位清理Store了,剔除那些糟糕但没恶意的糟粕,像Android那样提供无限制、平滑的脱离于Store的应用。

我这个人讲求原则,但Apple已经触犯了我的原则。我决定不再开发iPhone了,我再也不想在这种需要征得许可的环境下工作了。

Sun前主管及XML的联合编者Tim Bray最近加入了Google以提升其Mobile OS的竞争力,他认为Android更加自由:

显然Apple认为你可以利用Internet所带来的好处,同时他们又操控着哪些程序可以运行、哪些栈可以访问、哪些话可以说等事项。

我认为他们错了,我现在所从事的工作将证明这一点。

直接部署应用而没有利用App Store的企业将不会受到此次变更的影响。但如果他们同时使用了这两种方式(既有直接部署,又利用了Store),那就必须得遵循许可的要求了。

一些人认为Apple只是想保证为iPhone所开发的应用具有良好的品质并充分利用了iPhone的能力。其他人则谴责Apple断了那些开发了iPhone本地工具Xcode替代者的开发人员们的后路。不管怎样,所有人都在焦急地等待着Apple的澄清。

查看英文原文:Reactions and Consequences of the iPhone Developer License Change

你可能感兴趣的:(iPhone开发者许可变更:反响强烈、结果难料)