Macでソフトウェアアップデートの通知を止める・保留させる方法

2020年5月27日に配信されたmacOS Catalina 10.15.5及びMojave/High Sierraセキュリティアップデート003ではターミナルによるソフトウェアップデート(macOSのアップデート)の通知の拒否(ignoreフラグコマンド)が廃止された。

2020年5月27日のmacOSアップデートによるignoreコマンド廃止の注意喚起

ここではignoreフラグコマンド廃止へのワークアラウンドとしてMacRumorsのフォーラムを参考にMacのソフトウェアアップデート通知を無効化または保留(遅延)させる方法を紹介する。

なお、App Store経由でソフトウェアアップデートが提供されるHigh Sierraでは本記事の方法でアップデート通知の無効化が可能だが、macOS Catalina以降の場合はソフトウェアアップデートを最大90日間保留するだけなので完全な解決法ではない。

なお、この方法はAppleのデベロッパーページで記載されている方法だが、Appleが仕様を変更すれば通用しなくなる可能性がある点に注意。

MacRumorsのbogdanw氏に感謝を

本題に入る前に今回の方法をMacRumorsのフォーラムで公開して頂いたbogdanw氏に感謝を申し上げる。

なお、この方法は2020年2月には既に公開されていたが、前述のアップデートでターミナルでのコマンドが廃止されて以降は再びこの方法に注目が集まっている。

MacRumorsの当該スレッドは下記のリンクから閲覧可能だ。

なお、当該スレッドにおいてはこの方法が100%有効であるかどうかは示されていない点に注意。

macOSでアップデート通知を無効化する手順

システム環境設定のソフトウェアアップデートのチェックを全てオフにする

まずシステム環境設定の「ソフトウェアアップデート」の項目を開く。

右下の詳細をクリック。

「自動的に行う操作」の項目を全てチェックを外してオフにする。

テキストエディットにコードを貼り付け保存する

続いてmacOSに最初からインストールされているテキスト編集ツール「テキストエディット」を起動しよう(Xcodeなどでも構わない)。

起動したら「新規書類」をクリック。

ウィンドウが開くので下記のコードをコピペする。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>PayloadContent</key>
    <array>
        <dict>
            <key>DisableSoftwareUpdateNotifications</key>
            <true/>
            <key>PayloadDescription</key>
            <string>Configures App Store settings</string>
            <key>PayloadDisplayName</key>
            <string>App Store settings</string>
            <key>PayloadIdentifier</key>
            <string>PayloadIdentifier2</string>
            <key>PayloadOrganization</key>
            <string></string>
            <key>PayloadType</key>
            <string>com.apple.appstore</string>
            <key>PayloadUUID</key>
            <string>PayloadUUID1</string>
            <key>PayloadVersion</key>
            <integer>1</integer>
        </dict>
    </array>
    <key>PayloadDescription</key>
    <string>Disable Software Update Notifications</string>
    <key>PayloadDisplayName</key>
    <string>Disable Software Update Notifications</string>
    <key>PayloadIdentifier</key>
    <string>PayloadIdentifier3</string>
    <key>PayloadOrganization</key>
    <string>Company Name</string>
    <key>PayloadScope</key>
    <string>System</string>
    <key>PayloadType</key>
    <string>Configuration</string>
    <key>PayloadUUID</key>
    <string>PayloadUUID2</string>
    <key>PayloadVersion</key>
    <integer>1</integer>
</dict>
</plist>

コードを貼り付けたらメニューバーの「ファイル」から「保存」をクリック。

保存ウィンドウ(ペイン)が開くのでファイル名を好きな名前にして拡張子に.mobileconfigと付けて保存する。

なお、もし上記の手順で正常に保存できなかった場合はApp StoreからXcodeをダウンロードしてXcodeで保存しよう。

プロファイルを実行してインストール

保存を実行すると歯車アイコンのプロファイルが生成されるのでダブルクリックして実行する。

「続ける」をクリック。

「インストール」をクリック。

上記ウィンドウが出たら「パスワードを使用」をクリックしてパスワードを入力するか、Apple Watchを付けている場合はApple Watchでロックを解除する。

上記画像のようにプロファイルがインストールされたら成功だ。

プロファイルをインストールすると新たにシステム環境設定に「プロファイル」という項目が表示される。

同様の手順を2つ目のコードでも繰り返す

続いて下記のコードで前述の方法と全く同じ手順でプロファイルを作成してインストールする。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>PayloadContent</key>
    <array>
        <dict>
            <key>PayloadDescription</key>
            <string>Configures restrictions</string>
            <key>PayloadDisplayName</key>
            <string>Restrictions</string>
            <key>PayloadIdentifier</key>
            <string>PayloadIdentifier3</string>
            <key>PayloadType</key>
            <string>com.apple.applicationaccess</string>
            <key>PayloadUUID</key>
            <string>PayloadUUID4</string>
            <key>PayloadVersion</key>
            <integer>1</integer>
            <key>enforcedSoftwareUpdateDelay</key>
            <integer>90</integer>
            <key>forceDelayedSoftwareUpdates</key>
            <true/>
        </dict>
    </array>
    <key>PayloadDisplayName</key>
    <string>SoftwareUpdateDelay</string>
    <key>PayloadIdentifier</key>
    <string>PayloadIdentifier3</string>
    <key>PayloadRemovalDisallowed</key>
    <false/>
    <key>PayloadType</key>
    <string>Configuration</string>
    <key>PayloadUUID</key>
    <string>PayloadUUID3</string>
    <key>PayloadVersion</key>
    <integer>1</integer>
</dict>
</plist>

最終的にシステム環境設定の「プロファイル」の項目が上記画像のようになればOKだ。

ターミナルでコマンドを実行する

続いてターミナルで以下のコマンドを実行する。

defaults delete com.apple.systempreferences AttentionPrefBundleIDs; killall Dock

これで以降はmacOSのソフトウェアアップデート通知が無効(High Sierra)・または90日間保留される(Catalina)。

なお、High Sierraに関してはアップデート通知は止まるもののApp Storeのバッジ(赤丸)は表示されてしまうことがある点に注意。

また、1つ目のプロファイルはmacOS High Sierra向けのプロファイルだが、macOS Catalinaにインストールしても特に弊害はないため、念のため僕は2つともインストールしている。

もし1つ目のプロファイルが不要だと思う場合は2つ目のプロファイルをインストールするだけでも構わない。

ちなみにこの操作によってDockアイコンの通知(バッジ)も消えるが、ソフトウェアアップデートをクリックすると再びバッジが表示されてしまうため、ソフトウェアアップデートはクリックしないようにしよう。

Dockのシステム環境設定のバッジが消えない・復活してしまう場合

ここまでの手順を実行してDockのシステム環境設定のバッジが消えない、あるいは復活してしまった場合は下記記事の「XcodeでDockのplistファイルを編集する」という項目を参照して頂きたい。

Mac・iPhoneなどでアプリの通知バッジが消えない場合の対処法

元に戻す場合はプロファイルをアンインストール

もし元の状態に戻す場合はシステム環境設定から「プロファイル」をクリック。

今回インストールしたプロファイルを選択して「-」ボタンをクリック。

「削除」をクリックして完了だ。

まとめ

この方法は100%どのアップデートでも有効というわけではないし、Appleが突如としてignoreフラグコマンドを無効化したことを考えると本記事の方法も次期アップデートで潰されてしまう可能性があるが、現時点では有効な方法と言えるものはプロファイルをインストールすることくらいなのでアップデート通知を止めたい人は試してみる価値はあるだろう。