Xcodeでの「Failed to initialize logging system」エラー解決方法
Logging Error: Failed to initialize logging system. Log messages may be missing.
というエラーは、主にXcode 15以降でSwiftプロジェクトを実行した際に発生します。このエラーはログシステムの初期化ができず、実行速度が低下する原因となります。以下の解決法を順に試してください。
🛠 【解決策1】環境変数を追加する
最も効果的な解決法はIDEPreferLogStreaming
環境変数を追加することです。
設定手順:
- Xcodeで
Product
→Scheme
→Edit Scheme
を選択 - 左ペインから
Run
を選択 Arguments
タブのEnvironment Variables
セクションへ移動- ➕ボタンをクリックして新規変数を追加:
- Name:
IDEPreferLogStreaming
- Value:
YES
- Name:
Close
で設定を保存
⚠️ 注意: この設定後、一度Xcodeを完全に再起動してください。
⚡ 【解決策2】追加環境変数の設定
上記で解決しない場合、さらに2つの環境変数を追加します。
txt
IDELogRedirectionPolicy=oslogToStdio
OS_ACTIVITY_MODE=disable
設定場所:
- 同じ
Environment Variables
エリア内で追加 - 各変数を別々の行に設定
🧹 【解決策3】テストターゲットの整理
不要なファイルがテストターゲットに含まれていると発生することがあります。特にXcodeのバージョンアップ後(例: 15.2→15.3)に顕著です。
- プロジェクトナビゲーターでターゲットを選択
Build Phases
→Compile Sources
を開く- 各テストターゲット(UnitTests/UITests)について:
- メインターゲットのファイルが含まれていないか確認
- テスト対象のファイル(*Tests.swift, *UITests.swift)のみ残す
- 不要ファイルを➖で削除
💎 推奨アプローチ
以下の順序で試すことを推奨します:
IDEPreferLogStreaming=YES
の追加 → 90%のケースで解決- 効果がない場合追加環境変数設定を実施
- Xcodeバージョンアップ直後の場合はテストターゲットの整理
なぜ発生するのか?
このエラーの根本原因は:
- Xcodeのログストリーミングシステムの不具合
- テストターゲットのリソース競合
- 大規模プロジェクトでのリソース割り当て失敗
最新版のXcodeへのアップデートでも完全には解消されていませんが、上記設定でほぼ確実に回避可能です。特にSwiftUIプロジェクトで頻発するため、環境変数の設定をチーム全体で共有することをお勧めします。