Thanks for the reply Albert. I simply said that the app is not finished, so I have not archived it and uploaded it to App Store Connect. It exists, however, and is nearly at a testable state. It builds and runs just fine on devices and simulators, and when I set up a "custom URL" scheme in the project and typed a conforming URL into Safari's address bar (in a simulator), iOS offered to open the URL in my app as expected.
Unfortunately, once the app opened, the documented method for receiving the URL was never called.
Based on the information in this thread, it appears that "custom URLs" may be deprecated or out of favor. So I have now implemented "universal links", following all the steps Apple provides in the document you linked to above. This includes placing the necessary JSON file at a domain I control, and I have confirmed that it's accessible. I also set up entitlements in my project, with "applinks" URLs specified.
In the doc you linked to, the method under "how to handle a universal link in iOS and tvOS" is also never called if I place it in my application struct. I mean this one:
func application(_ application: UIApplication,
continue userActivity: NSUserActivity,
restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool
So as recommended in this thread, I put the onOpenURL(perform:) modifier on my root view instead. That doesn't get called either.
Neither of those is surprising, though, because when I go to Safari and enter a URL conforming to one specified in my project's applinks domain entitlements, I am not asked if I want to open the URL in my app (as I used to be with "custom URL scheme").
So the question is why I'm not being asked to open the URL in my app. If I look in my project settings, I do not see an application ID similar to the "ABCDE12345" one in the JSON above. Is that potentially the problem?