ScrollStitch is an open-source iPhone app for turning a scrolling screen recording into a long screenshot. The app defaults to Simplified Chinese and can switch to English in Settings.
Primary workflow:
- Use iOS Screen Recording while scrolling the target page.
- Choose the recording in ScrollStitch.
- Let ScrollStitch extract useful frames, remove duplicates, match overlaps, and render one long screenshot.
- Review, crop, adjust seams, then save or export PNG/PDF.
The app also keeps a local manual workflow for importing several overlapping screenshots from Photos and stitching them automatically.
The app is built with SwiftUI, WebKit, PhotosUI, AVFoundation, Photos, and UIKit/CoreGraphics. Capture and media processing run locally, and the project is intended to be deployable with a personal Apple Developer team from Xcode.
- Native SwiftUI interface for iPhone, with Simplified Chinese by default and English as an in-app option.
- Screen-recording import for scrolling captures from any app that the user records with iOS Screen Recording.
- Useful-frame extraction and duplicate-frame removal.
- Vertical overlap detection, seam planning, and duplicate-region removal.
- Review tools for top and bottom crop plus seam adjustment.
- Screenshot picker for importing overlapping screenshots in order.
- Adjustable overlap, match tolerance, frame interval, frame count, and duplicate threshold settings.
- Long-image preview, Photos save, PNG share, and PDF export.
- Local-only media processing.
ScrollStitch stays inside public iOS APIs. It does not auto-scroll, control, or silently capture pixels from other apps.
For content outside ScrollStitch, use one of these App Store-safe workflows:
- Use iOS Screen Recording while scrolling the target content, stop recording, then import the video from Photos.
- Take multiple screenshots and import them manually.
This is the closest public-API equivalent to a global long screenshot workflow on iPhone. A third-party app cannot implement the exact native screenshot trigger that captures and automatically scrolls any other app to the bottom without private APIs, jailbreak-only behavior, or device-management/assistive-control privileges outside a normal open-source App Store-safe app.
- Xcode 26.5 or newer
- iOS 17.0 or newer
- XcodeGen 2.43 or newer
- A personal Apple Developer team for installing on a physical iPhone
xcodegen generatexcodebuild -project ScrollStitch.xcodeproj -scheme ScrollStitch -destination 'platform=iOS Simulator,name=iPhone 17 Pro Max' test
xcodebuild -project ScrollStitch.xcodeproj -scheme ScrollStitch -destination 'platform=iOS Simulator,name=iPhone 17 Pro Max' build- Open
ScrollStitch.xcodeprojafter runningxcodegen generate. - Select the
ScrollStitchtarget. - Set Team to your Apple Developer team.
- Keep the bundle identifier unique, for example
com.yourname.ScrollStitch. - Connect your iPhone, choose it as the run destination, then press Run.
The checked-in project configuration uses development team 5SR2B93233, matching the local Apple Development certificate that was available when this project was created. Change it in Xcode or project.yml if needed.
Generate two overlapping PNG screenshots for quick manual testing:
python3 Scripts/make_demo_media.pyThe generated files land in DemoMedia/.
- Figma design reference: https://www.figma.com/design/73mHry8hcN6S9dqK79x7yP
- Architecture notes: docs/architecture/overview.md
ScrollStitch processes imported screenshots and videos on device. Media is only read when explicitly selected.