macOS で Visual Studio Code を使っていると、ときどき少し不思議な更新体験をします。更新通知が出たので実行したのに、すぐ再起動してもバージョンが変わらない。しばらくすると、突然「アプリを検証中」という表示が出て、その後に更新が反映される。この挙動に違和感を覚え、仕組みを調べてみることにしました。


1. 更新が反映されなかった
最初のきっかけは単純でした。Visual Studio Code に更新通知が表示され、「今すぐ更新」を押しました。その後すぐに再起動しましたが、バージョン情報は変わっていませんでした。操作を間違えたのかと思い、もう一度更新を確認しましたが状況は同じです。
そのまま作業を続けていると、しばらくして macOS のダイアログが表示されました。「“Visual Studio Code.app” を検証中…」。この表示が終わると、今度は確かに新しいバージョンになっていました。


なぜこのようなタイムラグが生じるのか。ここが最初の疑問でした。
1.1. Visual Studio Code の更新は「即時置き換え」ではない
調べてわかったのは、macOS 版 Visual Studio Code の更新は、その場でアプリを差し替える方式ではないという点です。
内部的には次のような段階を踏んでいます。
- まず、更新通知を承認すると、新しい Visual Studio Code.app がバックグラウンドでダウンロードされます。
この時点では、今使っているアプリはまだ何も変わっていません。 - 次に、ダウンロードしたアプリを展開し、差し替える準備をします。
ただし、macOS では起動中のアプリを安全に置き換えることができません。
そのため、この処理はアプリ終了後まで待たされます。
この仕組みのため、「更新した直後に再起動しても反映されない」という状態が起きます。再起動は更新のきっかけにはなりますが、完了を保証するものではありません。
1.2. バックグラウンドで行われているダウンロードと展開(Electronの自動更新)
Visual Studio Code は Electron というフレームワークで作られたアプリです。
Electron には自動更新の仕組みがあり、VS Code はそれを拡張して使っています。
更新時には、差分ではなくアプリ全体を ZIP 形式でダウンロードします。
いわば「完成品を丸ごと持ってくる」方式です。
ファイルサイズも大きいため、通信状況や CPU の負荷によっては時間がかかります。
この処理はユーザーから見えません。
進捗バーも出ないため、更新が止まっているように見える点が少し分かりにくいところです。
2. 「アプリを検証中」が表示される理由(Gatekeeper)
しばらくして表示された「アプリを検証中」という画面は、Visual Studio Code 自身の処理ではありません。これは macOS の Gatekeeper と呼ばれるセキュリティ機構が動いている状態です。
macOS では、インターネット経由で取得したアプリを実行する前に、次のような検証を自動で行います。開発元が正しいか、ファイルが改ざんされていないか、Apple の公証を受けているか、といった点です。
Visual Studio Code は Microsoft の Developer ID で署名され、Apple による notarization(事前検査)も受けています。そのため、ユーザーに確認を求めることなく、OS が自動で検証を行います。
アプリの規模が大きい場合、この検証に数十秒かかることがあります。今回表示された待ち時間も、この検証処理によるものでした。
2.1. 管理者権限や確認ダイアログが出ない理由
更新時に管理者パスワードや許可ダイアログが出なかった点も気になりました。しかし、これは macOS の設計上、自然な挙動です。
Visual Studio Code の更新で行われるのは、/Applications にあるアプリの置き換えだけです。初回インストール時にユーザー自身がアプリを配置できる以上、そのユーザーは書き込み権限を持っています。システム領域を書き換えるわけではないため、管理者権限は不要です。
また、署名と検証が自動で済んでいるアプリについては、毎回ユーザーに確認を求めない設計になっています。頻繁な確認は、かえって無意識の許可を招くためです。
2.2. この仕組みは安全なのか
一見すると、何も聞かれずにアプリが入れ替わるのは不安に感じます。しかし実際には、人の判断よりも機械的な検証に重きを置いた設計です。
もし悪意のある更新を行うには、Microsoft の署名、Apple の検証、公証の仕組みを同時に突破する必要があります。これは現実的には非常に難しく、リスクは低いと考えられます。
3. まとめとして見えてきたこと
今回の調査を通じて、macOS 版 Visual Studio Code の更新は、遅く感じることはあっても、仕組みとしては一貫していると分かりました。
バックグラウンドで準備を進め、アプリ終了後に安全に差し替え、OS が自動で検証する。この流れを知っていると、更新時に戸惑うことは減ります。
見えないところで多くの処理が動いている。その前提を理解することが、日常的な開発環境を安心して使う第一歩だと感じました。