In the calling environment the code that calls getReceiptData() calls exit(173) if there is no receipt. According to the latest documentation exit(173) should tell macOS to ask for one's iTunes test user ID and password. If these are valid it should fetch a valid App Store receipt, put it in the Contents/_MASReceipt/ directory and relaunch the app.
I
tested this this morning by calling exit(173) at various places in my receipt validation code and it doesn't work. Thinking that this might be a bug like the one that will only open and display the Help Book if the app is in the Applications folder, I tried this as well. No, there is a bug in mac OS Monterey 12.0.1 that makes it impossible to use this feature to debug one's receipt validation code. This means that I can't update my app at the app store because the testers at the App Store won't be able to launch my app - they will get an alert saying that the app is damaged and to reload it from the store.
Please file a bug report. Also I filed a request for a developer support incident but I haven't gotten any help from Apple.