Building Quicksilver

From Quicksilver Wiki
Jump to: navigation, search

Building Quicksilver[edit]

  1. Clone the repository from GitHub with git clone --recursive
  2. Change to the newly created 'Quicksilver' folder by typing cd Quicksilver
  3. Pull in the submodules with git submodule init; git submodule update
  4. Open the project in Xcode
  5. Select the “Quicksilver Distribution → My Mac 64-bit” scheme in the upper left corner (next to the Stop button) if it’s not selected by default.
  6. Run Product > Build or hit ⌘B

Everything you build should end up in /tmp/QS/build/.

Running/Debugging in Xcode[edit]

  1. First of all let's make sure Xcode is setup to properly run Quicksilver
    1. Choose Product >> Schme >> Edit Scheme...
    2. Click on Run on the left
    3. Then for the Executable select ""
    4. The result should look like this: XcodeEditScheme.png
  2. Next click Product >> Run to run Quicksilver

If using “Run” with the Release configuration, you might end up with an unresponsive app. This is likely to happen under the following conditions:

  1. Quicksilver is configured to hide its Dock icon
  2. You’re building for the the first time (or after doing a Clean)

If the “Stop” button in Xcode is grayed out, that’s a clue that something went wrong. Use Activity Monitor to quit the Quicksilver process then “Run” again. It should work for this and all subsequent builds until you start fresh again.

You’re better off using the Debug configuration when doing “Run”, as it knows not to relaunch the app.

Signing for Gatekeeper[edit]

Signing an application for Gatekeeper requires setting the Code Signing Identity in the project's build settings. For security reasons we do not share the Code Signing Identity, but instead set it with an environment variable.

A build script located in Quicksilver/Tools/qsrelease manages the release build process.

This script will

  1. Run all unit tests (this requires xctool to be installed on your system)
  2. Set the Code Signing Identity
  3. Choose the correct configuration and scheme
  4. Clean files from previous builds
  5. Build Quicksilver
  6. Verify that Gatekeeper accepts the resulting application
  7. Create a DMG containing the application
  8. Open the target folder in Finder to show the results of the build


You can also install Quicksilver via Macports, a package management system for OS X. You'll need to install the Xcode package and Macports itself, but then you can build and install Quicksilver from source just by running

sudo port install quicksilver

You can use this as a sanity check to be sure that your environment is able to build Quicksilver. You can also inspect what Macports is doing by adding a -d debug flag to the command or by running port edit quicksilver to view the Portfile (Macports configuration file).

Please note: This method is no longer supported for Quicksilver as it does not deal with git submodules

Layperson's Guide[edit]

For all the non-coding QS users out there, here's a further breakdown of building the latest QS.

  1. Install Xcode from the Mac App Store.
  2. Make sure there's no other Quicksilver apps on the system by zipping older versions and deleting the apps the zips originated from, then emptying the Trash.
  3. See for info about downloading the latest QS build project.
  4. Open the Quicksilver.xcodeproj with XCode.
  5. Using the Scheme drop-down at the top of the window, choose 'Quicksilver Distribution → My Mac 64-bit' and click ‘Build’ (or hit ⌘B).
  6. Quit your normal copy of Quicksilver.
  7. In Xcode, click 'Run' in the toolbar.

A ‘Product -> Clean’ (or ⇧⌘K) should be performed if you're experiencing crashes or problems. Also try deleting the folder /tmp/QS before building again.

If the build still crashes regularly, move all of these paths before trying a new build:

  • ~/Library/Application Support/Quicksilver/Plugins
  • ~/Library/Preferences/com.blacktree.Quicksilver.plist
  • ~/Library/Caches/com.blacktree.Quicksilver/
  • ~/Library/Caches/Quicksilver/

then move them back one at a time before trying again. When a replaced folder causes a crash, repeat the process for the contained folders, and so on.

If Quicksilver seems stable, and to get the full benefits of the app:

  1. “Clean”
  2. In the “Edit Scheme…” menu item on the Product menu, change the Build Configuration to “Release”
  3. Build as before.
  4. Copy the app in /tmp/QS/build/Release to /Applications
  5. Run as a normal app from /Applications

This process will overwrite any Quicksilver app you (shouldn't) have in /Applications.