To my knowledge, GNUcash is perhaps the only viable free alternative to Quickbooks to date, available on multiple platforms including Windows, Mac & even Linux!
For those not familiar, GNUcash does not yet include time- tracking/integration, and no direct way to import Quickbooks-formatted files, though, so be advised that making the switch will likely present some challenges. For time tracking, I use a simple spreadsheet, but there are many free time-tracking tools you can use, including Harvest, which integrates with Asana.
It features a strong ledger system, but unfortunately can be even more user-unfriendly than Quickbooks and more difficult to set up, with very clumsy and limited invoicing, sadly with no way to save settings from app & very clunky tools to tweak layout options.
To set up invoices, you’ll need to first set up a customer at Business → Customer → New Customer. You can leave Customer Number blank or use a name, but you’ll want to use the full customer/client name under the Company Name field, as this will appear on the invoices. The Name field, however, can be left blank.
When your customer(s) are set up properly, next go to Business → Customer → New Invoice
Fill out the invoice details and click the OK button, which brings up the following:
When you have finished entering all the items, you can Save & Post (and then print the invoice.)
To find an existing invoice, use the Business → Customer → Find Invoice menu, but before you can edit a posted invoice, you will need to Unpost it.
For more details, see: http://gnucash.org/docs/v2.6/C/gnucash-guide/bus-ar-invoices1.html