Hook and macOS 10.15 (Catalina) Notes App
This page describes issues with macOS 10.15 Catalina Notes that affect Hook. It also mentions a relevant update to Hook integration scripts so that you can tell when/why something has gone wrong betwen Hook and Notes.
AppleScript, Notes and Hook
AppleScript is an automation language. Apple’s macOS Notes app has an AppleScript dictionary, which lists several commands that users can issue to Apple’s Notes app to do helpful things.
Integration script server updated (v. 83)
We have pushed a new version (v. 83) of the Hook integration scripts to the Hook Integration server which contains work-arounds for those macOS 10.15 Notes issues that we can circumvent. When something fails due to a 10.15 issue (in case you’re coming from a 10.14 installation), the scripts popup dialog boxes to let you know .
The scripts also enable you to continue to work with macOS 10.14 as you could before.
Apple Notes Catalina Bugs
Unfortunately, in contrast with macOS 10.14, Apple’s macOS 10.15 (“Catalina”) Notes app has a couple of new bugs that significantly affect the usefulness of Hook with macOS 10.15.
As such, if using Hook with Notes is sufficiently important to you, we suggest you refrain from updating to macOS 10.15 until Apple resolves this. To be updated of this you could subscribe to our Twitter account: @HookProductvT or newsletter.
CogSci Apps has logged a couple of bug reports with Apple regarding problems we have encountered in Apple Notes. They are described below.
1. The main bug report
Catalina (10.15) Notes AppleScript is almost completely broken when iCloud sync is enabled
When iCloud sync is enabled under Catalina (10.15), Notes’ AppleScript is almost completely useless. Even just accessing a note object can cause a -10000 error.
e.g. given the existence of a note titled “test”
tell application "Notes" get id of note "test" end tell
produces “Notes got an error: AppleEvent handler failed.”
This makes it impossible to do any kind of interaction with notes in Notes with AppleScript.
get selection doesn’t cause an error, but trying to access any items in the resulting list does.
make new note doesn’t produce an error, but interacting in any way with the new note does, e.g.
show make new note, leads to an error.
The issue is only exhibited while iCloud sync is enabled for Notes. There are other more narrow issues if it is disabled however.
2. Our other bug report to Apple
We have also filed the following bug report, even though our scripts can work around the issues below in the case where iCloud sync is disabled, but they happen in Script Editor interacting with 10.15 Notes app.
Catalina (10.15) Notes AppleScript is broken, lots of -1700 errors when interacting with note objects
The best way the explain it is to demonstrate seemingly identical examples of code which do not behave alike:
tell application “Notes” get name of note id “x-coredata://9241D9F7-14D1-430E-8587-66B47CCFD2E9/ICNote/p255” end tell
This doesn’t work (-1700 error)
tell application “Notes” set n to note id “x-coredata://9241D9F7-14D1-430E-8587-66B47CCFD2E9/ICNote/p255” get name of n end tell
and an example with lists:
this doesn’t work (-1700 error)
tell application “Notes” if (count of selection) is greater than 0 then get item 1 of selection end if end tell
But you can finagle it to work like this:
(note that the selection itself is coerced into a note object, not a list of notes. It fails if there are more than one notes selected)
tell application “Notes” if (count of selection) is equal to 1 then set noteID to «class seld» of (selection as record) get note id noteID end if end tell
This section (and the rest of the document) will be updated with further details as the situation develops with Apple or our own investigations.
We hope that Apple will address issues with its macOS 10.15 Notes app. Also, we have a line of investigation open to work around some of them.
Other note-taking apps
Apple Notes is not the only note-taking app on the market. Hook is compatible with many note-taking apps that store notes on Finder or in their own sync system.
For example, Hook works well with Bear.app (which has its own sync service), nvALT and nvUltra. Their developers understand the importance of exposing URLs for their objects, and honoring their URL schemes.
Other things you should consider before updating to macOS 10.15
Michael Tsai, who is always a helpful source of information about macOS has a blog post on Catalina App Issues. I recommend reading that web page before making the jump to 10.15. You can follow Michael on Twitter here: Michael Tsai (@mjtsai) / Twitter.
FYI: Michael is also a macOS developer. We package Hook into DMGs using his DropDMG app. Hook works with his EagleFiler personal information management system. We will offer further integration scripts for EagleFiler. That app is also described in relation to Hook in CogSci Apps Corp. co-founders second book, Cognitive Productivity with macOS®: 7 Principles for Getting Smarter with Knowledge.