I'm on Windows and I've got the latest version of OS X (10.7.4) running as a virtual machine on VMware Workstation. Everything works just perfect, including the latest version of Xcode. Things are very smooth and, unlike one would imagine, there's almost no sluggish behavior. I find working on projects being pretty efficient with the combined power of all the software installed on the two operating systems, which happily communicate through the VMware's shared folder. iOS devices connect via USB to the virtual machine's iTunes and Xcode just fine, like it was a real Mac. (However, the names of nearly all the (virtual) devices of the virtual machine have a "VMware" in them, which makes the VM not so real in the Apple's eyes if Xcode gathers and reports machine statistics during installation or app submission. In any case, even though Xcode might suspect that it's in an "alien" environment, it hasn't shown a single sign of it so far and works totally O.K.)
And, as the time of enrolling into the Apple's developer program is approaching, I wonder do I really have to shrink the development budget by $1000-$1500 or so to purchase a physical Mac as Apple would expect me to do. It's a significant amount of money and I would rather save them for something more useful. I would really like to avoid the purchase. (Un)fortunately, the times when people would buy Macs to lick them, as Steve Jobs' famous words would suggest, are over.
So, my questions are:
Has anyone heard of or maybe experienced fruitful development of iOS apps on a virtual OS X machine, which would mean getting an iOS app signing certificate to be used by Xcode running on that VM, and actually submitting an app to the App Store from the VM?
Even if such thing is technically possible, are there any legal obstacles buried somewhere in the license agreement(s) I would have to agree to while enrolling into the Apple's developer program? (Ahh, something's telling me there are..)
MacOS can be installed on a VMware VM running on ESXi. This can be done after the preparation of a bootable installation image of the ISO format with hdiutil, applying a free patch on an ESXi server and configuring certain VM settings.
You cannot develop iOS apps without a Mac computer, but you can set up CI/CD to handle building and publishing!
OS X, also called Mac OS, isn't free.
To boot and run macOS in a VM, you must first install a macOS image onto the new VM. Installing macOS in a new machine requires the following steps: Obtain a restore image. Set up a compatible VM configuration.
Technical: I don't personally know of anybody developing for iOS in a VM. I don't see why it wouldn't work (the compiler should output the same stuff). It seems like a hassle.
Legal: The Mac OS X license agreement (Apple Menu, select "About This Mac", click "License Agreement" at the bottom of the window) only grants you permission to run Mac OS X on Apple-branded hardware, or in virtual environments that are running on Apple-branded hardware.
My gut says if you want to be a cheapskate, work out of a VM, and submit what you make to the App Store, you probably can. I don't think Xcode is spying on you in the ways you suggest.
AFAIK the software can detect if it is running on a VM (checking the CPUID hypervisor or the VMWare BIOS) but not if the hardware underneath is Apple or not. Because VMWare on Apple hardware can legally run Lion, it is highly likely you will succeed. Apple, unlike Microsoft, invest little effort enforcing licenses. The idea of Xcode trying to detect if it is inside a VM on non Apple hardware sounds very much unlike Apple.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With