デバッグ操作のショートカットキー
Cmd + Shift + y | デバッグエリアの表示/非表示を切り替えます。 |
Cmd + Y: | デバッガを起動/停止します。 |
F7 | ステップイン (デバッグ中にコードを一行ずつ実行) します。 |
F8 | ステップアウト (デバッグ中に現在の関数から抜け出す) します。 |
F6 | ステップオーバー (デバッグ中に次の行へ進む) します。 |
Ctrl + Cmd + Y | デバッグ中に処理を続行します (Continue)。 |
Cmd + Shift + D | デバッグナビゲータを表示し、選択したビューをハイライトします。 |
Cmd + 0 | ナビゲーターエリアを表示します。 |
Cmd + Opt + 0: | ユーティリティーエリアを表示します。 |
| Control + Shift + ↑ or ↓ | 複数行同時入力状態に出来ます。 |
ビルドクリーン
| ショートカット | Shift + Command + K |
| GUI操作 | Xcode上部 Product >> Clean Build Folder |
プレビューリセット
Macターミナルコマンド、下記を全部実行する。
|
1 2 3 4 5 |
xcrun simctl --set previews delete all rm -rf ~/Library/Developer/Xcode/UserData/Previews rm -rf ~/Library/Developer/CoreSimulator/Caches |
プレビュー(#Preview)の仕様(コメントアウトしたのにプレビューが止まらなかった)
その現象は、SwiftUIのプレビュー機能の仕様によるものであり、通常はあなたの書いたプログラムにおけるメモリリークの可能性を示すものではありません。
#Preview マクロ(以前の PreviewProvider)は、Xcodeが提供する特別な開発ツールであり、通常のアプリの実行とは異なるライフサイクルを持っています。
1. 独立した実行プロセス
Xcodeのプレビューキャンバスで表示されるビューは、メインのアプリとは別の独立したプロセスで実行されています。このプロセスは、ビューのコードが変更されるたびに再コンパイルされ、リフレッシュされます。
2. コード変更の検出
#Preview ブロックをコメントアウトした場合、Xcodeは「プレビューを提供するビュー」の定義が消滅したと解釈します。
- 直後の挙動: プレビューキャンバスに表示されていたビューは消えますが、ビューの裏側で動いていた実行プロセス自体がすぐに完全に終了するとは限りません。特に時間がかかる非同期処理(
taskモディファイアなど)が動いていると、そのプロセスはしばらくの間残ることがあります。 .task{}の性質:.task{}モディファイア内の非同期処理は、そのビューのライフサイクル(Viewが画面から消える時)と結びついて自動的にキャンセルされますが、プレビュー環境自体がクリーンアップされるまでにはタイムラグが発生することがあります。
3. 解決策(プレビュー環境の強制終了)
もしバックグラウンドの処理を完全に停止したい場合は、以下の操作でプレビューの実行環境を強制的に終了・リセットできます。
- Xcodeのリスタート: 一番確実な方法です。
- プレビューの一時停止と再開: プレビューキャンバス上部にある「ライブアクティビティ」のボタン(再生/一時停止アイコン)を操作して、プレビューセッションをリセットします。
- SwiftUI Viewファイルの保存: ファイルを保存し直すことで、リフレッシュがトリガーされることがあります。
メモリリークの可能性について
メモリリークは、通常、クラスインスタンス(特にクロージャ内で self をキャプチャする場合)で循環参照が発生したときに、メモリが解放されずに残り続ける現象です。
今回の現象(コメントアウト後に処理が動く)はプレビュー環境の挙動であり、struct であるViewのライフサイクルや**.task の自動キャンセル**といったSwiftUIの基本的な設計が原因であるため、直ちにメモリリークを疑う必要はありません。
もしメモリリークを心配される場合は、アプリをSimulatorや実機で実行し、XcodeのDebug Navigator(または Instruments)でメモリ使用量を監視して確認するのが正しいデバッグ方法です。
シミュレータアプリのメニューからリセットする(一番簡単)
- Xcodeを起動し、メニューバーから “Xcode” > “Open Developer Tool” > “Simulator” を選択してシミュレータを起動します。
- シミュレータアプリが起動したら、シミュレータのメニューバーから “Device” > “Erase All Content and Settings…” を選択します。
- 確認ダイアログが表示されるので、“Erase” をクリックします。
これで、選択したシミュレータのデータ(アプリ、設定、キャッシュなど)がすべて初期化されます。
|
1 2 3 |
//Bash xcrun simctl erase all |
アーカイブ作成
上部タブ Product → Archive
プロジェクト整理
Xcodeの上部ツールバーより「File」->「Open Recent」->「Clear Menu」を選択。これでスタートメニューからプロジェクト名の削除。
Xcodeアンインストール
|
1 2 3 4 5 6 7 8 9 10 11 |
sudo rm -rf /Applications/Xcode.app sudo rm -rf /Library/Preferences/com.apple.dt.Xcode.plist sudo rm -rf ~/Library/Preferences/com.apple.dt.Xcode.plist sudo rm -rf ~/Library/Caches/com.apple.dt.Xcode sudo rm -rf ~/Library/Application Support/Xcode sudo rm -rf ~/Library/Developer/Xcode sudo rm -rf ~/Library/Developer/CoreSimulator sudo rm -rf /System/Library/Receipts/com.apple.pkg.XcodeExtensionSupport.bom sudo rm -rf /System/Library/Receipts/com.apple.pkg.XcodeExtensionSupport.plist sudo rm -rf /System/Library/Receipts/com.apple.pkg.XcodeSystemResources.bom sudo rm -ff /System/Library/Receipts/com.apple.pkg.XcodeSystemResources.plist |
Xcodeプロビジョニング場所
‘/Users/ユーザー名/Library/MobileDevice/Provisioning Profiles’
Xcode16から↓
~/Library/Developer/Xcode/UserData/Provisioning Profiles/

コメント