Xcode
iOS
rfc
MultipeerConnectivity

MultipeerConnectivityを使用した接続でserviceTypeに数値のみを設定するとクラッシュする


結論

設定できる条件は以下


  • 1文字以上、15文字以内

  • 使えるのは英数字とハイフン('a'-'z','A'-'Z','0'-'9','-')

  • 少なくとも1つの文字を含まなければならない('a'-'z','A'-'Z')

  • ハイフンで始まり or 終わりは不可

  • 連続したハイフンは不可


なぜ?

RFCによって定められています


数字だけを使うとどうなる?

実行時にクラッシュします😱


受信側.swift

let peer = MCPeerID(displayName: "MyDisplayName")

// 以下でクラッシュ
let nearbyAdvertiser = MCNearbyServiceAdvertiser(peer: peer, discoveryInfo: nil, serviceType: "111111")


送信側

let peer = MCPeerID(displayName: "MyDisplayName")

// 以下でクラッシュ
let nearbyBrowser = MCNearbyServiceBrowser(peer: peer, serviceType: "11111")

このように送信側、送信側どちらもクラッシュしてしまいます


最後に

serviceTypeを設定する際には気をつけましょう