I'll try exporting a build without receipt validation and see if it's related to that.
Ok so I found the issue. I'm using a build script to inject the current bundle version into the receipt validation code using a preprocessor macro. Xcode 11 introduced this "MARKETING_VERSION" configuration, and this basically borked my script. The receipt validation was comparing the bundle version from the plist against the literal string "$MARKETING_VERSION" so that obviously wasn't working.
This Mastodon instance is for people interested in technology. Discussions aren't limited to technology, because tech folks shouldn't be limited to technology either!