Auto add device frames to iOS/iPadOS screenshots for App Store.
Project description
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
pip install snap2store
Usage
Typical Workflow
- Capture screenshots in the iOS simulator
- Run the processing tool for the target device
- Get processed screenshots with the correct frame and size
- 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file snap2store-0.1.0.tar.gz.
File metadata
- Download URL: snap2store-0.1.0.tar.gz
- Upload date:
- Size: 8.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a3cec408852fdb55fa30dd63510c3045e0403c00b220b4b1301d420a90dc95db
|
|
| MD5 |
c14a4d2fa494fbde67e5f086f92cff86
|
|
| BLAKE2b-256 |
49c196763278e1a0f424413fa489110f32f958817cf72fd3e2e090026831fa74
|
File details
Details for the file snap2store-0.1.0-py3-none-any.whl.
File metadata
- Download URL: snap2store-0.1.0-py3-none-any.whl
- Upload date:
- Size: 8.2 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7063f583003e69fac9ef87d82b74dc72b2e01296bc9f608573b75838f38673e0
|
|
| MD5 |
17bdbea429a4b7f543481fe734f0005a
|
|
| BLAKE2b-256 |
e17ccde22e7aa1a4ced11b56040df24977fccae8d38ba2ff980d5ee50ec73c11
|