MonoTouch是否需要Mac才能发布到iPhone/iPod Touch?

6
我以前从未进行过iPhone或iPod Touch开发,这在很大程度上是由于需要Mac进行开发,还需要学习Objective-C。现在MonoTouch的发布使我可以使用已经熟悉的.NET语言,在Windows PC上开发。

但是我想知道是否仍然需要Mac来部署和测试我的iPhone应用程序?那么哪些工具是iPhone touch所必需的,而这些工具中哪些可以在MonoTouch的Windows上运行?


3
请记住,如果你已经掌握了一些类似C的语言,学习Objective-C将会很容易。更棘手的是要学习框架。虽然这个MonoTouch可以让你在开发某些东西时重复使用你的知识,但你仍然需要学习一些新的内容来处理iPhone的用户界面。最好还是勇敢地学习CocoaTouch本身吧。 - Mike Abdullah
1
真正的障碍是在我已经有新的台式电脑和笔记本电脑的情况下,拿出钱来购买新的苹果设备。此时iPhone开发只是一种好奇,而不是商业需求,因此成本几乎无法被证明是合理的。 - Jim McKeeth
4个回答

11

考虑到用于签署设备上的应用程序所需的代码签名工具未经记录,且仅适用于OS X,因此我认为可以肯定地说您只能构建可在OS X上部署的应用程序。

虽然在其他某些操作系统下编译应用程序在技术上是可能的,但使用模拟器或代码签名工具时您无法对其进行测试,因此您需要一个可用的Mac来进行测试。我想也许还可以针对越狱设备进行测试,但我不想发布没有经过原始操作系统固件测试的应用程序。


谢谢,路易斯。这正是我所期望的情况。 - Jim McKeeth

6

您的问题中已经包含了答案。从项目页面上可以看到:

MonoTouch需要Mac和苹果的iPhone SDK才能在模拟器上进行测试;同时,您还需要成为苹果iPhone开发者才能在设备上部署。


2

迈克尔的回答并没有直接回答吉姆的问题。

使用Windows平台将阻止您使用iPhone SDK模拟器,但不一定会阻止您部署和测试实际的iPhone / iPod Touch。

据我所知,您不必拥有Mac硬件才能注册为iPhone开发人员。 您需要成为iPhone开发人员,以便可以使用iPhone支持的测试部署功能。

我还没有尝试过MonoTouch,但这是我对其工作方式的理解。 使用MonoTouch编译后,它将输出一个准备好在iPhone / iPod Touch设备上运行的二进制文件。 然后,您将使用iTunes将该二进制文件拖到应用程序面板上并同步设备。 这种方法肯定不像本地开发那样自动化,但它应该可以“无需Mac”。


这听起来相当可怕,除非有硬件调试。如果你的内存泄漏了,你怎么知道呢?如果它在设备上崩溃但不在模拟器上崩溃,你该怎么修复它?听起来很有趣,但我会害怕在没有进行测试项目并了解流程的情况下依赖它。 - Nosredna
同意。我无法想象在没有主要的开发工具的情况下为iPhone这样的设备编写软件。当我进行iPhone开发时,肯定会将Mac纳入工具链中。我已经稍微研究过iPhone开发,并买了一台MacBook Pro来进行开发。这是一次不可思议的购买,我从未后悔过。 - Chris Porter
2
正如Louis所指出的那样,在将二进制文件安装到非越狱设备上之前,您需要对其进行代码签名,而这只能在Mac上完成。 - Brad Larson
此外,MonoTouch仍需要Apple SDK来进行AOT编译为本地代码,因为设备防止JITing。 - Mikayla Hutchinson
1
不想重复强调,但是你不能在除了MacOSX以外的任何系统上安装iOS SDKs...所以如果没有Mac,你真的无法访问这些SDKs。 - jstedfast

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接