こんにちは、こばやしよしのり @yoshiii514 です。
Xcodeでシミュレータを実行したときに「Unable to boot device due to insufficient system resources」メッセージが表示され、実行が停止することがあります。その対応方法を解説します。
「Unable to boot device …」メッセージの意味
The current system settings are not sufficient to allow booting additional simulators: maxFiles:12288,openFiles:10790,enforceFilesBuffer:1868
Please see Simulator Help for information on adjusting resource limits.
maxFiles:12288,openFiles:10790,enforceFilesBuffer:1868 現在のシステム設定では、追加のシミュレータを起動するのに十分ではありません。
リソースの制限を調整する方法については、シミュレータのヘルプを参照してください。
シミュレータを起動したいのですが、実行するためにはリソースが足りていないです。足りていないリソースはファイルのオープン数です。
「insufficient system resources.(システムリソース不足)」への対策
シミュレータのヘルプページに対策が記載されています。そのヘルプページには次の手順でたどり着けます。
手順1.[Simulatorメニュー]->[Help]->[Simulator Help]
手順2.[目次]を出して->[Troubleshoot Simulator]->[Insufficient resources]
ヘルプページに書いてある対策をまとめると次のとおり。
- 起動しているムダなアプリケーションや実行しているプロセス(処理)を終了する
- シミュレータが複数起動している場合は終了する
- Macを再起動するまでシステムの制限値を上げる
動いているムダなアプリを終了するのが、一番簡単にシミュレータを動かす方法です。
「システムの制限値」については、次で解説します。
Macのシステムの制限値
「launchctl limit」というコマンドを叩くと、macOSの制限値の一覧が出力されます。
~ % launchctl limit
cpu unlimited unlimited
filesize unlimited unlimited
data unlimited unlimited
stack 8388608 67104768
core 0 unlimited
rss unlimited unlimited
memlock unlimited unlimited
maxproc 11136 16704
maxfiles 256 unlimited
僕のOSでは「maxfiles 256 unlimited」なので、soft(ソフト制限)が256ファイルオープン数、hard(ハード制限)がunlimited(無制限)という意味です。softとhardの違いは、softが一般ユーザが変更できる上限値で、hardはrootが変更できる上限値を意味します。
この上限値を次のコマンドで一時的に変更します。今回はファイルオープン数の上限値を無制限にします。「sudo」をつけて、root権限で変更します。
~ % sudo launchctl limit maxfiles unlimited unlimited
~ % launchctl limit maxfiles
maxfiles 10240 10240
これは一時的なので、OSを再起動するともとの上限値に戻ります。
これでシミュレータが起動できます。
この記事がお役に立てましたら、ぜひTwitterで感想をお聞かせください😊
![「体験しながら学ぶ」最短での脱初心者カリキュラムiPhoneアプリ開発集中講座[オンライン版]Mac・Xcode12・iOS14・Swift5.3・SwiftUI完全対応](https://ticklecode.com/wp/wp-content/uploads/2021/01/OGP_new_1-800x420.png)
「体験しながら学ぶ」ことで、最短での脱初心者を目指すアプリ開発講座です。
【本講座に含まれているもの】
・全額返金保証
・Swift文法解説
・SwiftUI完全対応
・サンプルアプリ6本作成
・チャットサポート(Slack)
執筆陣が徹底解説、サポートをします💪
【先行ユーザー特典!先着10名様40,000円OFF】 iPhoneアプリ開発集中講座[オンライン版]