为什么Apple允许在iPhone上使用.NET但不允许使用Flash?

Emi*_*lio 3 .net iphone flash xamarin.ios

根据我的理解,Apple已禁止在iPhone上使用Flash运行时,因为Apple不希望通过自己的工具提供替代的运行时环境.据Apple称,允许Flash运行时允许开发人员规避Apple已实施的应用程序更新策略和其他控制措施.而目前,Adobe还没有选择构建工具来静态编译在Flash中创建的应用程序.

我的进一步理解是,通过MonoTouch创建的.NET应用程序是静态预编译的,并且作为本机代码而不是在.NET公共语言运行时(CLR)中运行,而苹果公司肯定不会这样做.由于.NET代码不是在微软的运行时执行,而是在iPhone上本机运行,因此Apple并没有抱怨.

我的问题是:

  1. 我是否正确为什么Apple允许在iPhone上使用.NET开发的应用程序?

  2. iPhone上(或我认为的任何平台)上的一个供应商的预编译本机代码是否可以与其他代码区分?换句话说,MonoTouch生成的本机代码是否与编译后的Objective C代码生成的本机代码无法区分?原生代码的来源是否完全不透明?

Rex*_*x M 19

正如您刚才所说,Apple并不是"允许"在iPhone上运行.NET - 无论是使用MonoTouch开发还是使用Cocoa或COBOL编写应用程序,或者无关紧要; 它只对它编译的内容很重要.它可以用JavaScript编写,也没关系.

如果我用英语写一些东西,然后将其翻译成法语,法国读者可以说原始版本是用英文写的吗?也许,可能不是,这完全取决于翻译的特点,而不是读者.所有苹果需要的是你给的版本他们是用法语写的.到目前为止,它没有任何区别.

对此的逻辑扩展是,理论上,您可以编写用于创建自包含iPhone二进制文件的Flash文件的编译器.如果在Flash中开发对您来说很重要.(这可能已经或可能没有 这已经完成.)

  • Adobe已经这样做了.您可以像使用mono一样将Flash编译为iPhone应用程序.http://labs.adobe.com/technologies/flashcs5/appsfor_iphone/ (3认同)
  • @Emilio不,他们没有.请仔细阅读我的回答. (2认同)