I wonder if it's possible to run a licensed copy of Mac OS on VMware or similar VMs players, and, using it, to develop and distribute apps on Apple store. Reading here and there on the web, it seems that while it is technically possible, it would be a license infringement - you can run MacOS only on MacOS hardware.
Any advice ?
I can honestly tell you that it is not a license infringement because many people custom build a PC and run MacOS on it just fine. You can run MacOS on VMWare I do believe, been a while since I messed with VMWare on my Mac. They have no way of telling if you run a fully legal licensed copy on MacOS hardware or not.
I can honestly tell you that it is not a license infringement because many people custom build a PC and run MacOS on it just fine.
Just because it runs fine doesn't mean that it's not license infringement, of course. You can't buy macOS, IIRC, it only comes with Macs that can run it. I've never read the full license agreement that you have to click through, so I don't know what it says. But I'd be surprised if there wasn't a clause in there that says Apple reserves the right not so support (or even actively prevent) running on non-Mac hardware.
They have no way of telling if you run a fully legal licensed copy on MacOS hardware or not.
I'm 99% sure that they can. They may choose not to do anything with that information, though.
Given that I was in a similar situation a few years ago, I thought I would share a few tips/discoveries from my research:
1. I am not a lawyer, so won’t discuss the legality of virtualizing Mac OS. However, it does seem that Apple doesn’t want you to do that.
2. Even if you do manage to virtualize Mac OS you may not be happy with the outcome. I have heard that there are many driver issues and stability problems since Apple only focuses on making drivers for their specific hardware. Certainly there are workarounds available, but they take time to research, time to fiddle with, and often work only on particular hardware if they work at all.
3. If you allow your virtual Mac OS to auto-update you will likely spend a lot of time fixing the things that the update broke, if they are fixable at all. However, if you don’t allow your virtual Mac OS to update, you will be testing your code against a version of the OS that may not reflect the OS that your users are currently using.
4. You may have issues attempting to publish, sign, and/or distribute your code from such a sketchy/unstable platform.
In the end, I eventually borrowed a Mac from a friend to do the final testing before I published my program. If I had it to do over again, I would seriously consider one of the web-based services that allow you to remotely access their real Mac hardware over the internet. Here are a few websites that seem to offer such services, but others may exist: macincloud.com, macstadium.com, macweb.com. Personally, I feel that if you factor in the cost of the time you would need to invest in order to virtualize a Mac, a web-based solution will clearly be the cheaper option. It will probably yield a more conducive environment for testing and publishing stuff as well.
I hope that helps,
Also, for beginners who are too lost to even formulate a question, I often give away free programming tutoring on my website.