Windows Dev Machine - deploy to iPhone

Hi all,

I’m trying to use Unity3d to develop for Xbox, Android and iOS, so what I would really like to do is have one machine per developer with an iPhone and Android device. I really don’t want to have to buy an extra MacBook per developer, and the workflow would be very disruptive having them switch machines all the time.

Is it possible to publish direct to a plugged in iOS device from Windows?

Thanks,

To my knowledge, the only way to build an XCode project is to use a Mac. There are alternatives, such as using a VM with macOS on it, but that’s technically illegal (piracy is necessary to get macOS without a Mac). Another alternative is available on the Unity Asset Store, but you need a Mac anyway to acquire the necessary files, libraries, etc. to be able to use the asset to build an iOS project on Windows.

The underlying issue is the inability to build an iOS project on Windows. I’ve been searching for a solution to this for many months to no avail. If someone has any insight or solution, it would be greatly appreciated.

1 Like

VMWare is a functional but slow way to do it, but like said above, it’s kind of a tricky legal area. Anywho, if you simply must do it, a VMWare osx virtual machine can indeed build out for iOS.

1 Like

I’ve been trying to get an OSX VM to work on and off for a few years and I’ve never had any success. It’s probably due to my AMD CPU. :confused: I’m getting fed up trying to work my way into iOS game development. Sometimes I wish I had an Android phone instead of an iPhone. I guess eventually I’ll just have no choice but to get a second-hand Mac computer or laptop. I really don’t foresee Apple ever giving PC users the ability to build a Mac/iOS project on Windows.

Nope, I don’t see that happening either anytime soon. But yeah VMWare can be tricky to get working, and requires specific hardware (I think i series or newer intel CPU’s only) to run, so it all depends on your setup. The best route might be a cheap mac mini (I think like 2010 and newer are all decent).

VirtualBox has been my go-to for VM; it has better AMD support in my experience. Plus it’s completely free. Still, getting a macOS VM running on it has proven impossible for me. I’ve tried the recommended version for it but it won’t even run on my system. Only the latest version of VirtualBox will run. Apparently an update to Windows 10 broke older versions a while ago.

So yeah, the Mac mini is probably going to be my best route moving forward. I’ve looked into it but a functioning Mac mini from 2010 or later is still stupid expensive for what I’m going to be doing with it. The premiums we pay for Apple, I guess…

Yep, apple has a pretty good grip on their ecosystem, and I suppose that is not so bad, because it helps keep at least a little of the flood of crap that gets on google, from making it there. But it also makes our lives a little trickier too haha.

Hey, thanks all for coming back to me, really great to see the community offering advice so readily. Apple seem to be fairly bent on making unhelpful decisions at the moment.

What do you thing about this? I push projects to Github, so on the Mac, I could have Jenkins running on it with the Unity3dBuilder plugin and have it build and write a job to listen to changes on my project’s ‘dev’ branch, so each time I push from Windows, an build is automatically triggered and deployed to an iOS device - albeit a short delay later.

When its time to release, I guess I could have an extra build step that only gets triggered on ‘master’ - shell step, that submits the app for review.

Sounds like a reasonable minimum hassle solution?
Thanks again. :slight_smile:

1 Like

Actually, that’s not quite correct. A quick Amazon search shows plenty of legitimate OSX copies being sold by Apple: https://www.amazon.com/s/ref=nb_sb_noss_2?url=search-alias=software&field-keywords=mac+OSX

Yes, they are very old, but this shows how to make a bootable USB for OSX: https://www.marekbell.com/how-to-create-a-bootable-installation-for-os-x-mavericks-10-9-and-above/

So in theory you could buy one of the old versions being sold, then download an upgrade to a new version and create a bootable USB. Then you could install a new MacOS into VirtualBox. In theory, if you buy a legitimate copy it’s not illegal as you bought the software, however it’s easier to do it illegally with a hacked MacOS image (but obviously not recommended).

Also, someone brought to my attention this from the Asset Store: https://www.assetstore.unity3d.com/en/#!/content/15522
It has 5-star reviews so it seems to be working flawlessly, and its description states you’ll need access to a Mac only once (could probably sneak into an Apple store for that ;)). Definitely worth a shot!

Finally, if you don’t like any of those options, keep an eye out on eBay or Craigslist for a cheap used Mac. An old Macbook will work OK for builds, since you won’t be spending too much time working on it. An SSD can bring almost anything back to life, assuming you get a old enough Macbook with a removable hard drive (since Apple has loved to use their soldering iron on new models).

1 Like

I suppose I should have said “may be necessary.” :stuck_out_tongue:

The asset you linked to was the one to which I was referring above. The need to have access to a Mac in the first place makes the asset useless to me and many others who don’t have access to a Mac or the funds to purchase even a used, half-decent Mac computer.

I’ve done some looking around, though, and it should be possible to use a service like http://www.macincloud.com/ to, at the very least, acquire what is necessary in order to use the aforementioned asset.

There are definitely alternatives out there. It’s just easier to purchase a Mac than to try and get a macOS VM working. Or use a service like what I’ve just mentioned. I may end up trying out Mac in the Cloud instead of investing in an actual Mac computer. I’ve wasted too many hours trying dozens of different ways to get a macOS VM working.

Sounds like you’ve got a fairly solid plan. Hopefully that’ll work for you!

EDIT: Mac in Cloud doesn’t offer a remote Mac with the necessary administrator permissions to run the script from the aforementioned asset to acquire the necessary files to build iOS apps on Windows. Unless you know someone with a Mac, or can get a Mac yourself, don’t waste the $45 on the asset or the $1 for a one day trial at Mac in Cloud. Luckily my girlfriend knows someone with a Mac. I really didn’t want to bother them to do anything for me but I’m not letting my $45 go to waste.

Thanks all, really appreciated. So, I had a thought - a lot of other people seem to be in a similar position. I’ll write an Ansible playbook that automatically configures a Mac with Jenkins and the Unity3DBuilder plugin, and also a simple job which triggers a build of sample iOS app when the project Git repo is updated. that way if someone is building off Windows, their Mac, will do an build and deploy to iOS without them having to fiddle on a second laptop.

If anyone feels this would be useful, I will create a public Git repo under my organisation and I can post a link to it? I’m moving house though so it will be a few weeks off :wink: