What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Fastlane automates app screenshots by driving your UI tests on selected simulators or emulators, saving each named capture by device and language, and generating a reviewable HTML summary. On iOS, the workflow is called snapshot and is built on Xcode UI Tests. On Android, the separate screengrab action uses instrumented tests and Espresso. The reliable pattern is to check in your capture configuration, run from the command line, inspect for partial failures, and only then frame or upload the files.
What Fastlane automates
A screenshot run has four moving parts:
- Test interaction: the UI test navigates to a known state.
- Capture points: a named call records the current screen.
- Variants: devices, languages, launch arguments, and output settings are generated from configuration.
- Review and delivery: Fastlane writes organized files and an HTML overview; optional actions can frame or upload them.
Use the iOS instructions below for an Xcode project. Do not mix them with Android instructions: Android uses Screengrab, not SnapshotHelper.swift or a Snapfile.
| # | Preview | Product | Price | |
|---|---|---|---|---|
| 1 |
|
Apple iPhone 14, 128GB, Blue - Unlocked (Renewed) | $309.89 | Buy on Amazon |
| 2 |
|
Apple iPhone 14, 128GB, Midnight - Unlocked (Renewed) | $300.00 | Buy on Amazon |
| 3 |
|
Apple iPhone 13, 128GB, Midnight - Unlocked (Renewed) | $262.00 | Buy on Amazon |
| 4 |
|
Apple iPhone 16e, 128GB, Black - Unlocked (Renewed) | $389.00 | Buy on Amazon |
| 5 |
|
Apple iPhone 15, 128GB, Black - Unlocked (Renewed) | $405.00 | Buy on Amazon |
iOS: set up Snapshot once
1. Create a UI Test target
In Xcode, add a UI Testing target to the application project. The target must be able to build and launch the app on the simulators you intend to capture. Create or select a scheme for that test target, share the scheme in the project, and enable the test target in the scheme’s Run configuration.
2. Generate Fastlane’s helper
From the project directory, initialize the screenshot setup:
#1 Best Overall
- Vibrant 6.1-inch Super Retina XDR display with OLED technology. Action mode for smooth, steady, handheld videos.
fastlane snapshot init
The command creates the files needed by the Snapshot workflow, including a SnapshotHelper.swift file and a starter Snapfile. Add SnapshotHelper.swift to the UI Test target in Xcode (verify its target membership). If the helper is not compiled into the test target, calls to setupSnapshot and snapshot will fail to build.
3. Prepare the test case
In the UI test, initialize Snapshot in setup and launch the app. The capture call belongs immediately after the interactions that establish the desired state.
import XCTest
class ScreenshotTests: XCTestCase {
let app = XCUIApplication()
override func setUpWithError() throws {
continueAfterFailure = false
setupSnapshot(app)
app.launch()
}
func testScreens() throws {
snapshot("home")
app.buttons["Get started"].tap()
snapshot("onboarding")
app.buttons["Settings"].tap()
snapshot("settings")
}
}
Fastlane’s documented rule is: “To take a screenshot, call the following between interactions.” Give each screenshot a stable name. Avoid names that include a device, locale, or timestamp; Fastlane supplies those dimensions when it organizes output.
4. Make the UI deterministic
- Reset test data or use a dedicated launch argument so every run starts from the same state.
- Wait for a visible element before capturing rather than relying on a fixed animation duration.
- Dismiss permission prompts in test code or provide test-safe launch settings.
- Keep accessibility identifiers and button labels stable across localizations; use identifiers for interactions when possible.
- Ensure network-dependent content has a fixture or a reliable test endpoint. A screenshot taken while a request is still loading is technically successful but visually wrong.
Configure devices, languages, and output in a Snapfile
Put the choices that define coverage in a checked-in Snapfile. A representative configuration is:
Recommended Free Tools
scheme "MyAppUITests"
devices [
"iPhone 15 Pro",
"iPad Pro (12.9-inch) (6th generation)"
]
languages ["en-US", "de-DE", "ja"]
output_directory "./fastlane/screenshots"
clear_previous_screenshots true
Use the exact simulator names installed on the Mac running the job. Keep the scheme name aligned with the shared UI-test scheme. The snapshot action also supports multiple launch-argument sets, status-bar overrides, and other output options; add only settings your test actually needs so the file remains reviewable.
Why configuration belongs in source control
A checked-in Snapfile gives every developer and CI job the same device and locale matrix. It also makes deliberate changes visible in code review: adding a language, changing a device, or switching an output directory is no longer a hidden command-line variation. Launch arguments in the configuration are useful for feature flags, seeded data, and alternate product tiers.
Rank #2
- This phone is unlocked and compatible with any carrier of choice on GSM and CDMA networks (e.g. AT&T, T-Mobile, Sprint, Verizon, US Cellular, Cricket, Metro, Tracfone, Mint Mobile, etc.).
- Please check with your carrier to verify compatibility.
- The device does not come with headphones or a SIM card. It does include a generic (Mfi certified) charging cable.
- Tested for battery health and guaranteed to have a minimum battery capacity of 80%.
Parallel runs and partial coverage
Snapshot can run simulator jobs concurrently. Concurrency shortens wall-clock time but increases CPU, memory, and simulator contention; start with a smaller matrix on a constrained CI runner. Fastlane documents a stop_after_first_error option. Without stopping, a failure on one device or language can leave the remaining combinations running. Always inspect the summary and output directories—successful files do not prove that every requested combination was captured.
Run the capture from the command line
Run Snapshot rather than launching the test directly from Xcode:
Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Repair Windows errors before they cause bigger problems3Fix the driver behind crashes, sound loss and screen glitchesfastlane snapshot
The command-line action creates the organized screenshot directories and HTML overview expected from Snapshot. Running the UI test directly in Xcode is useful for debugging interactions, but it does not produce the same Snapshot output structure.
What to check after a run
- Open the generated HTML summary and review every requested device and language.
- Compare the requested matrix in the Snapfile with the directories that were actually created.
- Open representative images at 100% size; look for truncated text, untranslated strings, keyboard overlays, loading indicators, and status-bar differences.
- Keep the run’s screenshots separate from older output when diagnosing failures. Set
clear_previous_screenshotsdeliberately so stale files cannot be mistaken for new captures.
Review, frame, and upload
HTML review
Snapshot’s HTML summary is a practical handoff for QA, marketing, and localization reviewers. Reviewers can compare the same named screen across devices and languages before files are sent to a store.
Optional device frames with Frameit
Frameit can add a device frame, background, padding, and text. Treat framing as a presentation step, not as part of the UI test. Fastlane warns that framed output without the App Store-oriented title and background configuration may have dimensions that App Store Connect will not accept. Validate the final framed files, not just the unframed Snapshot images.
Upload with a lane
The iOS guide documents deliver and the upload_to_app_store lane action as upload paths. A lane can chain capture and upload, for example:
Free tools Windows power users keep installed
One-click scans. No signup required.
Rank #3
- This pre-owned product is not Apple certified, but has been professionally inspected, tested and cleaned by Amazon-qualified suppliers.
- There will be no visible cosmetic imperfections when held at an arm’s length.
- This product is eligible for a replacement or refund within 90 days of receipt if you are not satisfied.
- Product may come in generic Box.
lane :screenshots_and_upload do
snapshot
upload_to_app_store
end
Use an upload lane only after a human or automated review confirms the set. Upload actions change App Store Connect metadata and screenshots; inspect the upload summary and verify that the intended app, version, locale, and device files are selected.
Android: use Screengrab instead of Snapshot
Fastlane’s Android counterpart is Screengrab. It uses instrumented tests and Espresso interactions to capture screens, and it has its own configuration and Google Play upload workflow. Create the Android test setup described by Fastlane, place capture calls at deterministic points in Espresso tests, and run the Screengrab action from the command line.
The iOS helper, shared Xcode scheme, and Snapfile do not apply to Android. Keep the two pipelines separate in your repository and CI jobs. For both platforms, review the generated set for missing locales and devices before uploading.
Common failures and fixes
The helper symbols are undefined
Symptom: Xcode cannot find setupSnapshot or snapshot. Fix: select SnapshotHelper.swift in Xcode and enable membership for the UI Test target. Rebuild the test target, not only the application target.
The test runs, but no organized screenshots appear
Cause: the test was run directly from Xcode. Fix: run fastlane snapshot from the project directory and check the configured output directory.
One locale or device is missing
Cause: a simulator failed, a locale could not launch, or a test assertion stopped that combination. Fix: read the Fastlane summary, inspect the failing simulator log, and compare output folders with the Snapfile matrix. If you need fail-fast behavior, enable stop_after_first_error; otherwise, treat the run as partial until every combination is accounted for.
Rank #4
- 6.1" Super Retina XDR OLED, HDR10, 800 nits (HBM), 1200 nits (peak), 2532x1170px at 460ppi, 4005mAh Battery
- 8GB RAM, Apple A18 6-core CPU (2 performance + 4 efficiency cores), Apple GPU 4-core, 16‑core Neural Engine
- Rear camera: 48MP, f/1.6, wide, Front Camera: 12MP, f/1.9, wide, iOS 18.3.1, upgradable to iOS 18.5
- Connectivity: Global 4G LTE, Sub-6 GHz 5G, LTE, Wi-Fi 6, Bluetooth 5.3, NFC, USB-C, Wireless Charging (7.5W). (does not have mmWave 5G or MagSafe or physical SIM card) - Dual eSIM Only
- Unlocked for freedom to choose your carrier. Compatible with both GSM & CDMA networks. The phone is unlocked to work with all GSM Carriers & CDMA Carriers Including AT&T, T-Mobile, Verizon, Straight Talk., Etc.
Captures show the wrong screen
Cause: the call occurs before navigation or asynchronous content is ready. Fix: wait for a specific UI element, remove animation or network nondeterminism in the test environment, and place snapshot after the state assertion.
Localized text is clipped
Cause: a layout that fits one language does not fit another. Fix: inspect the HTML overview by locale, adjust constraints and dynamic type handling, and rerun the complete matrix rather than replacing only the failing image.
Framed images are rejected by the store
Cause: Frameit output dimensions or title/background settings do not match App Store Connect’s current validation. Fix: validate the final files against the current store requirements and regenerate with the appropriate App Store-oriented configuration. The available material does not establish a universal, current pixel table, so do not hard-code one into your pipeline without checking Apple’s current guidance.
CI cannot start the iOS workflow
Cause: the documented flow depends on Xcode UI Tests and simulators, so a runner without a compatible macOS/Xcode environment cannot execute it. Fix: use a macOS runner with the project, shared scheme, installed simulator runtimes, and Fastlane dependencies available. The documentation does not establish a particular Mac model or a universal minimum Xcode/Fastlane version.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Reliability, speed, and cost planning
Make failures diagnosable
- Pin the device and language matrix in the Snapfile.
- Archive the HTML summary and logs with the CI job.
- Record the commit, build configuration, and launch arguments used for the run.
- Reject a release artifact when any requested combination is missing, even if Fastlane continued after an error.
Control runtime
Each additional device-language combination multiplies UI-test work. Use concurrency where the runner has enough resources, but keep a smaller smoke matrix for pull requests and the full matrix for release jobs. Capture only the screens required by the store or review process; extra screenshots increase test time and review burden.
Keep upload separate from capture
Capture and review are repeatable build steps. Upload is a change to store metadata. Separating them lets you rerun a failed simulator without accidentally replacing approved store assets.
Best Value
- 6.1inch Super Retina XDR display. Aluminum with color-infused glass back. Ring/Silent switch
- Dynamic Island. A magical way to interact with iPhone. A16 Bionic chip with 5-core GPU
- Advanced dual-camera system. 48MP Main | Ultra Wide. Super-high-resolution photos (24MP and 48MP). Next-generation portraits with Focus and Depth Control. 4X optical zoom range
- Emergency SOS via satellite. Crash Detection. Roadside Assistance via satellite
- Up to 26 hours video playback. USB C, Supports USB 2. Face ID
Or skip the browser setup
If you need screenshots of a website, documentation page, or web-based preview rather than an iOS or Android simulator, ScreenshotNeo provides a one-request API at screenshotneo.com. It accepts the cookie or consent banner before capture and removes more than 60 known consent platforms, newsletter popups, and chat widgets; each step can be turned off. Only clean shots are billed: bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits cost nothing, and response headers report the page verdict and whether it was billed.
See the ScreenshotNeo API documentation for all options. This cURL request saves a WebP image:
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
Python:
import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"}, timeout=90)
open("shot.webp", "wb").write(r.content)
Node.js:
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
ScreenshotNeo also has an MCP server with take_screenshot, get_page_info, and capture_pdf tools for Claude, Cursor, and other MCP clients. It supports full-page captures with lazy images loaded, CSS-selector element shots, dark mode, device presets or custom viewports, retina scale, PDF output, custom CSS and JavaScript, click and wait conditions, request blocking, headers, cookies, user agents, timezone and geolocation, transparent backgrounds, resizing, chosen cache TTLs, signed links, async webhooks, bulk capture of up to 100 URLs per call, a usage API, and an OpenAPI specification. Its parameter names also match those used by other screenshot APIs, which can simplify a switch.
The Free plan includes 1,000 screenshots per month with no card. Paid plans start at $5 for 3,000 shots; every feature is on every plan. Create a free ScreenshotNeo account to try it.
Quick wins for a faster PC:
Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Repair Windows errors before they cause bigger problemsFix Now →Fastlane screenshot checklist
- Create and share the UI-test scheme.
- Add the generated SnapshotHelper to the UI Test target.
- Call
setupSnapshot(app)during test setup and name eachsnapshotpoint. - Check in devices, languages, launch arguments, and output settings in the Snapfile.
- Run
fastlane snapshot, not only the Xcode test button. - Review the HTML summary and confirm no matrix entries are missing.
- Frame only when needed, then validate final dimensions.
- Upload through
deliverorupload_to_app_storeonly after review. - Use the distinct Screengrab workflow for Android.
Frequently Asked Questions
Can I capture screenshots without writing UI-test interactions?
No. Snapshot records the app state reached by an Xcode UI Test; the test still needs to navigate to each screen and establish its data.
Should screenshot names include the locale?
Keep names stable, such as home or settings. Fastlane organizes variants by device and language, so embedding those values in names makes review and replacement harder.
Is Frameit required for App Store screenshots?
No. Framing is optional. If you use it, validate the resulting dimensions and App Store-oriented configuration before upload.
Does Screengrab use the same Snapfile as iOS Snapshot?
No. Screengrab is Android’s separate instrumented-test workflow; the iOS SnapshotHelper and Snapfile instructions do not configure it.
PC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchQuick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

