What's new in Xcode 15 ざっくりまとめ
What's new in Xcode 15を視聴したときのメモです。詳しい情報、正確な情報は元動画を参照してください。
Xcodeアプリについて
今年はiOSやvisionOSを含む全てのシミュレターをオプションにしたことでXcodeアプリのサイズが小さくなった。DeveloperサイトからXcodeをダウンロードする場合は、どのシミュレータを含めるか事前に選択できる。
編集
コード補完
例えば新規ファイルを作成し、 struct と入力すると新規ファイル名がサジェストされる。

複数のデフォルトパラメーターを含む関数を呼び出す時、キーボードの右矢印を押すと、すべてのバリエーションが表示されるようになる。
→ 押下前 |
→ 押下後 |
|---|---|
![]() |
![]() |
また、コード補完が賢くなっており、例えば VStack に対して修飾子を追加するために . を入力すると padding がサジェストされる。 Text に対して . を入力すると font がサジェストされ、続けて . を入力すると、今度は bold がサジェストされる。つまり、あるビューに対して最も頻繁に使用される修飾子をトップに提案してくれる。
longitude と latitude のようなペアのプロパティの場合は、一方がすでに入力済みの場合は、次のサジェストではもう片方が出てくる。
アセットカタログ
Xcode 15が色と画像のシンボルを自動で生成することによって、コード補完、タイプチェックができるようになった。

ローカライズ
文字列カタログ(.xcstringsファイル)はローカライゼーションを1箇所にまとめることができる。
Edit > Convert to string catalogを選択すると使えるようになる。

移行するとローカライズファイルは1つのエディタに集約される。左のサイドバーで言語の切り替えができる。

文字列はビルドするたびにソースから読み取られ、文字列が追加されたり削除されたりすると警告が出るようになっている。
ドキュメント
ドキュメントが読みやすくなってる。

Editor > Assistant > Documentation Previewを選択するとリアルタイムプレビューもできるようになってる。

スクリーンショットを追加することもできる。

詳細はこちらの動画で確認することができる。
→Create rich documentation with Swift-DocC
Swiftマクロ
独自のマクロパッケージを作成して共有することもできる。パッケージを作成するにはcommand+Shift+Aを押して出てくるクイックアクションからNew > Packageを選択する。

マクロが何をしているか確認したいときは、クイックアクションからExpand Macroを選択する。
デバッグする必要があるときはマクロ内のコードにブレークポイントを設定することもできる。
詳細はこちらの動画で確認することができる。
→Expand on Swift macros
→Write Swift macros
プレビュー
#Preview で囲むとプレビューが表示されるようになる。複数のプレビューコードを書いた場合はタブで切り替えができる。プレビュータイトルを入力すればタブの名前が変わる。

UIKitとAppKitでもプレビューができるようになっている。

ウィジェットはタイムラインが見られるようになっている。

詳細はこちらの動画で確認することができる。
→Build programmatic UI with Xcode Previews
ナビゲーション
ブックマーク
ソースコントロールナビゲーターの隣にブックマークナビゲーターが新設されている。

追加は右クリックでできる。

注釈は編集できる。

並び替えもグループ化もできる。


左側をクリックすると完了としてマークできる。もちろん完全に削除することもできる。

検索結果をブックマークすることもできる。

ブックマーク横の更新ボタンを押せば再度検索結果を取得できる。

共有
ソースコントロールナビゲーター
変更があったファイルはファイル名の横にアイコンが表示される。未コミットのファイルを選択すると変更差分が表示される。もっと前後のコードを見たい場合は行数表示の前後にある灰色の「---」をドラッグすれば見られる。このソースコントロールエディタ上でもコードの編集ができる。

ステージングされた変更とステージングにしてない変更は見た目でわかるようになっている。ステージングへの変更はコード横のバーをクリックすることによってできる。

ステージングされた変更を解除したい場合もコード横のバーをクリックして行う。

コミットメッセージを入力し、コミットすることもできる。

ステータスインジケータからプッシュもできる。

テスト
テストナビゲーター
テストナビゲーターで気になるテストを見つけやすくなった。フィルターを使用して、任意の結果タイプに基づいてテストを見つけられる。

テストレポート
Xcode、またはXcode Cloudからテストを実行すると、テスト自体の要約が表示できる。

テストセクションではテストがどのように実行されたかを把握できる。

Insightsでは共通する失敗パターンを表示してくれる。

結果を返すのに時間がかかっている可能性のあるテストも警告してくれる。

Insightsの共通する失敗パターンが気になった場合は、詳細に見ることもできる。結果タイプ、実行先、テストプラン構成のフィルターを活用して、見たいテスト結果に移動できる。

詳細は個々のクラスで見るか、新しい専用テスト詳細ビューで確認できる。

テスト詳細ビューではすべての実行の内訳やパフォーマンスメトリクスタブなどのタブがある。

UIテストは新しいオートメーションエクスプローラで詳しく見られる。エクスプローラはインタラクティブで、テストを再生したりすることができる。タッチ/マウスイベントは青い丸で表現されている。テスト失敗時のUI階層は赤いエリアで表示されている。

詳細はこちらの動画で確認することができる。
→Fix failures faster with Xcode test reports
デバッグ
OSLog
Xcode15からOSLogが統合された。Xcode 15のコンソールでは、サブシステムカテゴリなどに合わせてフィルタリングすることができる。ログの背景色はseverityと連動している。

メタデータフィールドはデフォルトで非表示になっていて、見たいフィルタにチェックをつければ表示される。

フィルターを使って絞り込むこともできる。

メタデータ、またはログ文をフィルタ検索することもできる。

ログ元に飛ぶこともできる。

詳細はこちらの動画で確認することができる。
→Debug with structured logging
配布
Xcode Cloud
TestFlightのテストノートをサポートするようになった。

Macアプリの場合、Xcode Cloudワークフローで新たに公証サービスをサポートするようになった。

ビルドが完了するとアプリは自動的に公証され、ダウンロードの準備ができる。

XCFrameworksの署名検証
アプリの公証は、ユーザにアプリが改竄されていないことを知らせることができる。ただ、依存しているSDKやフレームワークが信頼できるかも同様に重要になってくる。そのためXcodeはXCFrameworksの署名検証を導入している。
フレームワーク作者はデジタル署名をすることができ、開発者はフレームワークの作者などが確認できる。フレームワークを更新するときにこの署名が変更されていた場合は警告が出る。

フレームワーク作者はPrivacyInfoをプロジェクトに含めることができる。このマニフェストはフレームワークが機密データをどのように使用し、保護するかを記述している。

Xcodeでは使っているすべてのフレームワークのマニフェストを1つのプライバシーレポートとしてまとめることができる。

このレポートはApp Store Connectのprivacy nutrition labelを簡単に記入できるようにできている。
詳細はこちらの動画で確認することができる。
→Verify app dependencies with digital signatures
→Get started with privacy manifests
TestFlightの内部テスト配布オプションのサポート
チームメイトだけにアプリを配布したいなどの場合に有用。TestFlightの内部テストオプションを選択するだけでこの機能を使うことができる。


App Store Connectで配信している場合は、ビルドステータスに関するデスクトップ通知も届く。

詳細はこちらの動画で確認することができる。
→Simplify distribution in Xcode and Xcode Cloud


Discussion