The solution turned out to be rather simple. It required a small change to the first line of the stm32f4discovery.cfg file.
The original line was the following:
source [find interface/stlink-v2.cfg]
I was using a Discovery board with a newer version of ST-LINK, so it required the following line:
source [find interface/stlink-v2-1.cfg]
The clue came from comparing the macOS System Report with the 60-openocd.rules file.
The Mac saw the Discovery board as follows:
STM32 STLink:
Product ID: 0x374b
Vendor ID: 0x0483 (STMicroelectronics)
This matched the definition of STLink v2-1 in the 60-openocd.rules file:
# STLink v2-1
ATTRS{idVendor}==”0483″, ATTRS{idProduct}==”374b”, MODE=”666″
So, while macOS doesn’t use udev and the *.rules file, the latter was still helpful in diagnosing the problem.