为什么mono touch可以用C#编写iOS应用程序并可以提交给AppStore?

DNB*_*ims 2 c# objective-c app-store xamarin.ios

这是使用C#中断器或编译器将C#代码传输到Objective C的单声道触摸吗?但根据Apple指南,不允许在AppStore上提交中断器或编译器应用程序.这魔法怎么回事?谢谢.

Joh*_*ner 11

MonoTouch简介文档:

MonoTouch允许您使用C#和.NET基类库(BCL)编写本机iOS应用程序.通过Mono编译器的神奇功能,在MonoTouch平台上构建的应用程序可直接编译为本机ARM汇编代码.

由于它正在编译为ARM代码,因此在您的应用程序运行时,设备上不会发生任何解释,这就是应用程序符合AppStore要求的原因.


cra*_*str 8

在文档中,MonoTouch简介(重点补充):

MonoTouch允许您使用C#和.NET基类库(BCL)编写本机iOS应用程序.通过Mono编译器的神奇功能,在MonoTouch平台上构建的应用程序可直接编译为本机ARM汇编代码.这与创建在运行时编译的中间语言(IL)代码的传统.NET应用程序的编译器形成对比.甚至像曾经依赖于即时(JIT)编译的泛型这样的东西也可以通过Mono的Ahead Of Time(AOT)编译器获得.

所以没有翻译.它编译为本机ARM程序集.


Phi*_*all 5

请参阅2010年Apple 发布的新闻稿,其中说明他们已经删除了用于创建iOS应用程序的工具的限制.(帽子提示@ ShaChris23对这个问题的评论.)

这就解释了为什么允许使用常规编译器 - 正如其他答案所解释的那样,MonoTouch是一个编译器,而不是像其他平台上的Mono/.NET那样的JIT解释/编译语言.