Using (an unsupported, self-hosted version of) Billings Pro in 2020

Prelude

I have been using Billings Pro by Marketcircle for, lets just say, a long time. When I bought the software I opted for the self-hosted one-time license rather than the cloud-hosted subscription, and many, many years later, I am still capitalizing on that investment. Marketcircle no longer supports the self-hosted version. I do not currently want to migrate to the cloud-hosted version of the application, and this post documents the workarounds I found necessary to keep the client software functioning with the self-hosted server on macOS Catalina.

Disclaimer: This is not intended as a guide. You probably shouldn’t do this, and I’m not responsible if you corrupt your accounting data, your server gets hacked, your computer catches on fire, or your cat runs away as a result of replicating these steps in your own environment. The self-hosted server software is no longer updated or supported. If it were, you wouldn’t need to do these workarounds in the first place.

The Server

I am still running Billings Pro Server Admin on the last version of Mac OS that Marketcircle supported, 10.11.6. I have read accounts of people getting the server software to work on system software versions up to 10.14, but I have not made any attempts at doing so. While troubleshooting the issues I had with running the software on Catalina, I installed the server software on a clean install of Mac OS 10.11.6. While setting up the software, I set the server’s date to June 30, 2019, as Billings Pro Server generates SSL certificates for its own use and macOS Catalina (which I am running on the client computer) imposes additional requirements on SSL certificates that are generated after July 1, 2019. I am not sure that this is a required step.

Owing to the fact that the server software is no longer updated or supported, the server is firewalled from the Internet. A VPN is used to access the server remotely.

The Clients

When I attempted to log into Billings Pro on a clean install of macOS Catalina using the latest available client software from the App Store (version 1.7.16 at the time of writing), I got the vague message, “Error creating the offline DB.” It looked like an SSL connection was failing to establish. Looking through the files on the server machine I found the CA certificate that Billings Pro uses to sign its own certificates. This file is located at /Library/Application Support/Billings Pro Server/Storage.bpsdb/Data/8_3/server.crt. I copied this file to my client machine and added it to the login keychain, then configured the Trust setting for the certificate to “Always Trust.”

At this point the client software would connect to the server, but no invoices, estimates, or statements will load as long as the client software version was 1.7.15 or later. The last version of the software that will connect to the HTTP server that Billings Pro Server hosts PDF content from appears to be 1.7.14. Deprecation of obsolete security protocols seems to be the culprit. Version 1.7.14 was retrieved form a backup and installed.

Next, because it is important that the version of the Billings Pro client on disk not be accidentally updated, I deleted the _MASReceipt from the app bundle by control-clicking the app and selecting Show Package Contents, navigating to the Contents folder inside the bundle, and dragging _MASReceipt to the trash. This prevents the App Store from recognizing the Billings Pro app as having come from the Mac App Store, so it won’t prompt to update the app as new versions are released. Just to be extra careful, I locked the app from the Get Info window.

The last annoyance is that each time the client is launched, it detects that a newer version is available and recommends I update. Looking through the property list keys, there is an option for SUCheckAtStartup, but turning it off has no effect. After spending a few seconds with tcpdump, I found the software contacts currentversion.marketcircle.net. Using the hosts file to blackhole that domain prevents the update screen from appearing.

What’s Left

The Billings Pro client version 1.7.14 is a 64-bit application and will hopefully continue to run on newer macOS versions for a while longer, but this is an increasingly-fragile solution and I am evaluating other solutions to replace Billings Pro.