Developing MacOS apps on Windows

When you are developing apps, depending on the mobile device you want to build for, you may need a different development ecosystem to build that app. We have been working a lot with React Native and we are also planning to explore Flutter for app development. Both of these app development languages are cross platform and can build for Android and iOS (among other platforms). When you want to build for Android, you have a multitude of platforms you can build on, but when you want to build for iOS, you must have a MacOS development platform.

This article is going to walk through how to set up a MacOS VMware Workstation VM. This is directly from Gavin Phillips article on Make Use Of. Here is a link to his original article:

Gavin’s original article is more broad and covers using Virtual Box and using AMD platforms. This article is more for our own documentation in our development ecosystem and is limited to just VMware Workstation on Intel.

Gavin, thanks for your work on this one, it was really helpful.

What files, tools and accounts do you need?

First thing you will need is the latest version of VMware Worstation (or Player if you don’t own Workstation).

Next you will need to get a copy of MacOS. This can be difficult, Gavin provides a link to download this, so please visit his original article for the link. As of the writing of this article Catalina (10.15) is the latest version of MacOS available.

You will need to create an Apple ID if you don’t already have one, and this must be created outside of the vmdk image supplied by Gavin. So go ahead and prepare that ahead of time.

This deployment works best on top of Intel hardware, so you need a computer with adequate additional resources to run the virtual machine (2 additional CPU cores and 4GB RAM minimum as well as HD space).

You will also need to download the VMware Player Patch Tool. This tool will work for VMware Workstation as well. You must run this tool as administrator with no VMs running otherwise you may run into issues with it completing it’s tasks. You can find the tool on GitHub, and there is a even more automated version of the tool as well. Both links are below:

How to create a MacOS Virtual Machine using VMware Workstation.

First make sure you have installed VMware Workstation and that it is operational (might require a reboot). Now close Workstation and proceed to patch your Workstation deployment to support MacOS.

Download the patch tool, and extract it to a folder in the same drive as your VMware Workstation deployment. This install is going to backup your original files so keep this install after in case you need to revert the changes. This also works best if your VMware Workstation is deployed in the default location.

Once extracted navigate to the extraction folder and run the Unlocker.exe file by right clicking on it and running it as administrator. This will launch a shell, pay careful attention to the output, if there are errors that a file could not be backed up or copied you may not have run the script as administrator. You can revert the changes by running Unlocker.exe --uninstall from an administrator command prompt. Then you can try again.

Now we we have successfully patched, we can restart VMware and create a Apple Mac OS X VM. In this case you will be creating a version macOS 10.15

Select Create a New Virtual Machine. Choose I will install the operating system later.

Now, select Apple Mac OS X, and change the Version to macOS 10.15. If you don’t see the macOS options, it is because the patch didn’t install correctly.

Next, you need to choose a name for your macOS Catalina virtual machine. Choose something easy to remember, then copy the file path to somewhere handy—you’re going to need it to make some edits in a moment.

On the next screen, stick with the suggested maximum hard disk size, then select Store virtual disk as a single file. Complete the virtual disk creation wizard, but do not start the virtual machine just yet.

You have now created a new VM, do not boot this VM!

Before you can boot the virtual machine, you must edit the hardware specifications. Plus, you need to tell VMware where to find the macOS VMDK.

From the main VMware screen, select your macOS Catalina virtual machine, then right-click, and select Settings.

Increase the virtual machine memory up to at least 4GB. You can allocate more if you have RAM to spare.

macos virtual machine vmware choose ram

Under Processors, edit the number of available cores to at least 2.

Now, under Hard Disk (SATA), you need to remove the hard disk created earlier. Select Remove and VMware will remove the disk automatically.

Now, select Add > Hard Disk > SATA (Recommended) > Use an existing disk. Browse to the location of the macOS VMDK and select it. I recommend making a copy of the downloaded macOS VMDK and placing it in your VMs system folder. Then pointing to that copy in case you need to make more VMs in the future.

Now that that is complete, we need to edit the virtual machines .vmx file. Close VMware, and browse to the location you saved built your virtual machine in. Edit the file with a text editor of your choice and add the following line to the bottom of the file:

smc.version = "0"

Save, then exit the editor.

You can now open VMware, select the MacOS vm you created and fire it up.

If you downloaded Gavin’s VMDK it will now run through the install and configuration process. Once that has completed and your VM is running (did you create that Apple ID on the website, can’t do it in the VM) you can now install VMtools.

With your MacOS VM running click on Edit -> Install VMware Tools…

This will launch a VMware Tools install dialog inside of your VM, follow the instructions. Your MacOS might block the installation of the package, click on the link in the block to allow the installation and then VMTools installation will complete.

Restart your VM, and you are good to go! You now have a working developer VM.

What’s new, and side gigs.

I haven’t updated this blog in forever and I really think I should be using it. Though I think now it is going to be more focused on dumping my own ideas to a screen, rather than writing for anyone else to consume. With that being said, I won’t work hard to edit what I am writing I will just write it. There might be errors, there might be undocumented details but at least there will be something!

I have been working on some side projects while I work my day job and spend time with my family (so many kids)! I realized I don’t really write any of the things I am doing down, so I think it’s time to start sharing things I am doing.

While these articles will be available for everyone to read they really are for me so I can recreate things I have done, or be slightly consistent. Maybe they will be useful to someone else as well.

A quantum understanding

It has been a while since I posted an actual article. I feel this innovation is something that a twitter post really couldn’t do justice to. Scientists at Princeton have made a dramatic leap forward in materials simulation. Traditionally when simulating materials on super computers programs must calculate the energy of an atom from scratch to determine the properties of a substance. The scratch calculation is complex and when you scale this across hundreds or thousands of atoms simulations are extremely intensive.

Enter the new formula based solution from Carter and Chen. This solution avoids having to calculate the energy of each electron in a material and instead accurately predicts the kinetic energy of electrons across the entire substance. This takes the most complex repetitive portion out of the simulation and allows it to scale to macroscopic samples of a substance.

So what does this really mean? Well, this will allow them to accurately and easily simulate how new theoretical transistor designs will work. So instead of having to actually make a new transistor from new materials and experiment to see if it performs the way you want, you can just simulate it. It can work for many other materials too, not just computer parts. What this is really letting scientists do is bring quantum properties into the realm of real simulation. This can probably help with fluid dynamics calculations, increasing the accuracy of fusion reactor simulations just as another example.

Heading toward the future, this can allow us to accurately predict how nanotech machines will function. It could even be applied to cells, helping us understand at a quantum level how human cells function. At the rate computer power scales up, efficiencies like this result in massive leaps in simulation capability. Bringing this research together with other fields like full brain simulation may result in some staggering advances.

The inevitable forward march of the machines.

Many scientists agree, general AI is coming. Self aware machines capable of understanding both the world around them and themselves. Will we be overtaken by these machines?

“When we started thinking for you, it really became our civilization.” Agent Smith – The Matrix.

Both robotic scientists and Battlestar Galactica members agree that the AI is coming. While this article serves as some hype for the new Battlestar Galactica TV movie “The Plan” it also discusses some very interesting contemporary AI research along with cybernetics. While we may be overtaken by the machines we may also be able to keep up with them if we follow them in our natural evolution. Replace your brain with cyber enhanced nano-neruons? It won’t be impossible forever.

People are already experimenting with cybernetics, at a simple level but everything has to start somewhere.

Then there is the idea of self aware machines. What does self aware really mean? I won’t go into that topic too deeply the wikipedia article for self awareness is a good start. The robots shown in the following video are becoming self aware, however only in the crudest sense. If we consider all the pieces coming together though, self awareness of body as well as self assembly of knowledge like in my post Game Changer we start to see that the technology is moving towards a general AI from many directions.

Ignoring the Battlestar Galactica hype in the article, it did bring up some interesting points, and gave us a glimpse of how mainstream this technology is becoming. Did I mention… I welcome our new robot overlords?

Adrift in the silence, but now a melody from the void

Over the last week or so I haven’t seen many breakthrough bits of research that I wanted to share with Automatons Adrift. I have been reading the papers from AIIDE 2008 and some of them have been very interesting. I will share a synopsis of some of the cool ideas shared at that conference in a later post.

Now there has been a song from the void. The automatons are singing, or at least trying to sing. A UK researcher has been experimenting with autonomous agents that communicate through singing and work together to improvise a song or melody. The robots currently attempt to mimic eachothers sounds and it has been scaled up to twenty robots. Further research in this field can be applied to group communication and organized planning.

This is the type of research that can be applied to swarm intelligence, smart dust, and many other distributed systems that required communication and innovation.