Snapshot (Fastlane) — esensi, menghasilkan tangkapan layar dan konfigurasi di aplikasi seluler

Penulis: IT Sectr Diterbitkan: 2026-04-15 Waktu membaca: 10 mnt

Snapshot (Fastlane) adalah alat untuk menghasilkan tangkapan layar aplikasi iOS secara otomatis di semua perangkat dan bahasa yang didukung. Berbeda dengan pembuatan tangkapan layar manual melalui simulator, Snapshot menjalankan tes UI dan mengambil tangkapan layar di titik-titik tertentu dalam aplikasi. Menurut dokumentasi resmi Fastlane (2026), Snapshot mengurangi waktu persiapan tangkapan layar untuk rilis dari 4 jam menjadi 15 menit.

Poin utama

  • Snapshot — alat Fastlane untuk membuat tangkapan layar aplikasi iOS secara otomatis melalui tes UI di semua perangkat dan bahasa.
  • Alat ini terintegrasi dengan tes UI XCTest: pengembang menambahkan perintah snapshot() ke dalam kode tes untuk menangkap gambar di layar utama aplikasi.
  • Snapshot mendukung semua ukuran perangkat iPhone dan iPad yang diperlukan App Store: 6.5, 5.5, 6.7, 12.9 inci dan format layar lainnya.
  • Konfigurasi dilakukan melalui file Snapfile, di mana perangkat, bahasa, lokalisasi, dan parameter startup simulator untuk pembuatan ditentukan.
  • Hasil disimpan di direktori screenshots/, kompatibel dengan Deliver — tangkapan layar siap diunggah ke App Store tanpa pemrosesan tambahan.

Apa itu Snapshot (Fastlane)?

Snapshot (Fastlane) adalah komponen ekosistem Fastlane yang mengotomatiskan pembuatan tangkapan layar aplikasi untuk App Store. Ia menjalankan tes UI di simulator iOS, mengambil tangkapan layar dalam keadaan tertentu dari aplikasi, dan menyimpannya di direktori terstruktur dengan nama yang benar untuk setiap bahasa dan perangkat.

Tanpa Snapshot, pengembang secara manual menjalankan simulator, membuka setiap layar, mengambil tangkapan layar melalui Cmd+S, mengganti bahasa, dan mengulangi proses untuk semua kombinasi. Otomatisasi tangkapan layar adalah elemen kunci optimasi ASO, karena App Store memerlukan gambar terbaru untuk setiap rilis baru, dan pembaruan manual 60+ tangkapan layar menghabiskan waktu berjam-jam.

Menurut App Store Connect Documentation (2025), aplikasi dengan tangkapan layar yang dilokalisasi mendapatkan 25% lebih banyak konversi di negara target. Snapshot memungkinkan tim memperbarui konten visual untuk 32 bahasa dalam satu kali proses, yang sangat penting untuk kampanye pemasaran yang terkait dengan fitur baru aplikasi.

Gunakan Snapshot di proyek apa pun yang dipublikasikan di App Store — ini adalah alat standar untuk tim yang berupaya mengotomatiskan proses rilis dan meningkatkan ASO.

Bagaimana Snapshot menghasilkan tangkapan layar

Proses pembuatan tangkapan layar di Snapshot terdiri dari beberapa tahap: persiapan tes UI, konfigurasi Snapfile, menjalankan simulator, dan mengumpulkan hasil. Snapshot secara berurutan menjalankan setiap simulator untuk perangkat dan bahasa yang ditentukan, menjalankan tes UI, dan mengambil gambar di titik pemanggilan fungsi snapshot().

Setelah semua tes selesai, Snapshot mengumpulkan tangkapan layar ke direktori screenshots/[Language]/ dengan nama yang sesuai dengan persyaratan App Store. Setiap tangkapan layar disimpan dalam format PNG dengan resolusi yang sesuai dengan perangkat target. Snapshot juga menghasilkan laporan HTML untuk verifikasi visual semua gambar yang dibuat.

Menyiapkan tes UI untuk Snapshot

Untuk menjalankan Snapshot, panggilan snapshot() harus ditambahkan ke dalam kode XCTest tes UI aplikasi. Fungsi ini mengambil tangkapan layar dari keadaan layar saat ini pada saat pemanggilan. Pengembang menempatkan snapshot() setelah setiap tindakan utama: membuka layar, memasukkan data, navigasi antar tab, atau menampilkan hasil.

Contoh struktur tes UI: tes masuk ke aplikasi, memanggil snapshot("01-LoginScreen") untuk tangkapan layar masuk, kemudian beralih ke layar utama dan memanggil snapshot("02-HomeScreen") untuk tangkapan layar layar utama. XCTest adalah kerangka kerja Apple untuk pengujian unit dan UI aplikasi iOS, terintegrasi langsung ke dalam Xcode.

objective-c
// Tes UI untuk Snapshot
- (void)testScreenshots {
    XCUIApplication *app = [[XCUIApplication alloc] init];
    [app launch];
    
    snapshot(@"01-LoginScreen");
    
    [app.textFields[@"email"] tap];
    [app.textFields[@"email"] typeText:@"user@company.com"];
    [app.buttons[@"Login"] tap];
    
    snapshot(@"02-HomeScreen");
}

Bekerja dengan bahasa dan perangkat

Snapshot secara otomatis mengganti bahasa simulator untuk setiap bahasa yang ditentukan di Snapfile. Aplikasi dimulai dengan lokalisasi yang sesuai, dan tes UI dijalankan dalam bahasa tersebut. Lokalisasi tangkapan layar adalah faktor penting ASO: pengguna dalam 75% kasus lebih memilih aplikasi dengan konten dalam bahasa ibu mereka, termasuk tangkapan layar di App Store.

Untuk setiap perangkat, Snapshot menjalankan simulator terpisah dengan diagonal layar yang sesuai. Semua ukuran yang diperlukan App Store didukung: iPhone 6.5 inci (iPhone 15 Pro Max), 5.5 inci (iPhone 8 Plus), 6.7 inci (iPhone 15 Plus) dan iPad 12.9 inci. Simulator iOS adalah emulasi perangkat lunak dari perangkat iOS yang tertanam di Xcode untuk menguji aplikasi tanpa perangkat fisik.

bash
# Menghasilkan tangkapan layar untuk semua perangkat dan bahasa
fastlane snapshot

# Pembuatan hanya untuk perangkat yang ditentukan
fastlane snapshot --devices "iPhone 15 Pro Max,iPhone 15"

# Pembersihan sebelum menghasilkan tangkapan layar
fastlane snapshot --reinstall_app --erase_simulator

Konfigurasi Snapshot melalui Snapfile

Snapfile adalah file konfigurasi Fastlane yang mendefinisikan parameter pembuatan tangkapan layar: daftar perangkat, bahasa, waktu tunggu, dan opsi startup. Snapfile disimpan di direktori fastlane dan dikelola versi bersama proyek, yang menjamin konfigurasi seragam untuk semua anggota tim.

ruby
# Snapfile — konfigurasi tangkapan layar
devices([
    "iPhone 15 Pro Max",
    "iPhone 15",
    "iPad Pro (12.9-inch)"
])

languages([
    "en-US",
    "ru",
    "de-DE"
])

scheme("MyAppUITests")
output_directory("./screenshots")
clear_previous_screenshots(true)
reinstall_app(true)
erase_simulator(true)

Parameter clear_previous_screenshots menghapus tangkapan layar lama sebelum memulai pembuatan — ini mencegah penumpukan gambar usang di direktori output. reinstall_app menginstal ulang aplikasi di simulator sebelum setiap proses, menjamin sesi bersih tanpa pengaruh tes sebelumnya pada pembuatan baru.

Parameter erase_simulator membersihkan konten simulator sebelum memulai tes — termasuk cache, pengaturan, dan data sesi sebelumnya. Ini sangat penting untuk tes yang memeriksa onboarding atau pertama kali menjalankan aplikasi. Snapshot juga mendukung parameter ios_version untuk menentukan versi iOS di simulator dan stop_after_first_error untuk menghentikan pembuatan pada kesalahan tes UI pertama.

Untuk proyek dengan SwiftUI, parameter use_simulator_for_language tersedia, yang mengelola pergantian bahasa melalui pengaturan simulator alih-alih mengubah wilayah sistem. Snapshot juga mendukung launch_arguments untuk meneruskan argumen tambahan saat memulai aplikasi — berguna untuk tes dengan konfigurasi backend yang berbeda atau tes A/B.

Perintah Snapshot untuk menghasilkan gambar

Antarmuka Snapshot mencakup perintah dasar untuk memulai pembuatan dan flag lanjutan untuk kontrol yang tepat atas proses. Perintah utama fastlane snapshot menjalankan siklus penuh pembuatan tangkapan layar berdasarkan konfigurasi dari Snapfile.

Pembuatan cepat dan pemfilteran

Perintah fastlane snapshot --devices "iPhone 15" menghasilkan tangkapan layar hanya untuk perangkat yang ditentukan, mengabaikan sisanya dari Snapfile. --languages "en-US,ru" memfilter bahasa untuk pembuatan. Kombinasi flag ini berguna untuk memeriksa tangkapan layar dengan cepat pada satu perangkat dan bahasa tanpa siklus pembuatan penuh, yang dapat memakan waktu hingga 30 menit untuk 5 perangkat dan 10 bahasa.

bash
# Pembuatan cepat untuk satu perangkat
fastlane snapshot --devices "iPhone 15" --languages "en-US"

# Pembuatan dengan instal ulang aplikasi
fastlane snapshot --reinstall_app --erase_simulator

# Pembuatan dengan laporan HTML
fastlane snapshot --output_directory "./build/screenshots"

Flag --output_directory mengubah direktori penyimpanan hasil. Secara default, Snapshot menyimpan tangkapan layar di fastlane/screenshots. Untuk integrasi dengan Deliver, tentukan direktori yang sesuai dengan struktur Deliverfile yang diharapkan — ini memungkinkan transfer tangkapan layar langsung ke proses publikasi tanpa menyalin file secara manual antar folder.

Parameter SnapshotTujuanContoh
devicesDaftar perangkat untuk pembuataniPhone 15, iPad Pro
languagesDaftar bahasa lokalisasien-US, ru, de-DE
reinstall_appInstal ulang aplikasi sebelum testrue / false
erase_simulatorBersihkan simulator sebelum mulaitrue / false
clear_previousHapus tangkapan layar lamatrue / false

Integrasi Snapshot dalam pipeline CI/CD

Snapshot di CI/CD adalah pembuatan tangkapan layar otomatis pada setiap commit rilis. Snapshot dijalankan sebelum tahap Deliver untuk memastikan bahwa tangkapan layar di App Store sesuai dengan versi aplikasi saat ini dan tidak mengandung elemen antarmuka usang dari versi sebelumnya.

Untuk menjalankan Snapshot di CI, diperlukan Xcode dengan simulator iOS yang terinstal. Di lingkungan CI, Snapshot menggunakan simulator dari Xcode yang dimuat sebelumnya ke runner. GitHub Actions menyediakan image dengan Xcode dan simulator iOS yang sudah terinstal untuk menjalankan tes UI tanpa konfigurasi tambahan.

bash
# Menjalankan Snapshot di lingkungan CI
fastlane snapshot --skip_open_summary \

      --output_directory "$CI_PROJECT_DIR/screenshots"

# Menyimpan tangkapan layar sebagai artefak CI
cp -R "screenshots/" "$CI_PROJECT_DIR/artifacts/"

Parameter --skip_open_summary menonaktifkan pembukaan laporan HTML setelah pembuatan — di lingkungan CI antarmuka grafis tidak tersedia. Hasil pembuatan disimpan di direktori yang diteruskan sebagai artefak tugas CI dan kemudian digunakan oleh Deliver untuk diunggah ke App Store bersama rilis.

Untuk mempercepat pipeline CI, gunakan pembuatan tangkapan layar paralel melalui concurrent_simulators — parameter Snapfile yang menjalankan beberapa simulator secara bersamaan. Ini mengurangi waktu pembuatan tangkapan layar untuk 5 perangkat dan 10 bahasa dari 40 menit menjadi 15 menit menggunakan 4 thread paralel.

Kesalahan umum saat bekerja dengan Snapshot

Saat menggunakan Snapshot, pengembang paling sering menemui kesalahan yang terkait dengan ketidakstabilan tes UI, masalah simulator, dan konfigurasi perangkat yang salah. Diagnostik kesalahan Snapshot dimulai dengan analisis laporan HTML, yang berisi tangkapan layar setiap langkah dan informasi tentang tes yang gagal.

Kesalahan «Failed to build scheme MyAppUITests» terjadi ketika skema tes UI tidak dikonfigurasi untuk pembuatan. Solusi: pastikan bahwa Scheme terpisah untuk tes UI telah dibuat di Xcode dan opsi Shared diaktifkan untuk akses dari baris perintah. Xcode Scheme adalah konfigurasi pembuatan, pengujian, dan peluncuran aplikasi yang mendefinisikan kumpulan target dan parameter untuk setiap tindakan.

Kesalahan «No simulators found matching...» menunjukkan tidak adanya simulator dengan jenis perangkat atau versi iOS yang ditentukan. Solusi: jalankan xcrun simctl create untuk membuat simulator atau tentukan perangkat yang ada dari daftar xcrun simctl list. xcrun simctl adalah alat baris perintah Xcode untuk mengelola simulator iOS: membuat, menghapus, menjalankan, dan mendiagnosis.

Pada kesalahan «UI test failure» tes UI tidak lulus pada salah satu bahasa atau perangkat. Solusi: jalankan Snapshot dengan flag --stop_after_first_error untuk berhenti pada kesalahan pertama, analisis tangkapan layar di laporan HTML, dan perbaiki tes. Penyebab umum adalah panjang teks yang berbeda dalam berbagai bahasa, yang menyebabkan elemen antarmuka tumpang tindih atau keluar dari batas layar.

Pertanyaan yang sering diajukan

Perangkat iOS apa yang didukung Snapshot?

Snapshot mendukung semua perangkat dari keluarga iPhone dan iPad, termasuk iPhone 15 Pro Max (6.7 inci), iPhone 15 (6.1 inci), iPad Pro 12.9 inci, dan iPad mini. Untuk setiap perangkat, Snapshot memuat skin simulator yang sesuai dari Xcode, yang menjamin resolusi layar yang akurat.

Apakah diperlukan perangkat nyata untuk menjalankan Snapshot?

Tidak, Snapshot bekerja secara eksklusif dengan simulator iOS dari Xcode. Perangkat nyata tidak diperlukan dan tidak didukung — semua tangkapan layar dihasilkan di lingkungan simulator yang memberikan resolusi dan reproduksi warna yang identik untuk persyaratan App Store.

Bagaimana Snapshot menangani lokalisasi teks dalam tangkapan layar?

Snapshot mengganti bahasa simulator sebelum menjalankan tes UI untuk setiap bahasa dari Snapfile. Aplikasi ditampilkan dalam bahasa yang sesuai melalui pengaturan lokalisasi sistem. Tes UI menggunakan string yang dilokalisasi melalui NSLocalizedString, yang menjamin teks yang benar di semua tangkapan layar.

Bisakah tangkapan layar dihasilkan untuk aplikasi macOS?

Ya, Snapshot mendukung aplikasi macOS mulai dari versi Fastlane 2.200. Untuk macOS, tentukan platform di Snapfile melalui parameter app_platform("macOS"). Snapshot menjalankan tes UI di macOS dan membuat tangkapan layar sesuai dengan persyaratan Mac App Store.

Apa perbedaan Snapshot dengan tangkapan layar biasa melalui Cmd+S?

Tangkapan layar manual memerlukan pembukaan setiap layar secara manual, mengganti bahasa, mengganti perangkat — sekitar 60 tindakan untuk satu set lengkap. Snapshot mengotomatiskan seluruh proses: mengganti bahasa dan perangkat, menjalankan tes UI, dan menyimpan tangkapan layar dengan nama yang benar untuk App Store dalam 15 menit.

Ringkasan

  • Snapshot — alat Fastlane untuk menghasilkan tangkapan layar aplikasi iOS secara otomatis melalui tes UI XCTest di semua perangkat dan bahasa.
  • Pengembang menambahkan panggilan snapshot() ke dalam kode tes UI di titik-titik utama aplikasi — Snapshot mengambil gambar di tempat-tempat ini.
  • Konfigurasi melalui Snapfile mendefinisikan daftar perangkat, bahasa, dan parameter simulator: devices, languages, reinstall_app, dan erase_simulator.
  • Hasil disimpan di direktori screenshots/[Language]/ dalam format yang kompatibel dengan Deliver untuk unggahan langsung ke App Store.
  • Integrasi dalam CI/CD memungkinkan pembuatan tangkapan layar baru secara otomatis sebelum setiap rilis dengan simulator paralel untuk mempercepat proses.
  • Kesalahan umum Snapshot terkait dengan tes UI yang tidak stabil di berbagai bahasa, tidak adanya simulator di Xcode, atau konfigurasi Scheme yang salah.

Kami akan mengembangkan aplikasi seluler turnkey

IT Sectr membuat aplikasi iOS dan Android untuk startup dan bisnis sejak 2017. Kami akan memberi saran dan mengusulkan solusi terbaik.

Diskusikan proyek

Baca juga