Edu*_*coz 17 iphone mono xamarin.ios
MonoTouch似乎是iPhone开发的绝佳平台,但我担心将其部署到Apple Store.是否有任何使用iTunes构建的应用程序示例?
我们正在为iPhone启动一个新项目,并将整个堆栈保留在C#中会很棒,但我们不希望因为MonoTouch而被苹果商店拒之门外.
我已经阅读了几款目前使用单声道(非MonoTouch)用于3D图形的游戏,但是没有找到任何有关MonoTouch的内容.
Ror*_*yth 55
在我的手机上点击这个,所以会有点简洁 - 为此道歉.
无论如何:
- 正如之前的回答中所说,已经有一些MonoTouch应用程序发布到App Store.无论是两个还是一个bajillion并不重要.1和0之间的差异是无限的 - 答案是明确的:是的,Apple将批准MonoTouch应用程序.
- MonoTouch遵循Apple的规则.它会吐出原生位.代码没有解释,也没有JITting.您的MonoTouch应用程序与其他任何应用程序一样,它包含与其他任何应用程序一样的本机二进制文件.
- MonoTouch的应用程序是大于他们是,如果他们与苹果的堆栈写的.这是因为您的MonoTouch应用程序依赖于Mono/.Net框架的子集.在这方面,不过,一旦你到什么船,没有什么关于MonoTouch的应用尤其是不同的.我在一家公司工作,我们用自定义框架构建我们的应用程序(使用Apple的堆栈开发).它增加了我们的应用程序的大小,但它也减少了生产时间(这总是权衡,对吧?).另外,编译后的应用程序包的大小可能具有欺骗性.由于束拉链为App Store,规模显着降低-你可以随便写一个MonoTouch的应用程序,属于良好的交付OTA(我提这件事的应用程序在可接受的大小限制,因为这是一个问题MT n0obs(正确)往往会问).因此,Apple没有任何真正的理由拒绝基于大小.
- 无论是MonoTouch还是自定义的内部框架,就像我以前使用的那样,MonoTouch的东西,当你的应用程序附带时,只是另一个可以用Objective-C编写的框架.
- 如果您担心使用整个MonoTouch堆栈配置应用程序以进行分发以及这可能会如何影响您的批准机会,您可以告诉MonoDevelop(或命令行中的mtouch实用程序)输出Xcode项目.你会看到你的代码已被转换 - 你将会看到原生程序集(不是IL的某种风格).您可以在Xcode中构建和运行MonoTouch生成的应用程序,此时MonoTouch基本上不在图片中(除了作为您正在构建的框架(例如,像MapKit)).
出于某种原因,所有这些都困扰着一个非常小但有声有色的iPhone开发者,无论出于什么原因,他们无法忍受他们不知道使用不同工具构建应用程序的人的想法.但他们的仇恨并没有改变苹果公司接受MonoTouch应用程序(以及很久以前的Unity应用程序)的简单事实.
根据我的经验,你会看到MT应用程序被拒绝的最大原因是MT开发人员(我已经谈了很多 - 在做了一些演讲之后,发布到论坛,邮件列表,这里......) ,他们还没有学会如何开发iPhone应用程序.iPhone开发人员必须对他们如何编写应用程序感到遗憾.MonoTouch不是障碍 - 例如,它知道Apple希望你的应用程序以某种方式看待并以某种方式工作 - 它应该看起来和感觉和行为像其他(好的)iPhone应用程序,并且不应该是尝试为手机编写桌面应用程序的例子(这是您的平均开发人员在转换到移动开发时犯下他的第一个错误的地方).
最终,你选择的工具并不重要,只要它创造出符合Apple规则的游戏(如MonoTouch).真正的障碍是学习iPhone的应用程序设计方式.
.NET应用程序开发者,无论是在Windows,Windows Mobile或单声道的地方(不MonoTouch的)运行时,根据自己的口味习惯开发应用程序.这在iPhone世界中并不存在.
您可以安全地使用MonoTouch.如图所示,Apple 将批准MT应用程序.
您真正需要做的事情(再次,无论您选择哪个开发堆栈)都会阅读Apple的iPhone应用程序设计文档及其指南.有一大群开发者将他们的应用拒绝归因于苹果公司是邪恶的(或者其他什么 - 基本上不知情的借口),当事实是他们的应用程序是垃圾并且很明显开发人员没有遵守规则(甚至懒得阅读规则).
最后,在很多情况下,使用MonoTouch时你会编写更少的代码,而且这个代码的成本是一个更大的应用程序包(正如我所说的那样,在压缩分发之后,它的大小会非常合理).
这不是什么大问题.使用3g,用户不会下载2-3MB大小的应用程序.如果它足够小,可以发送OTA,一切都很好.如果您的应用程序超出限制,它可能是嵌入式资源(媒体 - 图像,视频等 - 这就是捆绑包通常会膨胀到仅限wifi的大小),这也是Objective-C开发人员必须处理的事情. ,这不是MonoTouch问题.
所以,忽略那些仇恨者(他们甚至没有尝试过MonoTouch或者想要了解它是如何工作的),并且请放心,只要您的应用符合Apple的指导原则,他们就没有理由拒绝它.这并不意味着只要你正确地设计它就会保证你的应用程序被接受(大量的应用程序因为没有明显的原因而遭到拒绝),但是你可以或多或少地认为自己与开发人员使用Apple的工具处于平等地位.
希望这可以帮助 :)
Jb *_*ain 10
MonoTouch社区正在维护一个MonoTouch应用程序列表,这些应用程序目前在Apple Store上可用,并且是使用MonoTouch编写的.