新的iPhone开发者协议禁止使用Adobe的Flash-to-iPhone编译器

在今天发布iPhone OS 4 SDK之前,iPhone开发人员计划许可协议的第3.3.1节完整地阅读:

3.3.1 — Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs.

在Apple今天发布的新版iPhone开发者计划许可协议中(以及开发人员必须在下载4.0 SDK beta之前同意),第3.3.1节现在为:

3.3.1 — Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs. Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs (e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited).

我对这种新语言的阅读就是交叉编译器,比如Flash-to-iPhone编译器在Adobe即将推出的Flash Professional CS5版本中,是禁止的这也禁止使用编译的应用程序MonoTouch的- 一个将C#和.NET应用程序编译到iPhone的工具目前还不清楚这对于像这样的工具意味着什么PhoneGap的,允许开发人员在本机iPhone应用程序包装器中编写在WebKit中运行的JavaScript代码他们可能没事。来自PhoneGap Twitter帐户的这条推文表明他们并不担心Appcelerator的人但是,他们意识到他们可能会出类拔萃用钛。安斯卡的Corona SDK,让你用Lua编写iPhone应用程序,让我觉得不可思议。

我原本以为这会禁止使用的游戏Unity3D,但也许不是 - Unity3D生成一个完整的Xcode项目和Objective-C源文件,所以它更像是预处理器而不是交叉编译器很难说但是,如果你强迫我下注,开发人员正在编写C#代码这一事实使Unity3D处于这条规则的错误一边。

在今天的公告活动中没有提到这种变化,但协议中的语言并没有为Flash CS5留下太大的余地如果他们通过名字挑出Flash CS5就不太清楚了(不知道Adobe现在做了什么?CS5是thisclose发布和iPhone编译器是这个版本的Flash的旗舰功能他们非常性交。)

我不确定Apple究竟打算如何强制执行此操作,但我的理解是,通过检查应用程序包的内容,可以轻松识别Flash CS5生成的iPhone应用程序我不确定是否有任何“中间翻译或兼容性层或工具”产生的应用程序包与Xcode和官方SDK生成的应用程序包无法区分。

更新:要明确的是,我不认为Apple正在挑出Flash CS5不过我确实认为,Flash CS5的交叉编译器是Apple不会允许的那种元框架的缩影MonoTouch也是如此苹果公司不想要的东西 - 正如我们现在所看到的那样,是不允许的 - 除了Apple以外的任何人都可以定义原生iPhone应用程序的框架What Apple is saying here is, if you’re going to write a native iPhone app, then you need to target our platform; if you want to do something else, then target the iPhone with an optimized web app即,iPhone OS支持两个软件平台:Cocoa Touch和WebApple不会让任何人在Cocoa Touch之上构建一个元平台我认为来自“raganwald”的Hacker News的评论指出了Apple对此的看法

以前: iPad
下一个: 为什么Apple改变了第3.3.1节