Codebook for macOS 4.5.4 Released

Codebook for macOS version 4.5.4 is now available!

This release contains just a few changes to fix some nuisance bugs:

  • Fixes presentation of Touch ID Login prompt so that it receives keyboard input, allowing use of the Escape key to cancel
  • Fixes an edge-case failure to report an error during sync
  • Fixes a receipt validation bug for the Mac App Store

The first issue has been bothering me for a little while, as I will frequently ⌘ ⇥ (command tab) through open apps and sometimes I land on Codebook by accident. And when I have Touch ID Login enabled, and Codebook is locked, the system’s Touch ID prompt comes up and I need to dismiss it to get back to what I was doing, by hitting the Escape key. Took a little determined debugging, but that’s fixed up in this release.

The second issue above has to do with when Codebook’s Sync feature encounters a problem with a particular changeset and is unable to process it. In some cases, the error reporting there was being squashed. It wouldn’t leave your database in an inconsistent state, but it also wouldn’t report that an error occurred.

Finally, the Mac App Store distribution of Codebook for macOS fixes a gnarly bug that could occur while validating Mac App Store receipts. The long and short of it is that to validate receipts we need to check your Mac’s MAC address for the en0 interface–but AirPlay can cause a second en0 to be created, and if you then used that interface’s MAC address (which would be NULL), the receipt validation would fail.

This would explain some of the more mysterious “application is damaged” errors some customers have received, that then went away after a reboot. We had assumed the reboot fixed whatever the problem was by restarting the App Store services on the Mac in question, but for some users it may have fixed it because AirPlay was no longer in use after the reboot.

There’s a great write-up about this bug here. It affected everyone that used Apple’s sample code for obtaining the MAC address from the system—if you’re a Mac developer yourself, they have updated code here that is no longer vulnerable to this issue.