プログラマ・アゲイン blog

還暦を過ぎたけどプログラマ復帰を目指してブログ始めました

Xcode 13.4.1 の Debug Areaに何も表示されません

以前から興味はあったのですが、仕事でWindows PCを使用している関係からMac OSは敬遠していました。

しかし、iPhoneのアプリケーションを開発したくて、初めてAppleMacBook Air M1を購入しました。

実際に使ってみるとかなりWindowsとは違っていて、キーボードやアプリケーションの起動・終了、日本語入力時の予測、DELキーが無いなどなど、のちょっとした違いに戸惑うことも多いのですが、概ね使い易くて良いなと感じてます。

前置きはこれぐらいにして、iPhoneのアプリケーションを開発するために、以下の本を購入しました。

Xcode 13対応のバージョンを購入すれば良かったのだけど、Xcode 12対応の本だったので、途中の説明で躓いてしまいました。

プログラムのデバッグをする上で、Debug Previewの機能は必須だと思うのですが、コードの中にprint文を記述してもDebug Areaに何も表示されません。

上記の本のPointに、「Xcode12の[Debug Preview]は正常に機能しません。のちのバージョンアップで不具合が解消されるはずですので、本書では正常に動く前提で解説します。正常に出力されない場合は、シミュレータで動作確認をお願いします。」と記述されています。

色々調べてみたのですが今一つ該当しそうになく、結局シミュレータで表示させることはできたので、それを記録しておきます。

バージョン

mac OS

MacBook Air M1のmac OSのバージョンは、Monterey 12.4でした。

Xcode

前述の参考本に従って、Xcodeを導入しました。

2022年5月にXcodeを導入したのですが、導入されたバージョンは 13.4.1 でした。

どうしても導入した時期にバージョンが依存してしまうのは仕方がないですが、参考本とバージョンが違うのはちょっと困り物です。(T T)

こういう参考本を購入するのなら、やはり最新版が良かったです。

Simulator

最終的にシミュレータでDebug Areaに表示することが出来たのですが、シミュレータのバージョンも同じ 13.4.1 でした。

とりあえず調べました

Webでググると、結構Debug Areaに表示されないという情報がヒットします。

しかし、Xcode 13 ということでは、ピッタリのものがありません。

次のように、全く同じような問題を経験されている方もいるのですが、やはりバージョンが違うのと、私の場合は (lldb) すら出てきません。

teratail.com

ログインシェル

次のページも該当しそうなのですが、「(couldn't create a ClangImporter) Cannot create Swift scratch contextと表示され」という現象は出ていません。

ulog.sugiy.com

このページを参考に、Xcodeが参照しているShellのパスを確認しようとしたのですが、どこに設定されているのか分かりませんでした。

システム環境設定→ユーザーとグループ→(ロックを解除)→ユーザーを右クリックして詳細オプション→ログインシェル と確認すると、「/bin/zsh」になっています。

Finderで確認すると、「/bin/zsh」は存在していました。

/usr/local/bin/zsh となっていると書かれていますが、mac OSのバージョンのせいでしょうか /bin/zsh で問題ないのかなと、取り敢えず判断しました。

$PATH

次のページでは、環境変数の設定を変えたらと書かれているようです。

stackoverflow.com

そこで、$PATH環境変数をターミナルで確認してみました。

echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin

/bin のハスが入っているので、これも問題ないと判断しました。

 

シミュレーダだと表示されました

結局、色々やっているうちに、メニューのProductからRunを実行したのか、シミュレータを起動していました。

そこで、下記の画面の左側のシミュレータの方で動かしてみると、printの内容がDebug Areaに表示されました。

分からないメッセージが続いて出てきましたが、取り敢えずこれでデバッグは出来そうです。

 

忘れないうちに、プログに記録しておこうと思いました。

しかし、これから勉強していけば、別の解決策が見つかるかもしれません。

その時には更新したいと思います。