or make their OS available for virtualization. Remember this was 2012 so our entire build process was done via cloud vms and Mac's requirements were a nasty welt on an otherwise exceptionally smooth process because there were no options available at the time.
Yes. Apple is fully in its right to decide how to distribute its software. Just like an open source software license can dictate how their software is used. If you want to use MacOS you have to use a Mac.
You misunderstand. If you want to build a product for MacOS you have to use a Mac. That's what bugs me because it doesn't fit into typical auto-build arrangements, at least it was a needless, awkward pain to do that when I wanted to do it in 2012.
There was no technical reason to have to jump through those hoops beyond the typical Apple "fuck you because I can".
How does that not fit in “auto build arrangements”? You have a Mac as a build server to build Mac software just like you need a Windows Build server to build a Windows app.
If your business can’t afford a $700 Mac Mini, you’re not running a business.
Besides, are you not doing any local testing in the simulator?
You don't need a windows build server to build a windows app, its just an executable that targets a given cpu architecture or run-time.
Its not about affording a Mac Mini its about being forced to do IT on some build servers when the rest are visualised in the cloud. Having your cloud servers ping back into your physical office to do the Mac build is stupid.
For context, this is an online service where we wanted to build two native apps for Android and IPhone. Android was easy (I didn't need a Google approved device to build it), IPhone was a fucking pain in the ass.
> Besides, are you not doing any local testing in the simulator?
You want to build the product on a dev box? That's not good CI. You want these environments to be clean and preferably spun up fresh each build.
You don't need a windows build server to build a windows app, its just an executable that targets a given cpu architecture or run-time.
Have you tried building a native or .Net Framework app on a Linux machine? How did that work out?
Its not about affording a Mac Mini its about being forced to do IT on some build servers when the rest are visualised in the cloud. Having your cloud servers ping back into your physical office to do the Mac build is stupid.
Because no one ever pushed code to Github that “pinged” to another server located somewhere else or pulled dependencies from yet another server like Nuget or npm...
I’m all for “the cloud”, but a VM in the cloud is no harder or easier to manage than one in a local server room. Especially since with most build systems, the orchestration is happening on one server with build agents hosted on different servers.
You want to build the product on a dev box? That's not good CI. You want these environments to be clean and preferably spun up fresh each build.
I never said that. But with most build systems it doesn’t matter where the agents are or where the orchestration server is. The agents register with the orchestration server and you can “visualize” where the agents are.
> Have you tried building a native or .Net Framework app on a Linux machine? How did that work out?
Well now we have .NET core so its fine but previously one can C, one can C++. Its not always ideal but there are options.
This issue is that if my highly public office with full glass windows in a somewhat shady part of town gets a power cut or broken into then I've got to run around to find another mac. Even if the network goes down I have issues that happen WAY less on the cloud. Its annoying.
What's more annoying is that there's no solid technical justification as to why this is. They just want Apple hardware to sign their builds because they want you to buy Apple hardware.