I’ve seen a lot of confusion around this question and have been asked it many times. There seems to be a bit of conflicting information out there, with some people saying you do need a Mac and XCode to make iOS mobile apps with PhoneGap and other that say you do not. Before I get into the topic a little further, let me give you the short answer:
- PhoneGap / Cordova: Yes, you do need a Mac
- PhoneGap Build: No, you do not need a Mac
The confusion probably comes from the two different build methods for PhoneGap – either through the command line interface or through using the PhoneGap Build servers.
What’s the difference?
PhoneGap CLI: A locally installed version of PhoneGap that could be considered the “normal” approach. It gives you complete control over everything PhoneGap has to offer.
The downside to this approach is that the build process takes place on your computer, which means you will need to download SDKs for both Android and iOS. Unfortunately in the case of iOS, you will need a Mac in order to do this – this means it is not possible to build an iOS app without a Mac using this approach.
PhoneGap Build: If PhoneGap through the command line interface is the “normal” approach, then PhoneGap Build could be considered the “easy” approach. PhoneGap Build abstracts away some of the difficulty in setting up PhoneGap by completing the build process on their servers and returning the final build file back to you (i.e an .ipa file for iOS and .apk for Android). This means that you do not need to download the native SDKs to your computer and can build iOS apps without a Mac.
The downside to this approach is that you lose some control and can only include plugins that are made available by the PhoneGap Build service (which fortunately is quite a lot).
Which approach should you use?
If you have a Mac you should use PhoneGap CLI – it is more difficult to set up and use but offers more flexibility in the long run. If you do not have a Mac then you should use PhoneGap Build – not only do you not have much choice, but it is still a very powerful option (I’ve been using PhoneGap Build for a long time now and rarely run into situations where I am disadvantaged). PhoneGap Build is also an excellent way to decrease the learning curve and jump right in.
There is a little bad news though…
If you’re using PhoneGap Build you can create and build an iOS app and install it on your device on a Windows computer. The only thing you can not do from a Windows machine is upload it to the App Store. Apple requires that applications are uploaded with Application Loader which is frustratingly not available on Windows.
The process of uploading your app using Application Loader is as simple as logging in, uploading your .ipa file and clicking a button. The whole process takes about 5 minutes and it is a shame that this is the only road block. Fortunately, you still have some options though. You can either put your .ipa file on a USB and borrow a friends Mac for a couple of minutes, or use a service like Macincloud that allows you to remotely use a Mac.