بنقرة واحدة
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 を参照