2010-06-06 63 views
5

Apple不希望任何人在Xcode/Objective-C环境之外创建iPhone应用程序。他们怎么能够实际执行这个?新的iPhone开发政策...苹果如何执行此操作?

如果非Xcode IDE(例如Unity)编译为iPhone可执行文件,苹果将如何知道您使用哪个开发环境创建应用程序?他们可以让Xcode在可执行文件中编译某种签名,但没人知道吗?

+0

@Longpoke:我认为这主要是为了阻止Adobe。 – dreamlax 2010-06-07 00:49:26

+3

等等,什么?主观的和议论性的?我不同意,我认为这是一个很好的问题 - 苹果如何识别3.3.1违规? – Colin 2010-06-07 01:34:05

+2

为什么这是“主观的”?只有一个正确的答案,要么他们有办法知道谁没有忍者违反规则,或者他们不知道。 – 2010-06-07 03:20:51

回答

1

对于Unity,Corona,Flash和其他用于'生成'iphone应用的平台等工具,Apple可能会'反编译'并检查您的应用(查看生成函数的模式等)。从这个角度来看,他们可能会猜测你的应用是用这样的工具生成的。

在极限中,这是不可能的。考虑以下几点:我编写一些脚本代码来生成一堆Objective-C代码。然后我手动将objective-c文件导入到xcode中并构建应用程序。苹果如何能够将脚本生成的代码与人类编写的代码区分开来?也许我只是倾向于编写看起来是机器生成的代码。苹果没有办法确定代码是否是“最初用Objective-C,C,C++或JavaScript编写的”,但从技术上讲,这仍然违反了协议。这就是为什么3.3.1协议的一部分是无稽之谈。

0

我相信很多这些翻译工具都有一些通用的运行时函数库,它们负责处理1:1不能翻译的部分。无论您的应用程序如何,这些功能都可以保持稳定。这样就不需要反编译应用程序。而只是寻找这些功能签名的用法。

FWIW我发现限制用户选择工具的想法是一个坏的举动。

1

大多数自动化系统都是以特定的方式处理事情,这并不难发现。例如,如果您曾经查看Adobe Dreamweaver生成的PHP或JavaScript代码,则知道找到这样的东西是多么容易。

1

苹果正在这样做,以防止人们使用Adobe的Flash开发框架。还应该注意的是,苹果决定限制这样的应用框架正在导致司法部/联邦贸易委员会或一些政府机构开始对垄断做法进行非正式调查。

From this article: “根据帖子的好莱坞来源,苹果公司的iPhone和iPad的Adobe的Flash技术的禁令是什么原因促使政府闲逛。”

他们真的没有一个问题,到现在为止与其他框架,因为Adobe没有一个基于Flash环境。现在有一个,苹果将限制在iPhone上谈论/看起来/闻起来/行为像Adobe Flash应用程序的任何东西。在我看来,他们不会对其他框架做任何事情,但他们会强制执行仅适用于Adobe的规则。这引起了整个垄断行为的事情。