Essential Xcode Plugins

Extending Xcode to improve your productivity

Estimated reading time

You wouldn't know it the first time you boot up Xcode, but there are a plethora of bundles (plugins) for Xcode that extend and improve it's functionality. While all of these can be installed manually, there is a great third party bundle named Alcatraz which will manage all of these for you.

From their website, "Alcatraz is an open-source package manager for Xcode. It lets you discover and install plugins, templates and color schemes without the need for manually cloning or copying files. It installs itself as a part of Xcode and it feels like home."

While Apple intend to bring this into Xcode natively (named Editor Extensions), they are currently no where near as powerful. There has been word that improvements to the system are coming, but at least until you need to upgrade to Xcode 8 you can still take advantage of what's already in place.

Over the years we've collected a list of our favourite bundles, let's take a look...

Themes

One Dark

Probably the nicest theme for Atom has been ported to Xcode, and is a really great alternative to Solarized Dark.

Source code

Auto Importer

Quickly import your headers on the fly without having to manually go to the top of your file and type the import statement.

Auto Indent with Save

Automatically indents your code as you save. Combos quite well with BBUncrustify.

BBUncrustifyPlugin

Allows formatting of source code based on Uncrustify or ClangFormat rules.

CleanHeaders

Format your import headers in a systematic manner. It simply removes duplicates, spaces and sorts them alphabetically making it much more easier to read and avoid duplicate imports. Works with @imports, #include, #import and import.

Interface

Backlight

Highlights the current working line, and can be modified to suit the theme.

CopyIssue

Copy the full issue description or it can automatically open your default browser and search Google or Stackoverflow for the selected issue.

DBSmartPanels

This bundle works amazingly well when you're on a device with a smaller screen. It will automatically show and hide panels in the interface based on the type of editor window that is in focus.

FixCode

Prevents accidentally breaking provisioning profiles by clicking the "Fix Issue" button and forcing you to do things correctly

FuzzyAutocomplete

If you've ever used Sublime Text (and it's fuzzy search in the command palette) then you're going to want to install this one.

GitDiff

Display markers in the gutter based on the status of the line. You must have line numbers installed for this to work.

HighlightSelectedString

Selects every other occurance of the selected word.

KPRunEverywhere

Working on a universal app and tired of building to the iPhone, then to the iPad to test some interface work? This bundle allows multiple devices to be built to at once.

PreciseCoverage

Makes code coverage more informative.

SYXcodeIconVersion

If you have multiple Xcode versions running on the same machine this will display the version number in the dock icon.

XcodeColors

Allows you to use colors in the Xcode debugging console and is designed to aid in the debugging process.

XToDo

Scans your source code and displays TODO,FIXME,???,!!!! results in another window.

Resetting Alcatraz Bundles

Occasionally (particularly after an update) Xcode will refuse to load your bundles, and reinstallation of Alcatraz will not prompt the user to enable them again. The following terminal commands will resolve that issue:

defaults delete com.apple.dt.Xcode DVTPlugInManagerNonApplePlugIns-Xcode-$(xcodebuild -version | grep Xcode | cut -d ' ' -f 2)

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`