画面ごとに手作業で撮影し、言語や端末ごとの画像整理にも時間がかかっていますか。
fastlane snapshotはUIテストから繰り返し画像を生成できます。まず代表的なテストをXcodeで安定して実行し、その後に言語とシミュレーターを増やして、出力を人の目で確認してください。実行にはmacOSとXcodeを使えるMac環境が必要です。
複数言語のストア素材を準備し、撮影の繰り返しやファイル整理を減らしたい独立開発者向けです。
複数のシミュレーターを保守する小規模チームや、リモートMacでUIテストを実行できるか確かめたい開発者にも役立ちます。
fastlane snapshotの自動生成はUIテストが基準です
fastlane snapshotは、アプリを起動して任意の画面を自動撮影するだけのツールではありません。UIテストでアプリの操作と画面遷移を行い、その流れの中で必要な画面を撮影します。fastlaneのスクリーンショットガイドでは、撮影の初期設定と実行方法が案内されています。
そのため、最初に整えるのは対象画面へ確実に到達するテストです。ログインや画面表示が不安定なまま撮影対象を増やすと、画像の欠落や意図しない画面の混入を見つけにくくなります。
| 状況 | 先に確認すること | 次の判断 |
|---|---|---|
| まだ撮影に成功していない | UI Test target、共有スキーム、代表画面への遷移 | Xcodeからテストが通るまで対象を増やさない |
| 単一環境で撮影できる | 画像の表示内容、保存先、ファイル名 | 確認後に言語または端末を追加する |
| 複数環境で結果が異なる | テストデータ、起動時の言語、シミュレーター設定 | 差が出る条件を分離して再実行する |
fastlaneの設定では、対象端末を示すdevices、言語を指定するlanguages、実行対象のscheme、画像の出力先となるoutput_directoryなどを管理します。設定項目や動作はツールのバージョンで確認し、capture_ios_screenshotsの公式リファレンスに沿ってください。
単一端末で撮影する場合は代表画面から始めます
最初から全画面の網羅を目指さず、アプリの価値が伝わる画面への経路をひとつ決めます。UI Test targetが存在し、使うスキームが共有されていることを確認したら、Xcodeからテストを実行してください。テストが成功しても、画像が狙った画面を写しているかは別に確認します。
第一段階:採取経路を通す
- Xcodeで対象のアプリとUI Test targetを開きます。
- 実行するスキームが共有され、テスト対象に含まれているか確認します。
- テストから代表画面まで操作し、撮影を呼び出します。
- Xcode上でUIテストを実行し、画面遷移と終了状態を確認します。
- fastlaneのスクリーンショット設定を用意し、同じテスト経路を実行します。
- 出力された画像を開き、画面内容と保存先を確認します。
fastlaneの初期化方法や実行コマンドは、利用中のバージョンに合わせて公式ガイドで確認してください。コマンドをそのまま別プロジェクトへ移すのではなく、スキーム名やテスト構成が一致しているかを先に照合します。
多言語対応では画面表示と言語設定を分けて確認します
アプリ内の表示言語とApp Store Connectのメタデータ言語は別の管理項目です。fastlaneで言語を指定しても、アプリがその言語で起動するとは限りません。テスト実行時の言語環境とアプリのローカライズ資材を確かめ、生成画像に意図した文言が表示されるか確認してください。
| 対象 | 確認内容 | 間違えた場合に起きること |
|---|---|---|
| アプリ内表示 | 起動時の言語、画面上の翻訳、文字切れ | 別言語の画面や不自然な表示を撮影する |
| fastlaneの設定 | 指定言語と対象テストの組み合わせ | 一部の言語だけ撮影されない |
| ストアの素材 | 画像の言語とアップロード先の対応 | 画像と言語メタデータが食い違う |
生成画像は、ストアの言語設定が済んだことの証明ではありません。言語別に出力ファイルを分け、画像の文言とアップロード先を照合します。アップロードする際は、App Store Connectのスクリーンショット登録手順も確認してください。
複数シミュレーターは対応範囲を決めてから追加します
プロジェクトがサポートする端末や画面を基準に対象を選びます。fastlaneに複数のシミュレーターを設定して撮影できますが、ある端末で成功した事実だけで、ほかの対象も確認済みとは判断できません。端末ごとに画像を分けて点検し、古い素材が混ざらないよう出力先も管理します。
| 対象の決め方 | 向いているケース | 確認の要点 |
|---|---|---|
| 代表的なシミュレーターから開始 | 初回導入、撮影経路の検証 | テストと画像出力が一致するか |
| 対応する端末群へ拡張 | 複数の表示領域を確認したい | 端末ごとの画面崩れや欠落 |
| 必要な対象だけ再実行 | 修正後の差分確認 | 以前の画像が残っていないか |
AppleはXcodeのDevice Hubで、シミュレーターまたは実機から画像を取得する方法を案内しています。シミュレーターの管理方法はDevice Hubの公式資料で確認できます。素材の寸法や形式は固定値を記憶で当てはめず、対象端末に合う現行のスクリーンショット仕様を参照してください。
画像が安定しない場合はテスト状態を固定します
ログイン状態、通信で変わるコンテンツ、読み込み表示、テストデータの差は、同じテストでも撮影結果を変える原因になります。撮影の再実行だけで直そうとせず、どの状態が違ったかをテスト単位で調べます。
テストのリトライや通信待ちの仕組みを使っても、変動する画面の内容そのものが一定になるとは限りません。fastlaneの現行機能を確認したうえで、対象プロジェクトのUIテストで再現性を検証してください。
| 見える症状 | プロジェクト側で調べる点 | 再確認 |
|---|---|---|
| ログイン画面に戻る | テスト用アカウントと認証状態 | セッションを作り直して同じ経路を実行 |
| 読み込み表示が残る | 通信待ちと画面遷移の完了条件 | 表示完了後に撮影されるか確認 |
| 内容が実行ごとに違う | サーバー上のデータや日時依存表示 | 固定データで再現するか比較 |
| 古い画像が提出候補に残る | 出力先と前回の生成物 | 今回の成果物だけを選び直す |
リモートMacはXcodeのテスト成功後に撮影へ進みます
fastlane snapshotの実行には、macOS、Xcode、選択したiOSシミュレーター環境が必要です。Appleの資料では、Xcodeからシミュレーターや実機の画像を扱う方法が説明されています。デバイスからの画面収録・スクリーンショット手順も参照し、使うXcode環境で操作を確認してください。
手元にMacがない場合は、リモートMacへ接続できても、先に対象のXcodeとシミュレーターが利用可能かを確かめます。そのうえで、スキームとUIテストをXcodeから実行し、成功してからfastlaneの撮影に進みます。ログインセッションや自動実行の方式によって保存先へのアクセスが異なることがあるため、画像ファイルを実際に取得できるところまで検証します。環境選びの確認項目はMacUDPのヘルプも参照できます。
提出前は生成結果とアップロード先を別々に確認します
画像が生成できたことは、App Store Connectへの登録完了や審査通過を意味しません。fastlaneのdeliverはスクリーンショットのアップロードに利用できますが、対象アプリや言語、既存メタデータへの影響を確認してから実行します。deliverの公式資料で現行の動作を確かめ、最終素材はAppleのスクリーンショットに関する審査ガイドラインに照らして点検してください。
提出前の確認には、次の項目を使えます。
- [ ] 画像の言語がアプリ内の表示と一致している
- [ ] ファイルが対象の端末・シミュレーター向けに生成されている
- [ ] 誤ったテストデータ、読み込み表示、古い画面が含まれていない
- [ ] 出力先から今回の画像だけを選び出せる
- [ ] アップロード先のアプリと言語を照合した
- [ ] 現行の素材仕様と審査ガイドラインを確認した
- [ ] アップロード後に登録内容を確認した
fastlaneの設定や撮影経路は、使うツールのバージョンとプロジェクトで再確認してください。提出素材の作業環境をどう確保するか検討する場合は、MacUDPのレンタルプランで利用条件を確認できます。
よくある疑問
UIテストが通るのに、ほしい画面が撮影されません
テストが成功したかだけでなく、撮影を呼び出す位置と画面遷移の完了状態を確認します。テストが想定より早く次の画面へ進む場合や、ログイン後の表示が変動する場合は、撮影直前の画面状態を固定してから再実行してください。
言語を指定したのに画像の文章が切り替わりません
fastlaneの言語指定と、アプリの起動時に適用される言語設定は分けて調べます。指定したローカライズ資材がアプリに含まれているか、テスト環境がその言語で起動しているかをXcode上で先に確認してください。
すべてのシミュレーターの画像を一度に提出できますか?
一括で撮影できても、各画像がストアで必要な素材かどうかは別途判断が必要です。対象端末、画像の仕様、表示内容を照合し、今回の提出に使うファイルだけを選んでください。撮影対象に含めただけでは、すべての端末が提出対象として適切とは限りません。
リモートMacで実行した画像を手元へ持ち出せますか?
保存先にアクセスできることを事前に確かめれば、生成ファイルを確認して受け渡す運用を組めます。リモート接続の方法だけで判断せず、実際にUIテストを実行し、出力先から画像を取得して開けるところまで試してください。
手動撮影を続ける方法は、画面ごとの操作と端末間の整理が必要になり、作業中のMacの空き容量や稼働状況にも左右されます。一方、Macを購入すれば手元で管理できますが、スクリーンショット作業専用の端末として使うには導入と保守が伴います。撮影を継続的に自動実行したい場合は、Xcodeとシミュレーターを使えるMacUDPのリモート環境を候補にし、プロジェクトのテストが実行できるかを確かめてから利用頻度に合う方法を選んでください。
よくある質問
fastlane snapshotはiOSのUIテストからどう画像を作りますか?
まずXcodeで共有スキームとUIテストの実行を確認し、テスト内に撮影したい画面の呼び出しを用意します。その後、fastlaneの設定で対象の言語やシミュレーターを指定して実行します。テストが画面遷移に失敗すれば撮影も期待どおりにならないため、最初は代表画面だけで出力を確認してください。
アプリを多言語化したら、ストア用画像も自動で各言語になりますか?
自動的にストアの言語設定まで完了するわけではありません。fastlane側の言語指定と、テスト開始時にアプリへ適用される言語をそろえ、各画像に表示された文言を確認します。App Store Connectのメタデータ言語とアプリ内表示は別々に管理し、画像のアップロード先も照合してください。
複数のiOSシミュレーターを対象にできますか?
できます。fastlaneの設定で対象デバイスを管理し、プロジェクトが実際に対応するシミュレーターだけを選んで実行します。ひとつの対象で撮影できても、ほかの画面サイズやOS環境で同じ結果になるとは限りません。出力先を分け、端末ごとの画像を目視で確認してください。
手元にMacがなくてもfastlaneでストア用画像を作れますか?
実行自体は、macOSとXcode、対象のiOSシミュレーターを使えるMac環境があれば可能です。リモートMacを使う場合は、先にXcodeでUIテストが完走することを確かめ、実行したユーザーが画像の保存先へアクセスできるかも確認します。撮影後は画像をダウンロードして、提出素材として適切か別途点検してください。
