init(displayName myDisplayName: String)
De Apple Docs:
Le al maximale La longueur inférieure est 63 octets en codage UTF-8.
Le paramètre displayName ne peut pas être nul ou chaîne vide.
Cette méthode déclenche une exception si la valeur displayName est trop long, vide ou nul.
Dans votre cas, vous passez udid + device name
qui dépasse la limite autorisée, à savoir 63 octets (63 caractères)
et jetteront une exception en disant:
Mettre fin application en raison de exception non interceptée 'NSInvalidArgumentException', raison: 'nom d'affichage invalide transmis à MCPeerID
Juste pour Debug:
impression lengthOfBytes
pour votre udid + device name
avant de le transmettre à init(displayName myDisplayName: String)
il dépasse certainement la limite autorisée.
print((UIDevice.current.name+udid).lengthOfBytes(using: String.Encoding.utf8))
où est le code ?? – Bilal