Macのログイン項目とバックグラウンドタスクを管理する
macOS 13より前では、ヘルパー実行可能ファイルのアプリケーション設計プロセスの一部に、サービスの種類に基づいて特定のディレクトリに1つまたは複数のプロパティリストをインストールするスクリプトが含まれていました。macOS 13以降では、アプリバンドルの構造が新しくなり、ログイン項目と関連するプロパティリストのインストールが簡素化されています。これは、以前のバージョンのmacOSのヘルパー実行可能ファイルをアップデートすることによって実現しています。このフレームワークは、Macでログイン項目、起動エージェント、および起動デーモンを構成するときに、ユーザに対して透明性を作り出すために使用されます。このフレームワークでは、SMAppService
オブジェクトを使用して、アプリのメインバンドル内に存在するヘルパー実行可能ファイルを制御します。また、アプリのヘルパー実行可能ファイルとしてログイン項目、起動エージェント、および起動デーモンを登録し制御するために使用でき、インストール方法に関係なくあらゆる種類のアプリで使用できます。
ヘルパーアプリおよび実行可能ファイルを導入する
組織は、新しい構成ペイロードを使用して、指定された項目を構成することができます。ペイロードコンテンツはディクショナリの配列であり、それぞれのディクショナリが1つ以上の潜在的な項目に対するルールを指定します。ルールに一致した最初の項目がインストールされるときに、管理対象項目がインストールされていることが管理者に通知されます。ルールに一致する項目をあとからインストールしても、その日(最初の通知から24時間後)のリマインダーには追加の通知が作成されません。項目が検出され、この構成を使用して管理されるようになると、バンドルされたアプリで新しいフレームワークを利用するために、管理者とユーザはアプリベンダーと内部のツーリングチームにフィードバックを提出する必要があります。
このペイロード内で管理されるアプリのエンドユーザ通知は、管理対象項目がインストールされていてシステム設定で確認できることをユーザに知らせる単一の通知によって処理されます。この通知が画面に残っている間は、ほかの管理対象項目の通知は発生しません。この通知が閉じられた場合、それ以降の管理対象インストールでは、もう一度ユーザに通知されます。通知が「スヌーズ」された場合、選択した時間(1週間または1日)の終わりまで、ログイン項目、起動エージェント、起動デーモンについての通知は行われなくなります。
バックグラウンドタスク管理を使っているアプリを識別する
管理者は、自分の組織で導入されているヘルパーアプリや実行可能ファイルを使用する項目に注意する必要があります。どのような項目が導入され、新しいフレームワークに登録されているかを確認するために、標準的な導入ワークフローをテストし、得られた構成で該当する項目を分析します。例を示します:
macOS 14以降で利用できるバックグラウンドタスク用の宣言型ステータスレポートを使用します。
「システム設定」>「一般」>「ログイン項目」と選択して、新しいフレームワークに登録されている項目のリストを表示します。起動中の項目を確認するには、「情報」ボタンをクリックします。
コマンドラインツールを使用して、重要なシステム情報の収集、テスト用のデータのリセット、コンソールおよびターミナルアプリを使用したアクティビティの監視を行うことができます。
sfltool dumpbtm: ロードされた
servicemanagement
ペイロードUUIDを含むログインおよびバックグラウンド項目の現在のステータスを出力します。このコマンドの出力は、「フィードバックの報告」セクションに記載されているほかの項目と一緒に、提出するフィードバックに含める必要があります。sfltool resetbtm: ログインおよびバックグラウンド項目のデータをリセットします。テストとテストの間にこのコマンドを使用する場合は、コンピュータの再起動も行うことをおすすめします。
コンソールでログインおよびバックグラウンド項目の管理アクティビティを監視するには:
subsystem:backgroundtaskmanagement
とcategory:mcx
でフィルタするか、以下のコマンドを使ってターミナルでログをストリーミングします。log stream --debug --info --predicate "subsystem = 'com.apple.backgroundtaskmanagement'and category = 'mcx'"
AppleSeed for ITで入手できるMac Evaluation Utilityバージョン4.3.0以降には、
sfltool dumpbtm
と同じく、詳細情報を返すテスト結果を生成する機能があります。ログイン項目、起動エージェント、および起動デーモンに対するこれらのテストでは、macOSのログインおよびバックグラウンド項目の管理を利用して、現在インストールされているアプリケーションを報告します。これらのテスト結果は、その他のMac Evaluation Utilityテストと共に、インラインでフォーマットされます。また、区切り文字付きのテキストファイルとして書き出して、さらに分析することができます。
バックグラウンドタスク管理用のXML構成プロファイルを使用する
XML構成プロファイルを使用してバックグラウンドタスクを管理できます。これを行うと、すべての項目がすべてのルールタイプと比較されます。項目がルールに一致すると、その項目は自動的に承認されます。照合の際に考慮されるルールタイプは以下の通りです:
Application BundleIdentifier: 一致するアプリケーションのバンドル識別子(バンドルIDとも呼ばれます)。完全一致である必要があります。
Application BundleIdentifierPrefix: 一致するアプリケーションのバンドルIDプレフィックス。
Developer TeamIdentifier: コード署名属性からのチームID。完全一致である必要があります。
Service Label: 一致する
launchd
.plist Labelパラメータの値。完全一致である必要があります。Service LabelPrefix: 一致する
launchd
.plist Labelパラメータのプレフィックス。
詳しくは、バックグラウンドタスク管理の例と、管理対象ログイン項目MDMペイロードの設定を参照してください。
その他のアプリケーションからの属性
Appleでは、attributions.plist
という名前の環境設定ファイルを管理しています。このファイルには、多くのアプリケーションのヘルパーアプリケーションや特定のアプリケーションでよく使用される実行可能ファイルが含まれています。この情報は、起動時にユーザのログイン項目に表示されるヘルパーアプリケーションや実行可能ファイルを特定するために利用できます。これらの共通項目とその属性の詳細について詳しいリファレンスは、次の場所にあるファイルを確認してください:
/システム/ライブラリ/PrivateFrameworks/BackgroundTaskManagement.framework/Versions/A/Resources/