据我所知,苹果禁止在iPhone上运行Flash,因为苹果公司不希望苹果通过自己的工具提供的运行环境。根据苹果的说法,允许Flash运行时将允许开发人员规避苹果已实施的应用更新策略和其他控制措施。而目前,Adobe并未选择构建工具来静态编译在Flash中创建的应用程序。为什么Apple允许在iPhone上使用.NET,但不能使用Flash?
我的进一步理解是,通过MonoTouch创建的.NET应用程序是静态预编译的,并以本机代码的形式运行iPhone,而在.NET公共语言运行时(CLR)内运行,Apple肯定不允许这样做。由于.NET代码不是在微软的运行时执行,而是在iPhone CPU本身执行,Apple并不抱怨。
我的问题是:
我是正确,为什么苹果允许在iPhone上的.NET开发的应用程序?
是否有一家供应商的预编译的本机代码在iPhone上(或者我认为的任何平台)与其他任何平台区分开来?换句话说,MonoTouch生成的本地代码与编译后的Objective C代码生成的本地代码没有什么区别?本地代码的来源是完全不透明的?
这里有一个相当不错的博客文章,为什么闪光灯也不会在它的“正常”的化身上的iPhone/iPod/iPad的出现:http://daringfireball.net/2010/01/apple_adobe_flash – JBRWilkinson 2010-01-31 10:55:55
从什么我明白,它开始和结束电池寿命。 – Dested 2010-03-10 11:35:00
可能值得注意的是,苹果公司提出了改变其开发协议的建议,以扭转这个问题的答案。这个改变将要求所有的应用程序都应该在obj-C/C/C++中“最初编写”。 http://bit.ly/akvgRL所以技术上你仍然可以在.NET或Flash中开发应用程序,但是Apple会拒绝它们。 – fenomas 2010-04-11 05:16:53