Friday, May 25, 2012

iPhone development on Windows


Is there a way to develop iPhone (iOS) applications on Windows? I really don't want to get yet another machine.



There is a project on http://code.google.com/p/winchain/wiki/HowToUse that seemed to work with iPhone 1.0, but had limited success with iPhone 2.0, plus it requires all the Cygwin insanity.



Is there anything else, or do I have to buy a Mac?


Source: Tips4all

30 comments:

  1. Short answer: no. More info here: http://forums.macrumors.com/showthread.php?t=537583
    Long answer: you can if you jailbreak your iPhone... but that's against your iPhone's EULA, jailbreaking would void your warranty, and there's a question on how to distribute your program without requiring a jailbroken phone.

    You could program to Safari for Windows, but that wouldn't be iPhone developement (it's closer to web development). You won't be able to take advantage of all the functions on the iPhone this way, but most of these limitations can be solved with a little creativity.

    In short, there's a gray area of the iPhone SDK prevent development on other platforms (read: not Mac).

    Btw, Apple has a very confusing EULA (Safari for Windows' EULA says that you can't install it on a non-Apple labeled computer.

    ReplyDelete
  2. If you have a jailbroken iPhone, you can install the full toolchain onto the iPhone through Cydia and that way you can just compilie the apps on the iPhone. Apps that are developed this way can still be submitted to the App Store.

    And although Mr Valdez said it is a grey area (which it is), jailbreaking is incredibly easy and pretty much risk free. Yes, it voids your warrenty but you can just do a restore and they will never know.

    ReplyDelete
  3. You will need an Intel-based Mac as the iPhone SDK requires OS X to run applications such as Xcode and the iPhone Simulator. Unfortunately, there is no legal way to develop applications for iPhone on anything that isn't a Mac.

    ReplyDelete
  4. My app, which has been on sale for three weeks, was developed entirely on a PC. See this topic for info.

    http://stackoverflow.com/questions/22358/how-can-i-develop-for-iphone-using-a-windows-development-machine#28573

    There are also now ways to run Leopard Client under emulation, though the legality of that is questionable.

    ReplyDelete
  5. Use Airplay SDK. Full C++ SDK compile to regular iPhone binary all on Win32. It also supports a bunch of other smartphone platforms.

    You still need to join Apple's developer program though some people seem to be using jailbroken devices. Naughty boys!

    ReplyDelete
  6. Simply put there isn't - you can develop applications on a virtual OSX machine hosted on windows or using VMWARE but it's a violation of the license agreement so its effectively illegal - or by using Winchain/toolchain projects, which people have had mixed success with.

    Part of the Apple strategy is to force buy-in of their hardware, as a hobbyist this might be ok to you either making use of jailbroken phone or toolchain - but if you were going to try and profit from building apps for the iphone via the store you would need to develop your app on Mac hardware/OS, and comply to the rather tight restrictions enforced by the developers license, which seems fair if you're going to profit from their platform in the first place.

    ReplyDelete
  7. You can try to develop web-based application for iPhone on windows if you wish so, but for
    "proper" applications you will need iPhone SDK and Xcode, those are Mac only, sorry…

    ReplyDelete
  8. Of course, you can write Objective-C code in notepad or other programs and then move it to a Mac to compile.

    But seriously, it depends on whether you are developing official applications to put in App Store or developing applications for jailbroken iPhone. To write official applications, Apple iPhone SDK which requires an Intel Mac seems to be the only practical way. However, there is an unofficial toolchain to write applications for jailbroken iPhones. You can run it on Linux and Windows (using Cygwin).

    ReplyDelete
  9. The SDK is only available on OS X, forcing you to use a mac. If you don't want to purchase a mac you can either run OS X on a virtual machine on your windows box, or you can install OS X on your PC.

    In my experience the virtual machine solution is unusably slow (on a core2 duo laptop with 2G ram). If you feel like trying it search for the torrent. It's probably not worthwhile.

    The other option is to install OS X on your PC, commonly referred to as a hackintosh. Hackintoshes work quite well - my friend just sold his mac because his Dell quad core hackintosh was actually much faster than the apple hardware (and cost about 1/3). You can find lots of articles on how to do this; here's one on how to install on a Dell Inspirion 1525 laptop: http://www.espressoreport.com/83/dell-inspiron-1525-hackbook-pro-tutorial/

    Of course both of these options are likely counter to some licensing scheme, so proceed at your own risk.

    Btw, how about giving apple some hell about being closed and forcing a platform (including hardware) on users? If MS had done the same surely we'd all be outraged.

    ReplyDelete
  10. You will soon be able to use Adobe Flash CS 5 to create Apps for the iPhone on Windows:

    http://labs.adobe.com/technologies/flashcs5/appsfor%5Fiphone/
    http://labs.adobe.com/technologies/flashcs5/

    ReplyDelete
  11. You can use Tersus (free, open source).

    ReplyDelete
  12. The iPhone developer tools are only available for Xcode, the OS X platform development kit. Which obviously is only available for for OS X.

    ReplyDelete
  13. Hey everyone, just wanted to say YES! You CAN develop for iPhone/iPod/iPad on windows, it's called airplay sdk, and it ain't low-powered like dragonfiresdk, it's complete! You can test your apps in a simulator, or build them to your device! Although airplay sdk is free, unless your iPhone is jailbroken, you can't test on your idevice without a iPhone developer account with apple, this costs $100 annually. The cool part is, there is no Mac needed in this whole process! Airplay sdk is free and surprisingly powerful!!!!

    ReplyDelete
  14. If this is for work purposes, then no, you will need a Mac.

    For personal use, look to getting a Mac Mini in January sometime (new version rumoured, who knows how true it is, but it's the cheap Mac). For work, might be a good excuse to get a Mac on your desktop too if the iPhone application is deemed a necessary development by management. Your alternative for personal use is to set up a Hackintosh, but there are often specific hardware requirements that might cost some money, and it's a complete hassle on top. I don't personally think you would regret owning a Mac, they're very nice for developers.

    ReplyDelete
  15. You could get Mac running on a standard Intel PC. There are plenty of tutorials on how to do it. Maybe dual boot your PC :) Unless you have a fast PC. Then VirtualBox or VMware are good solutions.

    I would like full Windows development or Linux. Not realy a Mac fanboy. If not for iPhone and iPod Apple probably would have died during this recession.

    ReplyDelete
  16. You cannot develop iPhone applications on Windows, at least not without jailbreaking your iPhone.

    In order to develop iPhone applications, you have to use the Xcode development environment. This environment only runs on OS X, so you are out of luck on Windows. I doubt Apple will port Xcode to Windows. I'm sure this is also an attempt by Apple to drive more people to Macs.

    You can develop iPhone web applications on Windows (or Linux, or whatever) though.

    ReplyDelete
  17. I noticed that this is a year old now, but for those who stumble on this through a search you may want to look into Adobe's newest announcement about developing iPhone apps using ActionScript 3 and Flash. Also they will be releasing a future flex framework for UI design on iPhone and other smartphones called Slider.

    ReplyDelete
  18. Run a virtual machine VMware install of Mac OS X and do your iPhone development there. It will cost you $30 for Mac OS X instead of the $1000 for the MacBook.

    ReplyDelete
  19. You would think most of the developer community has never heard of cross compilers.

    From a technical standpoint, you do not need a Mac to generate application code that would run on the iWidget.

    What you need is development tools that run on whatever hardware/software platform you own, that will compile code for the hardware/software platform you want to develop for, and a way to then send that compiled binary code over to the target for execution.

    Now whether that solution exists, I don't know. I'd expect, in this 'open source' day and age that someone would be working on a cross-compiler dev environment that lets you build iWidget code and transfer it to the iWidget for execution and testing.

    Whether any of that violates a license agreement is a separate issue that I'm not so concerned about. If I ever got to the point of developing an app that has promise, then I'd subscribe to the dev network to gain access to the closed store environment (as a hobbyist)

    ReplyDelete
  20. Try macincloud.com It allows you to rent a mac and access it through RDP remote control. You can then use your PC to access a mac and then develop your apps.

    ReplyDelete
  21. I can't see Apple ever allowing iPhone development on the PC, they are using the success of the platform to drive both iOS and Mac hardware sales. If they support development on the Windows platform, they lose that income generation.

    ReplyDelete
  22. You can use Sentenza for make applications for iPhone, on Windows.
    Tested with success.
    It's not a solution but a good alternative !

    ReplyDelete
  23. As far as I understand it, in order to develop applications you need Mac OS 10.5 (Leopard) and the latest version of Xcode (that's Apple's integrated development environment). Without both of those things, you're out of luck.

    ReplyDelete
  24. As has been pointed you can attempt to use the WinChain but if you are a newbie coder it won't be easy.

    The iPhone SDK will work on Hackintoshes (a normal PC with OS X installed on it). I know as I have one and it does.

    So after you go buy an OSX license you could TRY to install it on your PC on a different drive using Boot-132 or one of the other installers like iDeneb. The issue you will have to do a lot of tinkering and things still won't work quite right.

    ReplyDelete
  25. As far as I know, it is not possible. The SDK only functions on the Mac. If you wish to build and test your code, you will need a Mac. I know it's hearsay, but the new Macs are supposedly shipping on the 14th of October and I heard they are supposed to be more aggressively priced for their entry level machines, so you may want to pick one up in a month or so if you are serious about developing apps for the iPhone.

    ReplyDelete
  26. I know you want to develop it on windows, but I would seriously consider picking up a refurbished mac-mini for this purpose. I looked at different ways of running it on a windows box but they all had some major downsides. In the end I watched the refurbished link on the apple store until the mac mini came up. I also got a refurb keyboard and mouse and for $600 I was up and running. So far the mac mini has been great and has actually become my main computer. I see there is one up there today for $499 http://store.apple.com/us/browse/home/specialdeals/mac/mac%5Fmini

    ReplyDelete
  27. Oracle VirtualBox allows users to install Mac OS X in a virtual machine. If you are comfortable with it, you could just use that way to use Xcode.

    Other possibilities are cross-compilers such as Appcelerator Titanium (HTML, CSS and JavaScript) or MonoTouch (.NET).

    ReplyDelete
  28. http://www.kintek.com.au/web-design-blog/developing-for-the-iphone-and-ipad-by-runing-os-x-10-6-snow-leopard-on-a-pc/

    This article one of our developers wrote gives a pretty comprehensive walk through on installing OS X Snow leopard using iBoot, then installing Vmware (with instructions), then getting your iPhone dev environment going... and a few extra juicy things. Super helpful for me.

    Hope that helps. I don't think this is a 'cross platform development solution' because of iBoot, but you never know with VMware, but it's a windows solution and because it use's phonegap you can develop on multiple smart phone platforms at once.

    ReplyDelete
  29. If you have ssh access to a Mac, then you can use a VCN (like Vine VCN, which allows multiple uses at once - thin thin client) to control XCode.

    This could be useful if you wanted to access a Mac Mini from a laptop, or your S.O. is hogging your MacBook.

    ReplyDelete