- Clone the repository from GitHub with
git clone --recursive
https://github.com/quicksilver/Quicksilver.git
- Change to the newly created 'Quicksilver' folder by typing
cd Quicksilver
- 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 /tmp/QS/build/
.
- 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 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
- Run all unit tests (this requires
xctool
to be installed on your system) - 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 git submodules
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
- ~/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:
- “Clean”
- In the “Edit Scheme…” menu item on the Product menu, change the Build Configuration to “Release”
- Build as before.
- Copy the app in
/tmp/QS/build/Release
to/Applications
- Run as a normal app from
/Applications
This process will overwrite any Quicksilver app you (shouldn't) have in
/Applications
.