据我了解,Apple 已禁止在 iPhone 上使用 Flash 运行时,因为 Apple 不想要 Apple 通过自己的工具提供的运行时环境的替代运行环境。根据 Apple 的说法,允许 Flash 运行时将允许开发人员绕过 Apple 实施的应用程序更新策略和其他控制措施。而此时,Adobe 还没有选择构建工具来静态编译在 Flash 中创建的应用程序。
我进一步的理解是,通过 MonoTouch 创建的 .NET 应用程序是静态预编译的,并作为本机代码在 iPhone 上运行,而不是在 .NET 公共语言运行时 (CLR) 中运行,Apple 肯定会不允许这样做。由于 .NET 代码不是在 Microsoft 的运行时中执行,而是在 iPhone CPU 上本地执行,因此 Apple 没有抱怨。
我的问题是:
我对为什么 Apple 允许在 iPhone 上使用 .NET 开发的应用程序是否正确?
一个供应商在 iPhone(或我想的任何平台)上的预编译本机代码是否与其他供应商有区别?换句话说,MonoTouch 生成的本机代码与编译的 Objective C 代码生成的本机代码没有区别吗?本机代码的来源完全不透明吗?