早速ですが、まずはこの映像をご覧ください。
映像では Safari が仮想デスクトップを乗り越えて表示されていますね。(ちなみに Mac の仮想デスクトップの正式名称は「Mission Control」と言うそうです。)
実はこの挙動は正しいものではありません。本来であれば次の映像にあるように、仮想デスクトップをまたいでアプリケーションが表示されることなどあり得ないのです。
こんな感じで、ボクの M1 MacBook Air はいつの間にか Safari だけが、なぜか仮想デスクトップを乗り越えた自己主張の激しい子になっていました。
とても不便を強いられる不具合なので、今回はこれを解消します。
結論: ユーザーを作り替えるか Mac を再インストールするかの 2 択
初めに結論を書いておくと、見出しに記した通り解決法は 2 通りでした。
- ログインユーザーを作り変える
- macOS を再インストールする
Apple サポートに問い合わせた結果、このように宣告されてしまいました。正直「結局力技かよ」と、ガッカリする感の否めない解決策ですよね。
ただ、Appleサポートによる不具合の原因切り分けステップが Mac ならではなもので新鮮味に溢れ、面白かったので記しておこうと思います。
検証 1: まずは自力で検証。他の Mac でも再現するのか問題
まずはボクの Safari の挙動が、本当に不具合なのかどうかを自力で検証します。
検証方法はシンプルです。不具合が起きているメイン機と、もう一台持っている Mac 2 台を使用して、これら 2 台どちらでも発生する現象なのかどうかを確認します。
試してみたところ、2 台目のサブ Mac では件の現象が発生しませんでした。念には念を入れて知り合いの Mac でも同様の操作をしてみてもらったところ、やはり再現しないとのこと。
Safari の「環境設定…」や、「システム環境設定」の設定値もひとつづつ見比べて確認して、設定を揃えるなど試してみたものの、いずれも効果がありませんでした。
以上の結果から、ボクのメイン Mac にのみ発生している固有の不具合であると断定しました。
ということで、満を持して「Apple サポート」に問い合わせることに。今回はチャットを使ってサポートの方とコミュニケーションします。
ちなみに Apple サポートには、Apple 公式ウェブサイトからコンタクトを取ることができます。
検証 2: Apple サポートによる、Mac 特有の原因切り分けステップ
STEP 1: 他の Mac で再現されるかの確認
まずサポート担当の方から提示されたのが、再現性の検証です。
シリアルナンバーで Mac の型番と、macOS のバージョンを確認したのち、サポート担当者の手元にある同一環境で不具合が再現されるかどうかを試すというものです。
・デスクトップ (1) で Safari を開いた状態で、デスクトップ (2) に切り替える。
・デスクトップ (2) の画面で Safari を開くと、デスクトップ (1) に戻り開いていた Safari の画面になる。
こちらでは、上記のような挙動となりましたが、同じ挙動になっておりますでしょうか?」
いいえ、違います〜。それが正しい挙動ですよね〜。というか言いづらいんですけどこのステップ、もう自力で完了しているんです〜〜。
と、ちょっと気まずい雰囲気になってしまいました。
ここで分かったことは、Apple サポートにはユーザー側で簡易な検証をせずとも、何か不便に感じたことがあれば気軽に相談して良いものだということです。
今、まさにお困りの症状に悩まされているそこのあなた。今すぐAppleサポートへGO!
STEP 2: システム環境設定「Mission Control」の設定を調べよう
閑話休題。
続いてサポート担当の方が次なる原因切り分けに打って出てきました。
では、システム環境設定の中にある、「Mission Control」の設定について確認してみましょう。
チェックボックスが 4 つあるうち、どこにチェックがついているか教えてください。
——あら、わたくしの環境と同じ設定ですわね……おっかしいですわ〜〜
そうなんです〜。これももう試してるんです〜。サポート担当者も困り果ててついお嬢様口調になってしまっていますわ〜〜。
ちなみに、Mission Control の設定値は以下の通り。初期値から変えていません。
STEP 3: スペシャリストの登場
ご不便をおかけし申し訳ございません😣💦
今回の症状につきまして、お調べさせていただきましたが、何か明確にご案内できる情報が見つからない状況でございました。
つきましては、ご希望であればスペシャリストにてさらに詳細なサポートをさせて頂きたく存じますが、いかがでしょうか? (原文ママ)
Apple サポートとチャットをするとそれなりの頻度で絵文字を混ぜてきます。かわいいですよね。
ということで、一般受付では対応しきれない問題なので、より詳しいスペシャリストと一騎討ちすることになりました。
スペシャリストとのやりとりはチャット不可。電話でなければならないそうなので、電話番号をお伝えしてしばらく待ちます。
待つこと 2 分ほど。ついに電話かかってきました。
どうも、Apple スペシャリストです。
か、カッケー!
STEP 4: セーフモードで試す
とりあえず挙動を確認したいんで、今からリモートデスクトップをつなぎます。
通知が届くと思うので、許可してください。
と同時に [AppleCare が画面の表示を求めています] のポップアップが画面上に登場しました。
許可をして、リモートデスクトップが開通。実際に一通りの操作を行いながら、スペシャリストに不具合の挙動について説明をしました。するとスペシャリストはこのように言いました。
まずはセーフモードでも同様の現象が発生するか、試してみましょう。
確かにこれまでの検証手順ではセーフモードを試していませんでした。早速試すことに。
M1 MacBook Air におけるセーフモードの起動方法はこちらの記事をご覧ください。
セーフモード上で Safari を起動して、通常起動時と同様の手順で仮想デスクトップを絡めた挙動を確認してみます。
結果、残念ながらセーフモードで試しても何も変わらず、不具合は起こったままでした。
STEP 5: 新規に「管理者ユーザ」を作成して試す
では続いて新規に「管理者ユーザ」を作って、そのユーザの挙動を見てみましょう。
このステップが個人的に感動したポイントです。なるほど、新規ユーザですか。
Windows の不具合検証では (少なくともボクは) 試したことのない手法ですから、とても斬新に感じました。
というわけで早速やってみましょう。
Mac で新規ユーザを作る方法はこちらををご覧ください。
とりあえずユーザ名からパスワードまで全て「test」とした仮アカウントを一時的に作成しました。メインアカウントからログアウトして、test アカウントでログインし直します。
そして Safari を起動して、仮想デスクトップを試してみると……。
Safari がついてこない!!!!!!
なんと正常に動作しました。
あー、なるほど。
では元のメインユーザに戻って、もう一度試してみましょう。
あくまで冷静なスペシャリストさん。言われた通り元のユーザに戻って再度試してみましたが結果は……ダメみたいですね。
ダメみたい?
はい。
ふ〜ん……
STEP 6: ユーザの作り直しか再インストールで対処しましょう
このような経緯で冒頭の結論に戻ってくるわけです。
今回の場合、ユーザ設定の深いところの設定に不具合が生じていると考えられます。
残念ながら、対処方法はユーザの作り直しか、macOS の再インストールしかありません
一体なぜ深いところがやられてしまうのでしょう。これがわからない。
というか、Windows であればレジストリの修正などでどうにでもなりそうな問題のように感じました。Mac にはそのような設定を確認や変更する手法は無いのですか?
申し訳ないのですが、ありません。
無いらしいです。一応「/usr」ディレクトリを覗くとそれっぽい感じに設定フォルダやファイルが散見されますが、本格的に OS が壊れてしまうとそれはそれでまた困ってしまいますから、今回は触らずにおきました。
結局今回は、macOS を初期化することを選択しました。無事解消しています。
教訓 – 新規ユーザ追加で原因を突き止めることができる場合がある
今回の教訓は、「新規ユーザの追加」という行為が不具合の原因の切り分けに有効であることがわかったことでした。
まあ、ユーザの切り替え確認を強いられている時点でどちらにしても「ユーザの作り直し」以上の対処は避けられない気がしますが、それでも原因が特定できている分、何もわからず「OS 再インストールですー」とか、「本体交換ですー」となるよりもほんの少しだけマシですね。
慣れない初期化はちょっとだけハードルが高い
Windows で初期化は日常茶飯事だったので、「あーはいはい」と息をするように初期化作業を進めることができていました。
しかし、ボクは Mac で初期化をした経験があまり多くありません。そのため Mac の初期化には少しの心理的抵抗があります。
また、NAS の設定やヘッドホンアンプドライバのインストールなど、比較的導入が億劫な周辺機器が増えていることも初期化の面倒臭さに拍車をかけています。
もっと気楽に初期化ができるように、ファイルのバックアップだけでなく、周辺機器などの導入手順をまとめておくべきだなあと自戒の念を込めながら、今回の記事を締めくくります。