Hacker News new | past | comments | ask | show | jobs | submit login

This would be interesting to see, I'm guessing the implications are being able to build iOS projects without requiring a Mac at any stage of the development process.



You can actually do this now, without emulation: https://github.com/tpoechtrager/cctools-port

Zig are also working on it: https://zig.news/monthly/zig-monthly-august-2021-ios-support...

The pioneer of software dictatorship will probably make this impossible or illegal as soon as it gains any traction though. And people will probably congratulate them for it in the name of "security".


As a “closed iOS” advocate, I personally believe the ability to do development outside of a macOS is a great idea. I’ve long wanted to make iOS apps, but I don’t have the money to shell out for a Mac. Yes, Hackintoshes are a thing, but you need certain hardware to do so, and even then, it’s still difficult (last I checked).


For casual app development I just run MacOS in a free VMWare instance on my Windows machine. It has no graphics acceleration but otherwise works flawlessly.


IIRC, macOS EULA expressly requires that the OS be run on Apple hardware. If it's run in emulation (which is permitted), the host must run on Apple hardware anyway.

Apple is not a software company, it's an electronic appliance company, like Samsung.

Of course, apple won't go after individuals who violate this provision. But is a cloud vendor or a CI vendor tried to pull that off, Apple would smash them.


Are there any countries where this EULA term isn’t enforceable?


If you don't agree to the EULA you don't have a license to use MacOS at all, which means you downloading it is (in many countries) a crime.

The question whether or not a EULA is enforcable is only relevant for products you bought which have software preinstalled - it is often argued under First Sale (and similar) that the EULA isn't applicable.


Do you have any citations you can provide in this regard?


Anyone aware of any options for Hyper-V? Last time I tried this it was pretty impractical to have VMWare/VirtualBox co-exist with Hyper-V for things like Docker and WSL2, but maybe that has changed?


Newer versions of VMWare work under a Hyper-V host [1]. I'm not sure if macOS runs properly in that mode though. I also had some success a while back running macOS under WSL2 using KVM [2], though it was pretty buggy and a pain to set up.

[1] https://blogs.vmware.com/workstation/2020/05/vmware-workstat...

[2] https://github.com/kholia/OSX-KVM


How do you load MacOS in VMWare? Where/how do you get the install media?


This has been possible for a long time. For the install media, Apple hosts them and will give you the dmg file for free.

The only concern is the terms of the EULA so that's why the earlier poster says "for casual development"

There are a lot of guides online, including "one command" shell/powershell scripts that will automatically pull down the right files for you, and use the vmware/virtualbox api to create the vm automatically, and patch the bootloader to get Catalina or Big Sur loading, etc - if past experience is any indication, people probably already have Monterey beta loading fine already.

again, it's not a matter of "how" it's whether you (or Apple lawyers) care about the EULA.


Doesn't the EULA also prohibits hackintosh?


in addition to what @barkingcat said, for vmware to be able to boot a macos virtual machine you'll need it to unlock it for that OS. Search for vmware unlocker is a free utility that depends on your vmware version, run it once and you're done.


I did this with QEMU, the performance is pretty fantastic under Linux.


You ran/run modern macos in QEMU under linux? I didn't know that was doable...


It's very doable, it takes like 10 minutes if your internet is reasonably quick and if you're lucky you might even get GPU acceleration out of it. I used this to set mine up: https://github.com/foxlet/macOS-Simple-KVM


I can appreciate if this is too much money for you, but I recently bought a 2014 macmini i7 16GB and 512SSD on ebay for $440 shipped to my door. I needed something that could handle bigsur for some app development, and that was the best $/effort solution I found. Add another ~60 for a usb switch and cables, and I can easily switch between my primary and mac.

In general, there's a pretty good second hand market for macminis, and if you shop around you can probably get something usable for under $350 shipped.


Actually it is easy to build Hackintoshes, even with AMD. Catalina is running stable with Apple ID and all the bells and whistles. In the past when Apple ignored updating Mac Pro Trashcan for several years, we have build a monstrous PC with Hackintosh to run FinalCut. Search for Open Core Catalina.


I had a hackintosh back in 2009, and recently decided to go at it again and built a custom PC with all the components from https://www.tonymacx86.com/buyersguide/building-a-customac-h.... After a week I never managed to get the OS to install without the installation process crashing towards the end, so it's not "actually" easy even if you know your way around a computer.


I started building Hackintoshes in early 2008, just from curiosity. I remember successfully running 10.4 on a netbook. https://archive.org/details/mac-os-x-tiger-10-4-8-hackintosh...

https://www.youtube.com/watch?v=juCz2ZzNOAY

Believe me now is so damn easy that it's funny. Now you have a lot of tools to load kexts and configurations. In the old days we loaded kexts manually:)


The problem is mac OS now uses M series chips. You'd be developing legacy code.


It's not legacy code until the day Apple definitively axes Intel models. The writing is on the wall yes, but they are still selling Intel Macs and they are not deprecated yet. The majority of development still happens on Intel Macs.

I built an 11th-gen Rocket Lake 128GB Hackintosh with Thunderbolt Display support+2 LED Cinema Display recently and it's been great. Thunderbolt 3 support on a Hackintosh has been nice. Just hoping for Thunderbolt 4/Maple Ridge drivers/11th-gen iGPU drivers if ever.


>It's not legacy code until the day Apple definitively axes Intel models.

You can't run Xcode 13 on any Intel mac OS machine.


That’s not true, Xcode 13 still fully supports Intel Macs.


What motherboard/gpu did you use for that?


Gigabyte Z590 Vision D


Thank you.


Forgot to mention it's a Radeon R9 270, quite old. Might want to upgrade to Radeon 6900 XT in the future if 8K monitor on macOS becomes possible


I've never been an iOS or Mac developer, but I have had a few 5,1 Mac Pros. The release of m1 mac minis pretty much killed the used market for those, but you may still be able to find one for cheap. I was able to find a few 12-core 24-thread dual xeon models for around $250, but had to be patient. Add in 64GB of ECC RAM and an SSD upgrade, to Mojave or Catalina, and you have a beefy enough development system for around $500. Those 12c/24t will get smoked by an m1 mini for a lot of tasks, but if memory matters then it's probably still the best bang for the buck. Also, you'll need to find a GPU....


Memory or storage. A couple big SATA drives in a Mac Pro work well for certain uses cases.


> The pioneer of software dictatorship will probably make this impossible or illegal as soon as it gains any traction though

What does Microsoft have to do with this?


Building apps without the use of Apple’s SDK is already considered to be against the developer program terms.


That's funny. It's against my terms to not use my software!


> The pioneer of software dictatorship

Consoles were doing that shit way before, unless you redefine what counts as “software” or “dictatorship”


I do think consoles should be required to be open (as I think all phones should be), but I am sympathetic to the idea that consoles are somehow in a different class than phones or desktop/laptop computers. Consoles feel like purpose-built game machines, whereas phones feel like general purpose computers, albeit small ones.

Really, though, I don't have a good reason why I think it might be ok to lock down a purpose-built game machine. So maybe that's just not ok either.


You'd need to emulate macOS hardware, not iOS, to do that. In that sense, what you describe is already possible (running Xcode in a macOS VM on commodity hardware).


I did this exact think back in 2012 with a PhoneGap/Apache Cordova app. It had to use Xcode to run the app in the iOS Emulator. So I spun up a virtual machine on my Linux box. It worked extraordinarily well!

In the case of the poster you are replying to. Yes, Swift is open source and there are compilers for other platforms. The problem comes in with Apple's SDK and their proprietary libraries. Those are what are required to build an app that'll run on an iOS device. Those only run on macOS/OSX.


Technically those were simulators for iOS, not emulators. Lots of things behaved a little different on the phone itself.


These days, unfortunately, it is not possible. Well, you can virtualize MacOs, but you can not connect iOS device to it, nor you can run a virtual iOS device inside it.

Apple went out of its way to deliberately disable physical phones connecting to a virtual MacOS. Any other USB device can be connected, but not an iphone.


VmWare Player with USB configured to version 2.0 did the trick for me. I tested it with an iPAD Pro and iOS 14. The VM was running the newest macOS release from a few months ago.


I use this: https://github.com/kholia/OSX-KVM

It works quite well for me. Simulator works fine (though graphics are slow) and so does connecting a physical phone (by passing through the USB controller).


I'd like to chime in here that it's very fucking frustrating that the best & most convenient free tools for virtualizing macOS aren't available on macOS, considering macOS has shipped with a damn hypervisor for years. Setting up a vanilla installation of arbitrary, older version of macOS for testing, or for maintaining build environments for long-support-life Mac software, should be one command, shipped with the dev tools. But no, instead it's "pay for a 3rd party solution" or "break the EULA and run it on Linux".

(yes, I'm aware of a bunch of fragile solutions involving VirtualBox, but they tend to be slowish, that's also supposed to be paid if you're using the extensions for commercial operation IIRC, and several versions of macOS/OSX remain a huge pain in the ass to set up on it regardless)


I passed a GPU into mine to get around the slow graphics.


a motivated individual can still accomplish it, there are multiple ways documented on the web if you google a little.

its however not permissable, as you cannot buy apple software without agreeing to their licence, which disallows running it on anything but apple hardware.

for private fun projects: possible

for professional things: a very bad idea


It's fine for professional things, too. Just follow the 11th commandment and you'll be fine.


11th commandment? "Everything's ok as long as you don't get caught"?


There's no difference in the binaries built by Xcode running directly on Apple-branded hardware and Xcode running in a macOS VM in a generic (or perhaps metal, if nested virtualization isn't available) ec2 instance.


We have iPhones connecting to macOS VMs for our CI system and have never had any issues with it?


Well, may be I am unlucky one, but I just tried and freshly installed MacOS in VirtualBox VM can see any other USB device except iPhone XR. This setup used to work find a few years ago but stopped a at least on 2018. Will try VMWare.


Same, I have multiple iPhones connected to a VM running on ESXi on non-Apple hardware.


Adobe AIR has done this for at least 10 years.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: