원클릭으로
ios-screenshot
App Store用のスクリーンショットを生成・管理します。Use when ユーザーが「スクリーンショット撮って」「App Storeのスクショ更新して」「snapshotして」と言ったとき。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
App Store用のスクリーンショットを生成・管理します。Use when ユーザーが「スクリーンショット撮って」「App Storeのスクショ更新して」「snapshotして」と言ったとき。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
iOSシミュレーターをコンピューターユースで視覚的にテストします。スクリーンショットを撮影してUI要素を確認し、座標ベースでタップ・スワイプ操作を行いテスト結果を報告します。Use when ユーザーが「シミュレーターでテストして」「iOSシミュレーターを視覚的にテストして」「computer useでシミュレーターを操作して」「シミュレーターの画面確認して」と言ったとき。
Xcode MCP(mcpbridge)を Claude Code に追加します。Use when ユーザーが「Xcode MCP入れて」「シミュレーター操作できるようにして」「mcpbridge設定して」と言ったとき。
xcodebuildとfastlaneでiOSアプリをビルド・アーカイブし、App Store/TestFlightに申請します。Use when ユーザーが「TestFlightにアップして」「App Storeに申請して」「リリースして」と言ったとき。
Step-by-step release checklist for ClipKit iOS app submission to TestFlight and App Store. Use when preparing release, uploading to TestFlight, submitting to App Store, bumping version, or creating a release.
このプロジェクトで実際に踏んだ iOS 開発の落とし穴と対策。CoreData, AVFoundation, AVAudioSession など。CoreData の設定変更・新機能追加・マイグレーション対応時に必ず参照すること。
Step-by-step release checklist for Smart Player iOS app submission to App Store. Use when preparing release, updating version, submitting to App Store, or mentioning App Store submission.
| name | ios-screenshot |
| description | App Store用のスクリーンショットを生成・管理します。Use when ユーザーが「スクリーンショット撮って」「App Storeのスクショ更新して」「snapshotして」と言ったとき。 |
App Store 用のスクリーンショットを生成・管理するスキルです。fastlane snapshot を使った自動生成、または手動撮影したスクリーンショットの管理をサポートします。
方法1: 手動でスクリーンショット撮影
1. シミュレーターでアプリ起動
2. Cmd+S でスクリーンショット撮影
3. fastlane/screenshots/ に配置
4. fastlane deliver でアップロード
方法2: fastlane snapshot で自動生成
1. UI Test でスクリーンショット撮影ロジック作成
2. Snapfile で設定
3. fastlane snapshot 実行
4. 自動で fastlane/screenshots/ に保存
App Store で必要なスクリーンショットサイズを確認:
iPhone (必須):
iPad (必須、ユニバーサルアプリの場合):
必要枚数: 各サイズで 1〜10 枚(推奨: 3〜5枚)
# 利用可能なシミュレーターを確認
xcrun simctl list devices | grep "iPhone\|iPad"
# 特定のシミュレーターを起動
open -a Simulator --args -CurrentDeviceUDID <UDID>
# または、Xcodeから起動
# Xcode > Product > Destination > 対象デバイスを選択
Simulator Screenshot - iPhone 16 Pro Max - 2026-02-08 at 15.30.42.pngApp Store の命名規則に従ってリネーム:
# ディレクトリ構造を作成
mkdir -p fastlane/screenshots/ja-JP
mkdir -p fastlane/screenshots/en-US
# ファイル名を変更(例)
# ja-JP/01-speed-view.png
# ja-JP/02-map-view.png
# ja-JP/03-settings.png
命名規則:
# snapshot のセットアップ
fastlane snapshot init
生成されるファイル:
fastlane/Snapfile - デバイス設定SnapshotHelper.swift - UI Test用ヘルパー# fastlane/Snapfile
devices([
"iPhone 16 Pro Max",
"iPhone 15 Plus",
"iPhone 8 Plus",
"iPad Pro (13-inch) (M4)"
])
languages([
"ja-JP",
"en-US"
])
scheme("speedmeter") # UI Test スキームを指定
output_directory("./fastlane/screenshots")
clear_previous_screenshots(true)
UI Test ターゲットにスクリーンショット撮影ロジックを追加:
import XCTest
class ScreenshotTests: XCTestCase {
override func setUpWithError() throws {
continueAfterFailure = false
let app = XCUIApplication()
setupSnapshot(app) // SnapshotHelper
app.launch()
}
func testTakeScreenshots() throws {
let app = XCUIApplication()
// 画面1: スピード表示
snapshot("01-speed-view")
sleep(2)
// 画面2: マップ表示
app.tabBars.buttons.element(boundBy: 1).tap()
sleep(2)
snapshot("02-map-view")
// 画面3: 設定画面
app.buttons["settingsButton"].tap()
sleep(2)
snapshot("03-settings")
}
}
# スクリーンショット生成
fastlane snapshot
# または、特定のデバイスのみ
fastlane snapshot --devices "iPhone 16 Pro Max"
期待される結果:
fastlane/screenshots/
├── ja-JP/
│ ├── 01-speed-view.png (iPhone 16 Pro Max)
│ ├── 02-map-view.png
│ └── ...
├── en-US/
│ ├── 01-speed-view.png
│ └── ...
└── screenshots.html # プレビュー用HTML
# プレビューHTMLを開く
open fastlane/screenshots/screenshots.html
# または、ディレクトリを確認
ls -lh fastlane/screenshots/ja-JP/
確認事項:
# スクリーンショットとメタデータを一緒にアップロード
fastlane deliver
# または、スクリーンショットのみ
fastlane deliver --skip_binary_upload --skip_metadata
fastlane deliver \
--skip_binary_upload \
--languages "ja-JP"
# 既存のスクリーンショットを上書き
fastlane deliver \
--skip_binary_upload \
--overwrite_screenshots
# App Store Connectを開く
open "https://appstoreconnect.apple.com/"
確認事項:
ユーザーが言うこと: "App Store用のスクリーンショット撮って"
実行されること:
fastlane/screenshots/ja-JP/ にリネームして配置fastlane deliver --skip_binary_upload でアップロード結果: 新しいスクリーンショットが App Store Connect に反映される
ユーザーが言うこと: "snapshotで自動的にスクリーンショット生成して"
実行されること:
fastlane snapshot を実行fastlane deliver --skip_binary_upload でアップロード結果:
✅ 生成完了:
- iPhone 16 Pro Max: 3枚
- iPhone 15 Plus: 3枚
- iPhone 8 Plus: 3枚
- iPad Pro 13": 3枚
📁 fastlane/screenshots/screenshots.html で確認
ユーザーが言うこと: "App Store Connectのスクリーンショットをダウンロードして"
実行されること:
fastlane deliver --download_screenshots
結果: 現在の App Store のスクリーンショットがローカルに保存される
ユーザーが言うこと: "App Previewも追加したい"
実行されること:
fastlane/screenshots/ja-JP/ に配置
iPhoneProMax-01.mp4fastlane deliver --skip_binary_upload でアップロード結果: スクリーンショットと動画が一緒にアップロードされる
No screenshots found原因: fastlane/screenshots/ ディレクトリが空またはファイル名が不正
解決方法:
# ディレクトリ構造を確認
ls -R fastlane/screenshots/
# 正しい構造:
# fastlane/screenshots/ja-JP/01-screenshot.png
# fastlane/screenshots/en-US/01-screenshot.png
UI Test target not found原因: UI Test ターゲットが存在しないか、スキーム設定が間違っている
解決方法:
scheme を正しい UI Test スキームに設定原因: シミュレーターの解像度設定
解決方法:
原因: シミュレーターのステータスバーがそのまま表示されている
解決方法:
方法1: SimulatorStatusMagic(Xcode 12以前)
# インストール
brew install SimulatorStatusMagic
# 実行
xcrun simctl status_bar booted override \
--time "9:41" \
--batteryLevel 100 \
--cellularMode active
方法2: snapshot の機能を使う
# Snapfile
override_status_bar(true)
status_bar_override({
time: "9:41 AM",
battery: 100,
carrier: "Carrier"
})
原因: ファイル形式またはサイズが App Store の要件に合っていない
解決方法:
変換コマンド:
ffmpeg -i input.mov -c:v libx264 -crf 23 -preset medium output.mp4
references/device-sizes.md を参照