views:

2563

answers:

4

I have never done any iPhone or iPod Touch development, much due to the additional need for a Mac to develop on, plus needing to learn Objective-C. With the announcement of MonoTouch now I can use .NET languages I am already familiar with, and develop on my Windows PC.

However I am curious if I will still need a Mac to deploy and test my iPhone application? So what tools are necessary for iPhone touch and which ones of those will run on Windows with MonoTouch?

+4  A: 

The seeds for an answer are embedded in your question. From the project page:

MonoTouch requires a Mac and Apple's iPhone SDK to test on the emulator; And you will need to be an Apple iPhone developer to deploy on the device.

Michael Petrotta
+1  A: 

Neither of the points in Michael's response speak directly to Jim's question.

Being on a Windows platform will prevent you from using the iPhone SDK emulator, but will not necessarily prevent you from deploying to and testing on an actual iPhone/iPod Touch.

To my knowledge you do not have to own Mac hardware to register as an iPhone developer. You need to be a iPhone developer so that you can use the test deploy functionality that the iPhone supports though.

I have not tried MonoTouch yet but this is my understanding of how it works. When you compile using MonoTouch it will output a binary ready to be run on the iPhone/iPod Touch device. You would then use iTunes to drag the binary over the application panel and sync the device. This approach will surely not be as automated as native development but it should work "Mac free".

Chris Porter
That sounds pretty scary unless there's hardware debugging. How do you know if you're leaking memory? How do you fix it if it crashes on the device but not the emulator? Sounds fun, but I'd be scared to rely on it without doing a test project and seeing what the flow is like.
Nosredna
Agreed. I can't imagine trying to write a piece of software for a device like the iPhone without a major portion of the intended development tools. When I do iPhone dev it will definitely have a Mac in the tool chain.I've looked a bit at iPhone development and went as far as buying a MacBook Pro to do the development on. It was an incredible purchase and I haven't for one second regreted it.
Chris Porter
As Louis points out, you will need to codesign the binary before installation on a non-jailbroken device, and that's only available on the Mac.
Brad Larson
Also, MonoTouch still requires the Apple SDK to AOT compile to native code, since the device prevents JITing.
mhutch
+7  A: 

Seeing as the codesigning tool necessary to sign the application for execution on the device is undocumented and only available for OS X I think it is a safe bet that you can only actually build an app for deployment on OS X.

While it technically may be possible to compile apps under some other OS, with the simulator or the codesign tool you have no way to test them, so you will need a Mac available in order to do that anyway. I suppose it might also be possible to test against jailbroken device, but I would not want to ship an app that had not been tested a stock OS firmware.

Louis Gerbarg
Thanks Louis. That was what I was expecting might be case.
Jim McKeeth
A: 

This may provide some 'shady' but interesting reading for someone with an existing Windows PC.

http://osx86.thefreesuite.com/

JamesM