Solved. It turns out that when you create a new Entitlements.plist file, Xcode doesn't know about it even though it shows up in the project navigator until you put it's path in the code-sign entitlements section of the Build Settings. Once I did this it worked in iOS 16.
Summary: Apply for entitlement with Apple (must be developer account's owner)
Receive approval from Apple
Add entitlement to app ID (under Additional Capabilities tab)
Make sure the Provisioning Profile uses that app ID and lists the entitlement
Add a Entitlements.plist to the Xcode project and set it's path in Build Settings
Put the entitlement name in Entitlements.plist file (com.apple.developer.device-information.user-assigned-device-name Boolean YES)
Build and run the app
Topic:
Privacy & Security
SubTopic:
General
Tags: