- Clone the repository from GitHub with
git clone --recursive https://github.com/quicksilver/Quicksilver.git
- Change to the newly created 'Quicksilver' folder by typing
- Pull in the submodules with
git submodule init; git submodule update
- Open the project in Xcode
- 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.
- Run Product > Build or hit ⌘B
Everything you build should end up in
Running/Debugging in Xcode
- First of all let's make sure Xcode is setup to properly run Quicksilver
- 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:
- Quicksilver is configured to hide its Dock icon
- 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
Signing an application for Gatekeeper typically requires setting the Code Signing Identity in the project's build settings, but since that identity is unique to each developer, it does no good adding it to the project and committing the setting to the Git repo for all to use. Instead, you can just set it as an environment variable and build Quicksilver from the command line. This allows for a more consistent build process anyway. See
Quicksilver/Tools/qsrelease in the source repository. This script will
- Set the Code Signing Identity
- Choose the correct configuration and scheme
- Clean files from previous builds
- Build Quicksilver
- Verify that Gatekeeper accepts the resulting application
- Create a DMG containing the application
- 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
For all the non-coding QS users out there, here's a further breakdown of building the latest QS.
- Install Xcode from the Mac App Store.
- 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.
- See http://qsapp.com/wiki/Github#Adding_the_Quicksilver_Remote_Repository for info about downloading the latest QS build project.
- Open the Quicksilver.xcodeproj with XCode.
- Using the Scheme drop-down at the top of the window, choose 'Quicksilver Distribution → My Mac 64-bit' and click ‘Build’ (or hit ⌘B).
- Quit your normal copy of Quicksilver.
- 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
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:
- In the “Edit Scheme…” menu item on the Product menu, change the Build Configuration to “Release”
- Build as before.
- Copy the app in
- Run as a normal app from
This process will overwrite any Quicksilver app you (shouldn't) have in