Encountered the same issue and eventually solved it by
Defining my unique ServiceType in the PeerToPeer handler (peertrack is fictional, use your own Type)
#define kMCSessionServiceType @“peertrack”
2. Making the following .plist entries:
<key>NSLocalNetworkUsageDescription</key>
<string>Exchange data with nearby devices running the PeerTrack app.</string>
<key>NSBonjourServices</key>
<array>
<string>_peertrack._tcp</string>
</array>
3. Executing the Service Advertiser and Service Browser (pseudo code)
.
.
[MCNearbyServiceAdvertiser alloc] initWithPeer:localPeerID discoveryInfo:nil serviceType:kMCSessionServiceType];
.
.
and
.
.
[[MCNearbyServiceBrowser alloc] initWithPeer:localPeerID serviceType:kMCSessionServiceType];
4. Compiled app with Xcode 12.0 beta and Xcode 11.5.
Successfully tested the code on multiple iPhone, iPad, and simulator devices, running iOS 9.0, iOS 13.5, and iOS 14.0 beta.
NOTE the	leading underscore (_) character in the .plist NSBonjourServices definition entry. Test failed without the leading underscore character, although not included in the kMCSessionServiceType used by MCNearbyServiceAdvertiser and MCNearbyServiceBrowser.
Hope that this is helpful to someone by cutting down on debug time.