1265

Is there any way to tinker with the iPhone SDK on a Windows machine? Are there plans for an iPhone SDK version for Windows?

The only other way I can think of doing this is to run a Mac VM image on a VMWare server running on Windows, although I'm not too sure how legal this is.

DJ-Glock
  • 1,277
  • 2
  • 12
  • 39
ryan
  • 5,039
  • 13
  • 35
  • 42
  • Also see this question discussion on : http://gamedev.stackexchange.com/q/5403/3212 – Gaurav Navgire Nov 12 '10 at 04:55
  • 27
    How about http://macincloud.com ? :) – Samuel Katz Jan 02 '13 at 11:51
  • macincloud.com is the way to go. Real Mac hardware and if you are lucky or just ask, you will get an i7 Mac with 16G RAM and SSD HD. – MacDaemon May 21 '14 at 01:50
  • @del.ave it only cost me the price of VMware workstation. All the new Mac OS Xs are free now. And there are of course *ehem* other ways of obtaining VMWare workstation for very low prices. – Milo Jul 02 '14 at 15:46
  • 4
    You can use Unity3D. You can develop for all mobile platform with this, with just 1 development . – ababab5 Sep 26 '14 at 20:38
  • it works fine for me. Even you can upload the apps in AppStore also. No worries. Only you want a Core i3 machine with minimum of 4GB of RAM. – SARATH SASI Apr 14 '15 at 11:52
  • VMWare is only option.But the RAM size should be more or equal to 4GB means it works fine. – Uma Madhavi Sep 29 '15 at 10:16
  • 7
    Or don't bother trying to run it on windows: Buy a refurbished "Mac mini". http://www.apple.com/shop/browse/home/specialdeals/mac/mac_mini or google "buy refurbished mac mini". Attach your existing monitor, and use wireless keyboard and mouse (I use Logitech's, that uses their Unify USB receiver). – ToolmakerSteve Dec 03 '15 at 23:15
  • 7
    "Just buy a mac"? I'm using a MacBook Pro, but I really dislike working in OS X. I'd rather use Linux. – Richard de Wit Jan 12 '16 at 11:34
  • 1
    Phonegap (simple, non-native apps) provides a cloud compiler service which packages your apps for several phones including iPhone. https://build.phonegap.com/ All development is done on the PC. I've not used it yet, but after reading these alternatives, I'm about to. – Chloe Jan 14 '16 at 22:09
  • 2
    Miguel de Icaza of Mono posted about [using and compiling Mono (a Linux port of the .NET Framework) on the iPhone](http://tirania.org/blog/archive/2008/Mar-10.html). – Jon Limjap Aug 22 '08 at 13:45
  • The current rules say C, Objective-C, or C++ only. That leaves C# out. – David Thornley Aug 26 '10 at 22:00
  • Yup. Because of iOS4 TOS 3.3.1 – Jon Limjap Aug 27 '10 at 02:26
  • 1
    TOS have been updated and C# (among any other language) is now allowed: http://www.macgasm.net/2010/09/09/apple-updates-app-store-license-agreement/ – jjxtra Dec 08 '10 at 21:13
  • 1
    Microsoft Azure DevOps has a [Hosted macOS agent](https://github.com/Microsoft/azure-pipelines-image-generation/blob/master/images/macos/macos-Readme.md) now for it's [Azure Pipelines](https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/hosted?view=azure-devops&tabs=yaml#how-can-i-manually-select-versions-of-tools-on-the-hosted-macos-agent) :) – Eric D. Johnson Apr 04 '19 at 21:56
  • @RicharddeWit except we have to consider the fact that macOS is just a GUI around linux already? – HackerDaGreat57 Aug 08 '22 at 23:39

42 Answers42

537

It's certainly possible to develop on a Windows machine, in fact, my first application was exclusively developed on the old Dell Precision I had at the time :)

There are three routes;

  1. Install OSx86 (aka iATKOS / Kalyway) on a second partition/disk and dual boot.
  2. Run Mac OS X Server under VMWare (Mac OS X 10.7 (Lion) onwards, read the update below).
  3. Use a framework and/or toolset, which allows developing on Windows, like Delphi XE4 with the mac-in-cloud service, which can build without MacOS device need. This is a commercial toolset, but the component and lib support is growing.

    Other honorable mentions are Flutter, Xamarin and similar; which may at end need actual MacOS device for final build (but you can test on Android till then, as they're cross-platform).

The first route requires modifying (or using a pre-modified) image of Leopard that can be installed on a regular PC. This is not as hard as you would think, although your success/effort ratio will depend upon how closely the hardware in your PC matches that in Mac hardware - e.g. if you're running a Core 2 Duo on an Intel Motherboard, with an NVidia graphics card you are laughing. If you're running an AMD machine or something without SSE3 it gets a little more involved.

If you purchase (or already own) a version of Leopard then this is a gray area since the Leopard EULA states you may only run it on an "Apple Labeled" machine. As many point out if you stick an Apple sticker on your PC you're probably covered.

The second option is more costly. The EULA for the workstation version of Leopard prevents it from being run under emulation and as a result, there's no support in VMWare for this. Leopard server, however, CAN be run under emulation and can be used for desktop purposes. Leopard server and VMWare are expensive, however.

If you're interested in option 1) I would suggest starting at Insanelymac and reading the OSx86 sections.

I do think you should consider whether the time you will invest is going to be worth the money you will save though. It was for me because I enjoy tinkering with this type of stuff and I started during the early iPhone betas, months before their App Store became available.

Alternatively, you could pick up a low-spec Mac Mini from eBay. You don't need much horsepower to run the SDK and you can always sell it on later if you decide to stop development or buy a better Mac.

Update: You cannot create a Mac OS X Client virtual machine for OS X 10.6 and earlier. Apple does not allow these Client OSes to be virtualized. With Mac OS X 10.7 (Lion) onwards, Apple has changed its licensing agreement in regards to virtualization. Source: VMWare KnowledgeBase

Top-Master
  • 7,611
  • 5
  • 39
  • 71
Andrew Grant
  • 58,260
  • 22
  • 130
  • 143
  • OSX runs in a VM, so in theory it is possible. However, there are a few problems. Getting networking support in a VM (I'm talking about VMWare) for OSX is *extremely* hard. Also, the whole thing is going to be very slow, and I don't think it's a case of throwing RAM at it. – Dmitri Nesteruk Dec 18 '08 at 23:45
  • @DennisPalmer I wouldn't recommand this buy as the cheap Intel Core 2 Duo Mac Minis are slow and generally shipped without keyboard + mouse. I think that for 650$ you can get a really cool Macbook (pro or air) with a 4 Gb of memory. – Zakaria Oct 28 '12 at 11:31
  • @Zakaria yes, a lot has changed in the past 3 years! I had plenty of keyboards, mice and monitors laying around when I bought my Mac Mini, so at the time it was a fine choice. Oh, and I only paid $360 for it. Haven't shopped eBay for used Macbooks in a long time, but that's a great suggestion. – CoderDennis Nov 13 '12 at 16:10
  • @DennisPalmer I totally agree with you : At that time, it was a great choice. I put that comment in purpose to refresh that post because, as you stated, nowadays, macbooks are a good alternative. – Zakaria Feb 24 '13 at 14:24
  • 14
    I'd just like to point out that using VMWare ESX is free so long as you don't have more than 32 GB of RAM, you answer says that running VMWare is very expensive :/ – Goulash May 16 '13 at 15:23
  • 13
    No offense, but this sounds like a lot more trouble than it's worth. Old Macs are cheap on eBay and can run Xcode just fine. – sudo Jun 03 '14 at 02:36
  • iATKOS is not a secure way to run OSx86 - these kinds of prebuilt installations shouldn't be used at all. Look into vanilla installations via Clover – little tiny man Feb 18 '19 at 20:31
  • 1
    Use VirtualBox instead of VMWare since it's free. you may face little trouble syncing your device with VirtualBox for transferring the app to iPhone. in such a case, you can use https://www.diawi.com/ for transferring ipa. – Jake Mar 15 '21 at 07:46
  • I actually used to try setting up a Snow Leopard (an OS from 2009!) Hackintosh back in 2012 from advice like this. I wonder how many newcomers still attempt installing Snow Leopard or Lion for development in 2022; if you're not "familiar with Apple", it seems credible enough to try. – Vym Jul 30 '22 at 15:45
196

Xamarin is a solid choice. It was purchased by Microsoft and is now built directly into Visual Studio. You code in C#. With all the updates and features they are adding, you can do everything but submit to the App Store from Windows, even compile, build and deploy to an iOS device.

For games, Unity 3D is a great option. The editor is free to use for development, and even for distribution (if you have less than 100K USD in annual revenue). Unity supports iOS, Android and most other platforms. It may be possible to use Unity's "Cloud Build" feature to avoid having to use a Mac for deployment, although by default Unity actually spits out an Xcode project when building for iOS.

Other options:

PhoneGap (html/javascript) also works. It isn't quite as nice for gaming, but it's pretty decent for regular GUI applications.

Flutter (dart) is a free cross platform mobile app development framework from Google. Write your code in Dart.

React Native (javascript) is another popular cross-platform framework created by Facebook.

Note that: for all of these options, all or most of the development can be done on Windows, but a MacOS device is still required to build a binary for submission to the App Store. One option is to get a cheap MAC Mini to do your final build.

livingtech
  • 3,570
  • 29
  • 42
jjxtra
  • 20,415
  • 16
  • 100
  • 140
  • I'm using Airplay to develop a cross-platform game. The good news they're probably fully compliant with the new iPhone OS 4.0 terms and conditions. See http://www.airplaysdk.com/node/672 – hiddentao May 18 '10 at 11:55
  • 7
    Phonegap is great, but you can't develop your app entirely on a Windows PC and then just sign it on the iMac and hope for the best. Unless your app is of the HelloWorld variety, you really need to test and debug. – Wytze Mar 16 '12 at 08:25
  • 4
    There's a Visual Studio extension called [Nomad](http://www.vsnomad.com/) which does support developing entirely on your PC by pushing the PhoneGap builds out to a cloud service. – Mark Cheverton May 14 '12 at 14:29
  • 3
    I don't believe Marmalade is free anymore, the licence terms have changed. – Jamie Feb 12 '13 at 13:37
  • Yea, it's not free anymore. The lowest tier is 15 USD a month. https://www.madewithmarmalade.com/shop – jjxtra Nov 12 '13 at 22:43
  • 4
    Xamarian cannot be used unless there is some MAC PC on the network –  May 26 '16 at 03:05
  • Actually I guess cordova might qualify, since the UI will be the same (in the end) as it is for android or what not. Though you need a mac to compile the final iOS distro still I think... – rogerdpack Oct 27 '17 at 18:12
  • Marmalade was discontinued https://support.madewithmarmalade.jp/hc/en-us/articles/360001338028 – rvazquezglez Jun 14 '18 at 13:15
  • OP asked how to develope on a windows machine and your answer says you need a MAC... – Black Jan 23 '19 at 12:29
  • A few months ago, AWS now has Mac Mini servers that you can rent to build your iOS apps, or just to do any other regular work on them. Also there is CodeMagic, which is a CI tool for building apps using Mac virtual machines on the cloud. – OzzyTheGiant Mar 30 '21 at 17:29
  • The question is about iPhone SDK. This answer is not. – Agent_L Sep 02 '21 at 07:51
156

If you have a jailbroken iPhone, you can install the iphone-gcc 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.

Stephan202
  • 59,965
  • 13
  • 127
  • 133
Josh Hunt
  • 14,225
  • 26
  • 79
  • 98
  • 19
    Just updating: Jailbreaking no longer voids your warranty, at least not in the U.S. – sudo Jun 03 '14 at 02:37
  • 3
    @9000 Have a source? Although jailbreaking is no longer a violation of the DCMA (something Apple never enforced anyway), and may or may not void the warrenty (it is purposefully vague), it doese violate the EULA and apple will deny service on a jailbroken device http://support.apple.com/kb/HT3743 – Josh Hunt Jun 04 '14 at 03:08
  • 1
    How can they deny service if you restore the device to its pre-jailbroken state using iTunes - Restore? They cannot detect that it was once jailbroken – JoelFan Nov 24 '14 at 14:42
  • 2
    @JoelFan iOS might have the same thing as Android does; a 'flash ticker'. This is stored in NVRAM and increments every time `system` is wiped, meaning that it's possible to detect if it's been flashed or rooted. iOS devices may have the same thing (in fact, I'd be surprised if they don't). – AStopher Oct 15 '15 at 16:12
  • 6
    I refuse to Google Mr Valdez. If someone can tell us I'd be obliged. – Harry Ninh Oct 03 '16 at 09:07
  • The warranty thing is not practical - whatever trash you take to Apple Store, they would replace it without a word mostly. Customer service in the US is generally quite decent (except for Walmart). – superarts.org Mar 08 '19 at 04:07
  • The Magnuson-Moss Warranty Act (from 1975) should protect jailbreakers against 'warranty void' claims. It's what makes those 'Warranty void if removed' stickers hollow threats. – Jim Grisham Jul 30 '22 at 00:24
85

Most of "so called Windows solutions for iOS development without Mac" require Mac at the end just to sign and send to app store. I checked a few, not all though (who has the time?)

At the end it's just too much trouble to learn "their super special easy way to program iOS without Objective-C", they have lots of bugs. Really the goal they are setting is unachievable in my view.

Also a lot of time they make you use Objective-C equivalent statements simply in another language. They kind of look the same but there are always subtle differences that you have to learn on top of obj-c. Which also makes even less sense, because now instead of learning less you have to learn more. So where is the gain? Also they cost a lot, because they are very hard to develop.

Many lack any debugging abilities whatsoever.

In my honest opinion, if you are a hard-core iOS developer then for sure buy the best Mac and learn objective-c. It's expensive and takes time, but if it's your path, it's worth it.

For an occasional use, it's just easier to rent a remote Mac service, like XCodeClub.com

Ry-
  • 218,210
  • 55
  • 464
  • 476
Rachel Henderson
  • 629
  • 13
  • 9
  • 1
    I am not familiar enough with PhoneGap to write a review but I like the idea: cross-platform Apps written with the wide-spread techniques HTML5+JavaScript. – Ignitor Oct 28 '12 at 13:53
  • 1
    [VirtualMacOSX.com][1] have plans for xCode development, from (as of now) $10 a month. I am sure others have too. [1]: http://virtualmacosx.com/index.php/xcode-plans – Prof. Falken May 06 '13 at 14:58
  • I had no idea this service even existed. I just want to explore and play with it and was about to give up for now doing all these crazy workarounds, but this is so much easier. Great tip! – Alex Beardsley Aug 03 '15 at 17:06
  • _"now [...] you have to learn more. Also they cost a lot [...]"_ ..... _"buy the best Mac and learn objective-c. It's expensive and takes time [...]"_ Conclusion: iOS development is in either case expensive and takes time. ;) – Martin Schneider Apr 18 '18 at 08:50
60

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).

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

Jasperan
  • 2,154
  • 1
  • 16
  • 40
Parand
  • 102,950
  • 48
  • 151
  • 186
  • 2
    hackintosh info gets outdated pretty easily, it is better to follow the sites that are dedicated to the subject (like osxlatitude for dell models) – prusswan Oct 02 '14 at 07:26
57

You can use WinChain

Quoting the project page:

It's the easiest way to build the iPhone toolchain on a Windows XP/Vista computer, which in turn, can take Objective-C source code that you write using their UIKit Headers (included with winChain) and compile it into an application that you can use on your iPhone.

Aaron Gillion
  • 2,227
  • 3
  • 19
  • 31
dawnerd
  • 748
  • 4
  • 10
28

You don't need to own a Mac nor do you need to learn Objective-C. You can develop in different environments and compile into Objective-C later on.

developing for the iphone and ipad by runing osx 10.6(snow leopard)

This article one of our developers wrote gives a pretty comprehensive walk through on installing OS X Snow Leopard on Windows 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. It uses Phonegap so you can develop on multiple smart phone platforms at once.

NANNAV
  • 4,875
  • 4
  • 32
  • 50
Maurice
  • 468
  • 6
  • 13
23

You can use Tersus (free, open source).

Ofer Brandes
  • 71
  • 2
  • 2
22

A devkit that allows one to develop iPhone apps in Objective-C, C++ or just plain C with Visual Studio:

Check it out at iOS build env

You can build iPhone apps directly within Visual Studio (2008, 2010, Express).

Pretty neat, it even builds IPA files for your app after a successful compilation. The code works as is on jailbroken devices, for the rest of the planet I believe the final compilation & submission to the App Store has to be done on a Mac. But still, it enables you to develop using a well-known IDE.

NANNAV
  • 4,875
  • 4
  • 32
  • 50
priamos
  • 31
  • 1
  • 2
19

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).

Mehrdad Afshari
  • 414,610
  • 91
  • 852
  • 789
18

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

flashcs 5

flashcs5 apps for iphone

NANNAV
  • 4,875
  • 4
  • 32
  • 50
Keith Adler
  • 20,880
  • 28
  • 119
  • 189
18

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.

MacDaemon
  • 352
  • 3
  • 4
12

Hooray! You can now more easily accomplish this with the latest Xamarin.iOS, using a network-linked mac providing the build and deployment capabilities.

See here for more details:

introduction to xamarin ios for visual studio

NANNAV
  • 4,875
  • 4
  • 32
  • 50
Mark Gibaud
  • 2,061
  • 23
  • 35
  • Xamarin is a painful stuff. Performance of the app developed on Xamarin (.form / .iOS / .Android) is poor. If you intent to go for cross-plateform then react-native is the best avalyaibe option at moment (in ~2023). – Rizwan Jan 31 '23 at 12:57
11

If you want it to be legitimate, you have two options, cloud based Mac solutions or cross-platform development tools. You may consider the hackintosh approach or virtual machines if you don't care about legal stuff. If you have a decent PC, running a virtual machine would be the easiest way to go. You may never know which hardware will have driver issues on a hackintosh.

I've tried all these approaches and they all have pros and cons, but for the second group, I feel kind of guilty. I develop apps to make a living and I wouldn't want to rip off someone else for it.

If you are making a small project, cloud based Macs may prove useful. Rent it for a short time, develop your project and off you go. Don't bother learning anything new.

However, if your project is getting big, cross-platform frameworks seem to be the only alternative. The critical thing is that you need to choose wisely. There are so many hybrid frameworks, but what they do can be summarized in one sentence as "diplaying web pages in an app wrapper" and developers' negative experience with hybrid frameworks also affects native frameworks.

I tried three of these (Titanium, Smartface and Xamarin) and they all claim to produce "real native output" and in my opinion their claims are correct. You need to test and see it yoursrlf, it's not easy to describe the native feeling. In a previous comment, it was indicated that it takes some effort to learn these platforms, but once you get to know them, you can develop not just iOS applications but Android applications as well, all with the common code base. And of course, they are much cheaper than a cloud Mac. Some of them are even free. You would need a Mac only for store submission.

If you know JavaScript, try Titanium and Smartface and if you know C#, try Xamarin. Just note that for the device simuator, Titanium is dependent on a Mac, but Smartface has a simulator app for Windows development and it works better than I expected. On the other hand, Xamarin requires a Mac in your network.

OZY
  • 3
  • 1
  • 4
10

If you want to create iPhone apps but no Mac, then you should try http://www.pmbaty.com/iosbuildenv/

It allows you to easily develop native iOS apps, like with XCode, deployable on any iPhone, iPod or iPad (jailbroken or not).

Use your favourite IDE to code in Objective-C, C++, C or ARM assembly, like in XCode. ARC and blocks are supported.

Compile your iPhone apps directly inside Visual Studio

It works on Windows all versions (XP, 7, 8), FreeBSD and Linux

Now with iOS8 support.

Oscar Acevedo
  • 1,144
  • 1
  • 12
  • 19
9

You can use Intel XDK with that you can develop and publish app for iOS without mac.

Click here for detail.

Clomp
  • 3,168
  • 2
  • 23
  • 36
Hemant Singh Rathore
  • 2,153
  • 1
  • 24
  • 38
9

Check out this:

Over view

It is a project that attempts to be able to cross-compile programs written in a variety of source languages to a variety of target languages. One of the initial test cases was to write programs in Java and run them on an iPhone. Watching the video on the site is worthwhile.

With that said, I haven't tried it. The project seems quite beta, and there isn't a lot of activity on their SourceForge site.

NANNAV
  • 4,875
  • 4
  • 32
  • 50
  • This project appears to be dead. The project web site describes it as being "currently in an early development phase", and there have been no commits to their source code repository since 2014. –  Feb 04 '19 at 06:00
8

Interesting that no one has mentioned the cross-platform wxWidgets option.

It's less than an optimal solution, though.

IMHO, the business-wisest way to go is to invest the money in Apple's endorsed framework. That way, if you find yourself stuck with some mind-boggling problem, you have a much larger community of developers to consult with.

Very Objective
  • 601
  • 7
  • 16
8

YOU CAN DEVELOP IPHONE APPS ON WINDOWS PC. I've done it, with complex apps. And it works perfectly. You can develop iphone apps without ever seeing a mac or iphone.

You can develop on windows an HTML (or better: HTML5) app, using tools like Sencha or JQTouch, or mobi1. (They used to all be free for a while)

Then you use openSSL to sign the app. And Adobe PhoneGAP Build service to build IPhone App.

But you need the iphone developer licence to install it on an iphone. But you don't need a mac or iphone at any minute to compile, build or test it - all that is done ON THE PC.

I've done it, and it works perfectly. (But with Android type responsiveness - not as fast as a native IPhone app)

You could also use a program from the the Babylonian era (circa 300 bc) running C and C++ called dragonfly. If your app has one or two screens with limited interactivity, and many calculations, go for it. It includes an emulator. You compile to the iphone at the press of a button. (Not sure, but I think you do need a developers license in any case)

And then there is Xamarin. You develop in C# with special calls to native code. You'll have to learn the environment.

pashute
  • 3,965
  • 3
  • 38
  • 65
  • Well, you can develop app with PC but building a packet for Apple store needs either access to a Mac or some service out of your PC, that makes that part. At least I did not get any packages to Release folder although project was set to be Release build. – mico Feb 02 '15 at 07:26
8

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. This is legal if you "dual boot" your mac into windows, then install the VirtualBox within windows (or linux).

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

rogerdpack
  • 62,887
  • 36
  • 269
  • 388
fb55
  • 1,197
  • 1
  • 11
  • 16
7

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

KloéLo
  • 11
  • 1
  • 1
  • Sentenza for iOS no longer appears to exist. All I can find is http://www.sentenzadesktop.com/ -- which is for desktop, not iOS, and hasn't been updated since 2014. –  Feb 03 '19 at 21:40
7

Two other options

  1. Titanium Developer - free community edition - write in HTML/JavaScript - compile with Xcode (requires a Mac or VM)

  2. OpenPlus ELIPS Studio - write in Flex, compile on Xcode (requires a Mac or VM) - they just started charging for their product however.

I think there may be 'toolchain' options for these and some of the others mentioned, which allow you to compile to binary on Windows, and I have seen that you can upload a zip file and have a toolchain style compile done for you online, but this goes against the Apple licensing.

If I am not mistaken, a product such as Titanium that outputs/works with Xcode and does not use any 3rd party / alternative / restricted libraries should be in compliance, because you are ultimately compiling in xcode - normal Objective-C code and libraries.

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
Scott Szretter
  • 3,938
  • 11
  • 57
  • 76
6

Using Xamarin now we can develop iPhone applications in Windows machine itself with the help of Xamarin Live Player.

Using this Xamarin live player dev/deploy/debug cycle can now be done without an Apple system.

But to sign and release the app Apple system is required.

Find the reference here

I checked the reference nothing dodgy

Durai Amuthan.H
  • 31,670
  • 10
  • 160
  • 241
6

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.

logancautrell
  • 8,762
  • 3
  • 39
  • 50
5

Yes and you don't need to learn Objective-C and buying Apple software and hardware.

Adobe have created compilator from ActionScript 3 to program for iOS. And later Apple approved this method of application creation.

This is best way to create Apple applications under Windows or Linux/BSD (and another one for MacOS-X)

Eir Nym
  • 1,515
  • 19
  • 30
4

If you want to develop an application on Windows environment then there is an option, you can install MAC OS in your windows Platform name is : "Niresh'MAC OS" , you can search that text on Google

then you can download the whole MAC OS Source and easily installed MAC OS in your Windows PC, Niresh is able to Hack the whole OS.

Hope this will help you.

Apple
  • 736
  • 1
  • 6
  • 24
4

You can install OSX on PC but experience wont be great and it needs lot of work. Alternate is to use a framework/SDK Codename one: which is based on JAVA and can be used to code in WP8, Android, iOS on Windows (eclipse) with all extensive features

Features Overview:

  1. Full Android environment with super fast android simulator
  2. An iPhone/iPad simulator with easy to take iPhone apps to large screen iPad in minutes.
  3. Full support for standard java debugging, profiling for apps on any platform.
  4. Easy themeing / styling – Only a click away

More at Develop Android, iOS iPhone, WP8 apps using Java Disclaimer: This is my review for the product

Taranfx
  • 10,361
  • 17
  • 77
  • 95
3

Develop iOS Apps on Windows With Cross-Platform Tools

Cross-platform tools are awesome: you code your app once, and export it to iOS and Android. That could potentially cut your app development time and cost in half. Several cross-platform tools allow you to develop iOS apps on a Windows PC, or allow you to compile the app if there’s a Mac in your local network.

Well, not so fast…

The cross-platform tool ecosystem is very large. On the one side you have complete Integrated Development Environments (IDEs) like Xamarin, that allow you to build cross-platform apps with C#.

The middle ground is covered by tools like PhoneGap, Cordova, Ionic and Appcelerator, that let you build native apps with HTML5 components. The far end includes smaller platforms like React Native that allow you to write native apps with a JavaScript wrapper.

The one thing that stands out for all cross-platform tools is this: they’re not beginner friendly! It’s much easier to get access to a Mac, learn Swift, and build a simple app, than it is to get started with Xamarin.

Most of the cross-platform tools require you to have a basic understanding of programming, compilation options, and the iOS and Android ecosystems. That’s something you don’t really have as a beginner developer!

Having said that, let’s look at a couple of options:

If you’re familiar with Windows-based development tools and IDEs, and if you already know how to code, it’s worthwhile to check out Xamarin. With Xamarin you code apps in C#, for multiple platforms, using the Mono and MonoTouch frameworks. If you’re familiar with web-based development, check out PhoneGap or Ionic. You’ll feel right at home with HTML 5, CSS and JavaScript. Don’t forget: a native app works different than a website… If you’re familiar with JavaScript, or if you’d rather learn to code JavaScript than Swift, check out React Native. With React Native you can code native apps for iOS and Android using a “wrapper”. Always deliberately choose for cross-platform tools because it’s a smart option, not because you think a native platform language is bad. The fact that one option isn’t right, doesn’t immediately make another option smarter!

If you don’t want to join the proprietary closed Apple universe, don’t forget that many cross-platform tools are operated by equally evil companies like Google, Facebook, Microsoft, Adobe and Amazon.

An often heard argument against cross-platform tools is that they offer limited access to and support for smartphone hardware, and are less “snappy” than their native counterparts. Keep in mind that any cross-platform tool will require you to write platform-specific code at one point, especially if you want to code custom features.

3

If you have ssh access to a Mac, then you can use a VNC (like Vine VNC, 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.

wisty
  • 6,981
  • 1
  • 30
  • 29
2

As many people already answered, iPhone SDK is available only for OS X, and I believe Apple will never release it for Windows. But there are several alternative environments/frameworks that allow you to develop iOS applications, even package and submit to AppStore using windows machine as well as MAC. Here are most popular and relatively better options.

PhoneGap, allow to create web-based apps, using HTML/CSS/JavaScript

Xamarin, cross-platform apps in C#

Adobe AIR, air applications with Flash / ActionScript

Unity3D, cross-platform game engine

Note: Unity requires Xcode, and therefore OS X to build iOS projects.

Seryozha
  • 1,649
  • 1
  • 14
  • 13
  • 1
    You can't use unity to make iphone games on windows because you still need xcode to compile the project unity exports. – benbot May 25 '14 at 13:00
2

(accurate as of late 2014)

For access to the native tools (Xcode etc) there are two main options:

1. Virtual machine

Look around for the mavericks (10.9) vmware image that works with a modified Vmware Workstation/Player. Once the machine is able to boot, it can be updated to 10.9.5 with no apparent issues.

The good: relatively low learning curve (if you are somewhat familiar with vms)

The bad: reduced performance due to virtualized environment, no 3d acceleration (QE/CL)

2. Hackintosh

This is the sensible option if you are planning to procure new hardware (or at least partly), instead of retrofitting existing equipment (but you might be lucky to have one of the common OEM models (like Dell) that already have recipes written for it)

The good: no penalty on hardware performance, which might even surpass that of a real mac. The same hardware can also be used for other OSes if you are open to multibooting

The bad: higher learning curve, more hardware limitations (no drivers for certain Intel wifi etc) which may translate into higher investment if you had no intention to get new hardware originally

Needless to say, both options above are frown upon by the fruit company, so licensing compliance is not part of the discussion.

3. An actual mac (added in 2016)

This option is perfect for people who already have a mac and use it as a Windows development machine via Bootcamp etc. This also has the least support issues (apart from complications that may result from multi-booting), so it is recommended for those looking for a long-term solution (hardware that works not just for the current OSX version but future versions as well)

prusswan
  • 6,853
  • 4
  • 40
  • 61
  • Not sure some tools licensing code works on Hackintoshes... They use some APIs to create a machine hashkey from the machines hardware like HD ids and such. I believe Xamarin fails to work on some Hackintosh boxes for example. If using Xamarin from visual studio on a Windows PC buy the cheapest Intel Mac Mini from ebay to be your build machine. – AnthonyLambert Jul 30 '15 at 15:35
2

You may try to develop web apps for iPhone using HTML, JavaScript, CSS. Check the getting started info at Apple's site.

Konstantin Grushetsky
  • 1,012
  • 1
  • 15
  • 32
  • I've just found a piece of software called MobiOne Studio. As stated on the site: "MobiOne Studio - the iPhone app and web app designer and iPhone test center with iPhone emulator that enables you to create, customize and run iPhone user interfaces in minutes, not days." Maybe it will be helpful for you. Link: http://www.genuitec.com/mobile/. – Konstantin Grushetsky Jun 16 '10 at 19:22
2

Visual Studio + Xamarin will do the job.

Visual Studio

Yet, I'd recommend you get a Mac and develop iOS apps in Xcode.

When in Rome, live like the Romans do.

Karoly Nyisztor
  • 3,505
  • 1
  • 26
  • 21
  • 1
    Xamarin outside of Mac will not allow you to write iPhone apps -- i.e. this is not a viable solution. – Clearer May 01 '18 at 11:38
  • To debug Xamarin solutions you'll need MacOS on one end. It is possible to remotely use this device from Windows. – Ivan P. Nov 04 '19 at 06:02
1

There's also Sencha Architect and Sencha Touch from the company that makes Ext JS.

Druid
  • 6,423
  • 4
  • 41
  • 56
1

This is a new tool: oxygene which you can use to build apps for iOS/Mac, Windows RT/8 or Android. It uses a specific language derived from Object Pascal and Visual Studio (and uses .net or java.). It seem to be really powerful, but is not free.

Ulf Gjerdingen
  • 1,414
  • 3
  • 16
  • 20
Red Mak
  • 1,176
  • 2
  • 25
  • 56
1

So the bad news is that XCode is needed for its iOS Simulator as well as its Application Loader facility for actually uploading the programs to iOS devices for "real" testing. You'll need XCode for signing your apps before submitting to the App Store. Unfortunately, XCode is only available for OS X.

However, the good news is that you may be able to purchase OS X and run it in a virtual machine such as VMWare Workstation. I don't know how straightforward this is, as it is rather difficult to get OS X to run on non-Apple hardware, but a quick Google search shows that it is possible. This method would (likely) be cheaper than purchasing a new Mac, although the Mac Mini retails in the US for only $599. Some posts I've seen indicate that this may or may not be legal, others say you need OS X Server for virtualization. I'll leave the research up to you.

There are also services such as MacInCloud that allow you to rent a Mac server that you can access from Windows via remote desktop, or through your browser. Unfortunately, I don't think you'd be able to use Application Loader, as you have to physically connect the device to your computer, but it would work for development and simulation, at least.

Good luck!

Prashant Nikam
  • 2,253
  • 4
  • 17
  • 29
0

Please take a look at Xamarin. They have an extension for Visual Studio (http://xamarin.com/visual-studio).

Taken from their site:

Xamarin provides Visual Studio add-ins so that you can develop your iOS, Android and Windows apps all in a single solution. The Xamarin extensions support building, deploying, and debugging on simulator or device.

gfdx
  • 1,759
  • 1
  • 11
  • 9
0

B4i is a new development tool that creates native iOS apps. It runs on Windows. When a full compilation is required (in most cases it is not required) the project is compiled on a hosted builder. Each compilation takes about 5 seconds. B4i

Erel
  • 1,802
  • 2
  • 15
  • 58
0

Check out NS Basic/App Studio. It's Visual Basic for the iPhone. (though you can also code in JavaScript). It produces WebApps which can be distributed without going through the App Store. Apps will also run on other platforms, like Android. NS Basic/App Studio

NANNAV
  • 4,875
  • 4
  • 32
  • 50
ghenne
  • 1,903
  • 2
  • 19
  • 29
0

I use Flutter. I develop on my Windows machine and test on an Android emulator. When I'm ready to test on iOS, I run the code on macOS. From my experience, a Flutter app runs exactly the same on Android and iOS. If you don't have a Mac, you can download VirtualBox and install macOS on it. On VirtualBox, macOS runs exactly as it does on a real Mac, and you can build your app on it.

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
user2233706
  • 6,148
  • 5
  • 44
  • 86
-7

You can make apps for iPhone using Java, and Java can connect to the web.

-10

Just make a web application. iOS web applications are:

  1. Reliable. The amount of time it takes to make an update is far shorter than with Xcode.
  2. Fast. JavaScript on iOS is, by nature, far faster than native apps.
  3. Free. You never have to pay Apple a cent, as Apple doesn't have any control over you.
  4. Safer. If a crash occurs with a native app, it can take down even the newest iOS devices for hours or even days, until the user can fix them. If a web app crashes, the user just has to close and reopen it, worst case scenario.
  5. Offline. You can easily create a service worker to handle your app.
  6. Secure. Because you do not have access to native APIs, a security breach will be significantly less dangerous.
  7. Easy to program. A basic iOS web app can be programmed from the Safari URL bar on an iPhone. Literally. I've done it myself.
Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
9pfs
  • 560
  • 5
  • 17
  • 3
    Did you actually say that Javascript is faster than native apps? – Sulthan Mar 27 '22 at 20:29
  • Yes. It takes less time to boot Windows 1 on an iPad Mini 2 on v86 _and_ open Notepad than it does to start Microsoft Teams. – 9pfs Mar 27 '22 at 20:33