2 Quick Steps to use XVim in Xcode 8.1

Harry Ng
macOS App Development
2 min readOct 29, 2016

along with other plugins…

Xcode 8.1 was released after the “Hello Again” event with MacBook Pro and Touch Bar launch.

My colleague asked if he could use XVim and apparently he could not live without Vim mode.

Meanwhile, I am so eager to try out Touch Bar features on the demo projects. Thus, I am determined to give it a test.

1) Download from Archive instead of Mac App Store

Initially, I was updating Xcode the general way through Mac App Store. Then I used the tool MakeXcodeGr8Again, but it is not working as expected. The process got broken when I dragged Xcode to the tool.

After some back and forth discussions about this issue, I tried to download Xcode 8.1 from the Download Archive instead.

This time it works.

Download Archive on the left. Mac App Store on the right.

The image illustrates the two Xcodes. Although they have the same build number, they are in different file sizes and create dates.

2) Add Compatibility UUID to plugins

After launching the re-signed Xcode, XVim is still not working. There is something missed.

Each Xcode version has its own UUID. In order for the plugin to recognize compatibility, we should make sure the UUID is available in the Info.plist.

A no-brainer can run this command in terminal.

find ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins -name Info.plist -maxdepth 3 | xargs -I{} defaults write {} DVTPlugInCompatibilityUUIDs -array-add `defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID`

To understand a bit more, this is basically grabbing the UUID of the latest Xcode and append it to Info.plist for each plugin.

This will grab the UUID of the latest Xcode, located in the path specified.

`defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID`

The other part writes the UUID to each custom plugin.

P.S. The same trick applies to other plugins installed thru Alcatraz.

Happy Coding!

--

--