xcrun simctl unpairは、xcrun simctl pairでWatchとiPhoneをペアリングする で作成したWatchとiPhoneのペアを解除するサブコマンドである。

基本的な使い方

unpair <pair UUID>の形式で、list pairsで確認できるペアのUUIDを指定して実行する。

$ xcrun simctl list pairs
== Device Pairs ==
BFA5CAA4-FF2D-4AD1-8B90-EF849C01388A (active, disconnected)
    Watch: TIL Unpair Watch A (1F59A448-B56F-4ECA-B1AC-CB263E072E89) (Shutdown)
    Phone: TIL Unpair iPhone (F64E014A-CBA5-407B-A8A4-73E7E09CF27C) (Shutdown)

$ xcrun simctl unpair "BFA5CAA4-FF2D-4AD1-8B90-EF849C01388A"

$ xcrun simctl list pairs
== Device Pairs ==

解除してもWatch・iPhoneのデバイス自体は削除されず、list devicesにはそのまま残る。

$ xcrun simctl list devices | grep "TIL Unpair"
    TIL Unpair iPhone (F64E014A-CBA5-407B-A8A4-73E7E09CF27C) (Shutdown)
    TIL Unpair Watch A (1F59A448-B56F-4ECA-B1AC-CB263E072E89) (Shutdown)

起動中でも解除できる

参考: xcrun simctl pairでWatchとiPhoneをペアリングする

Watch・iPhoneが起動中(Booted)のままでも、unpairはエラーにならず解除できる。

$ xcrun simctl list pairs
== Device Pairs ==
BFA5CAA4-FF2D-4AD1-8B90-EF849C01388A (active, disconnected)
    Watch: TIL Unpair Watch A (1F59A448-B56F-4ECA-B1AC-CB263E072E89) (Booted)
    Phone: TIL Unpair iPhone (F64E014A-CBA5-407B-A8A4-73E7E09CF27C) (Booted)

$ xcrun simctl unpair "BFA5CAA4-FF2D-4AD1-8B90-EF849C01388A"

$ xcrun simctl list devices | grep "TIL Unpair"
    TIL Unpair iPhone (F64E014A-CBA5-407B-A8A4-73E7E09CF27C) (Booted)
    TIL Unpair Watch A (1F59A448-B56F-4ECA-B1AC-CB263E072E89) (Booted)

デバイスは起動状態を保ったまま、ペアだけが解除される。

引数にはペアのUUIDだけを指定できる

unpairの引数には、list pairsで確認できるペアのUUIDだけを指定できる。 Watch/iPhoneのデバイス名を指定するとエラーになる。

$ xcrun simctl unpair "TIL Unpair Watch B"
Invalid device pair: TIL Unpair Watch B

存在しないペアUUIDを指定した場合や、既に解除済みのペアUUIDを再度指定した場合も、同じInvalid device pairエラーになる。

activeなペアを解除しても、残りのペアは自動でactiveにならない

1台のiPhoneに複数のWatchをペアリングしている場合、xcrun simctl pair_activateで作成済みのペアをアクティブにする で触れたとおり、実際に連携するペアは1つ(active)だけである。 activeなペアをunpairで解除すると、残ったペアがあっても自動的にはactiveへ切り替わらず、inactiveのままになる。

$ xcrun simctl list pairs
== Device Pairs ==
7C5BB3FF-21CC-4877-B967-C697A7B7478B (active, disconnected)
    Watch: TIL Unpair Watch A (1F59A448-B56F-4ECA-B1AC-CB263E072E89) (Shutdown)
    Phone: TIL Unpair iPhone (F64E014A-CBA5-407B-A8A4-73E7E09CF27C) (Shutdown)
42251E22-E364-4E56-9DDC-A941AB91B56D (inactive, disconnected)
    Watch: TIL Unpair Watch B (EB638FE1-C320-4159-8FF4-FE688BD6A1CC) (Shutdown)
    Phone: TIL Unpair iPhone (F64E014A-CBA5-407B-A8A4-73E7E09CF27C) (Shutdown)

$ xcrun simctl unpair "7C5BB3FF-21CC-4877-B967-C697A7B7478B"

$ xcrun simctl list pairs
== Device Pairs ==
42251E22-E364-4E56-9DDC-A941AB91B56D (inactive, disconnected)
    Watch: TIL Unpair Watch B (EB638FE1-C320-4159-8FF4-FE688BD6A1CC) (Shutdown)
    Phone: TIL Unpair iPhone (F64E014A-CBA5-407B-A8A4-73E7E09CF27C) (Shutdown)

Watch Bのペアが唯一残ったペアになった後もinactiveのままであり、実際に使うにはpair_activateで明示的に切り替える必要がある。

ペアに参加しているデバイスをdeleteすると、ペアも一緒に削除される

unpairせずに、ペアに参加しているデバイスをそのままxcrun simctl deleteでiOSシミュレータデバイスを削除する で削除しても、エラーにはならない。

$ xcrun simctl list pairs
== Device Pairs ==
42251E22-E364-4E56-9DDC-A941AB91B56D (inactive, disconnected)
    Watch: TIL Unpair Watch B (EB638FE1-C320-4159-8FF4-FE688BD6A1CC) (Shutdown)
    Phone: TIL Unpair iPhone (F64E014A-CBA5-407B-A8A4-73E7E09CF27C) (Shutdown)

$ xcrun simctl delete "TIL Unpair Watch B"

$ xcrun simctl list pairs
== Device Pairs ==

$ xcrun simctl list devices | grep "TIL Unpair"
    TIL Unpair iPhone (F64E014A-CBA5-407B-A8A4-73E7E09CF27C) (Shutdown)

Watch Bを削除すると、事前にunpairしていなくてもペア自体が一覧から消える。 CIなどでテスト用デバイスをまとめて片付ける場合、ペアの解除を意識せずにdeleteだけで済ませられる。