Skip to main content

Auto add device frames to iOS/iPadOS screenshots for App Store.

Project description

Snap2Store Logo

Snap2Store

中文文档

Snap2Store is designed for Apple developers to solve the problem that screenshots captured from the iOS simulator cannot be directly used in the App Store.
It automatically adds device frames and adjusts to the required dimensions, making your app screenshots more professional and compliant with App Store standards.


Background

Screenshots taken from the iOS simulator cannot be uploaded directly to the App Store because:

  • ❌ Sizes do not match App Store requirements
  • ❌ Missing device frames, resulting in poor presentation
  • ❌ Manual processing is time-consuming and inefficient

This tool solves these problems with one command:

  • ✅ Automatically adds real device frames
  • ✅ Outputs screenshots that meet App Store requirements
  • ✅ Batch processing for improved developer efficiency

Installation

# Using pip
pip install -U snap2store

# Or using uv
uv tool install snap2store

Usage

Typical Workflow

  1. Capture screenshots in the iOS simulator (select the iPhone 17 Pro Max or iPad Pro 13-inch simulator so the raw captures match Apple’s current App Store device requirements)
  2. Run the processing tool for the target device
  3. Get processed screenshots with the correct frame and size
  4. Upload directly to App Store Connect

CLI Commands

# Process a single screenshot (auto-detect device type)
snap2store screenshot.png

# Batch process all screenshots in a folder
snap2store screenshots_folder/

# Specify device type (iPhone)
snap2store -d iphone screenshot.png

# Specify device type (iPad) and custom output directory
snap2store -d ipad -o custom_output/ screenshot.png

# Show help
snap2store --help

Command Options

usage: snap2store [-h] [-d {iphone,ipad}] [-o OUTPUT] [-v] input

Snap2Store - Add device bezels to iOS/iPadOS screenshots to meet App Store requirements

positional arguments:
  input                 Screenshot file or folder path

options:
  -h, --help            show this help message and exit
  -d {iphone,ipad}, --device {iphone,ipad}
                        Specify device type (auto-detect if not provided)
  -o OUTPUT, --output OUTPUT
                        Output directory (default: ./output/)
  -v, --version         show program's version number and exit

Examples:
  snap2store screenshot.png                  # Auto-detect device type and process single screenshot
  snap2store screenshots/                    # Process all screenshots in the folder
  snap2store -d iphone screenshot.png        # Specify as iPhone screenshot
  snap2store -d ipad -o custom_output/ img/  # Specify as iPad screenshot and custom output directory

Output

  • 📁 Processed files are saved in the output/ folder
  • 📝 File naming format: original_filename_framed.jpg
  • 🎯 App Store compliant: correct dimensions and format
  • 🖼️ JPEG quality: 85% with optimized compression
  • 🎨 Transparency removed, converted to RGB

Output Dimensions

  • 📱 iPhone: 1242 × 2688 px
  • 📱 iPad: 2064 × 2752 px

These dimensions fully meet App Store Connect requirements, so the screenshots can be uploaded directly.


Tech Stack

  • Python 3.x
  • Pillow (PIL): image processing
  • psd-tools: PSD file parsing

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

snap2store-0.2.0.tar.gz (9.5 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

snap2store-0.2.0-py3-none-any.whl (9.6 MB view details)

Uploaded Python 3

File details

Details for the file snap2store-0.2.0.tar.gz.

File metadata

  • Download URL: snap2store-0.2.0.tar.gz
  • Upload date:
  • Size: 9.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for snap2store-0.2.0.tar.gz
Algorithm Hash digest
SHA256 2d6d66623fc830fa737d3847ba59875438b7425f6980d578052c1c42e3d6e25f
MD5 a97e86bcd086def67d517c131e3daa34
BLAKE2b-256 4c84181dbeb2a5056742bf04d0c2cc427a67746fe0e10f6e27cc2e02a7a01818

See more details on using hashes here.

File details

Details for the file snap2store-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: snap2store-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 9.6 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for snap2store-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 839c803c60da5b699bb8df3eb057a090fd576322c811e60dd71f468f90ca2624
MD5 daa215f46732a591cc7fad9b45a7eb7f
BLAKE2b-256 7be92962bdc601cff609ee2391666f04323fc1ab5b68c44c483ddeefa90196bf

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page