· Publishing · 5 menit baca

Mengunggah massal screenshot terlokalisasi ke kedua app store

Mengunggah massal screenshot terlokalisasi ke kedua app store
TL;DR. Tidak ada unggah massal screenshot lintas bahasa yang sesungguhnya di kedua toko. Di App Store Connect dan Google Play Console, kamu mengunggah per bahasa, per kelompok ukuran perangkat, satu bucket dalam satu waktu di web UI. Satu-satunya cara melewati drag-and-drop ini adalah App Store Connect API dan Google Play Developer API (atau fastlane deliver/supply yang berjalan di atasnya). Mokbi merender setiap kombinasi bahasa × perangkat dan menerbitkan setnya ke kedua toko untuk kamu — mendorong langsung ke Google Play lewat Play Developer API, dan menyiapkannya di App Store Connect siap untuk submit terakhirmu.

Kamu sedang di tengah-tengah rilis. Screenshot sudah selesai. Sekarang kamu harus memasukkannya ke kedua toko, dalam setiap bahasa yang kamu dukung, di setiap ukuran perangkat yang diwajibkan masing-masing toko. Inilah bagian yang tidak pernah diperingatkan siapa pun — dan bagian di mana orang diam-diam mencari sesuatu seperti "bulk upload localized screenshots app store connect / google play all languages".

Ini jawaban jujurnya duluan, supaya kamu bisa berhenti mencari: tidak ada satu pun toko yang punya unggah massal native yang mencakup semua bahasa. Kamu mengunggah per bahasa, per kelompok ukuran perangkat, di web UI, satu bucket dalam satu waktu.

Apa arti sebenarnya dari "tidak ada unggah massal"

Di App Store Connect kamu membuka aplikasimu, memilih versi, gulir ke bagian screenshot, lalu menyeret PNG ke slot tipe tampilan tertentu — 6.9", 6.5", iPad 13", dan seterusnya. Lalu kamu ganti dropdown lokalisasi ke bahasa berikutnya dan mengulanginya lagi. Apple mengizinkan sampai 10 screenshot per tipe perangkat, per lokalisasi. Tidak ada tombol "terapkan ke semua bahasa" untuk gambar.

Google Play Console bekerja dengan cara yang sama. Di bagian Main store listing kamu memilih satu bahasa, lalu mengunggah screenshot ke setiap bagian perangkat — ponsel, tablet 7 inci, tablet 10 inci, dan opsional Chromebook, Wear OS, Android TV, serta tipe yang lebih baru. Sampai 8 gambar per tipe perangkat. Ganti bahasa, ulangi.

Jadi unit pekerjaannya bukan "satu set screenshot". Melainkan satu bucket = satu bahasa × satu kelompok ukuran perangkat, dan kamu mengisi setiap bucket dengan tangan.

Besaran kerja seretnya, dalam angka

Hitung bucket-nya dengan jujur. Di Apple, submission normal mengisi minimal satu kelompok tampilan iPhone dan satu kelompok tampilan iPad — sebut saja 2, lebih banyak lagi kalau kamu tetap menyimpan set iPhone 6.5" terpisah selain 6.9". Di Play, submission normal mengisi ponsel plus dua ukuran tablet — sebut saja 3, lebih banyak lagi kalau kamu menambahkan Chromebook atau Wear OS.

  • Satu bahasa, kedua toko: kira-kira 2 bucket Apple + 3 bucket Play = 5 unggahan manual.
  • Sepuluh bahasa: sekitar 20 + 30 = 50 bucket yang harus diisi, masing-masing menampung sampai 8–10 gambar.
  • Lima puluh bahasa: sekitar 100 + 150 = 250 unggahan drag-and-drop terpisah, bahkan sebelum kamu memeriksa apakah gambar yang benar sudah masuk ke slot yang benar.

Tiga puluh menit menyeret per bahasa adalah angka yang sering dikutip orang, dan bukan tanpa alasan. Pada jumlah bahasa yang nyata, ini berhenti menjadi sekadar tugas dan berubah jadi kerja sepanjang sore — sore yang kamu ulangi lagi di rilis berikutnya.

Hanya ada dua jalur otomatisasi

Kalau kamu ingin melewati web UI sepenuhnya, ada tepat dua pintu resmi, satu per toko:

  • App Store Connect API. Resource screenshots memungkinkanmu membuat satu set dan mengunggah gambar secara programatik untuk lokalisasi dan tipe tampilan perangkat tertentu. Kamu autentikasi dengan API key dan mendorong gambar per bahasa, per kelompok tampilan.
  • Google Play Developer API. Metode edits.images.upload mengunggah satu gambar dari bahasa dan tipe gambar tertentu (phoneScreenshots, sevenInchScreenshots, tenInchScreenshots, dan seterusnya) ke dalam sebuah edit yang tertunda, yang kemudian kamu commit.

Kebanyakan tim tidak memanggilnya secara mentah. Mereka menggunakan fastlane di atasnya: deliver (juga dikenal sebagai upload_to_app_store) menjalankan App Store Connect API, dan supply (upload_to_play_store) menjalankan Play Developer API. Supply bahkan membuat beberapa thread unggah untuk mendorong gambar terlokalisasi secara bersamaan. Itulah "unggah massal" yang sesungguhnya — sebuah loop API, bukan tombol di dashboard.

Perlu jelas soal biayanya: fastlane berarti toolchain Ruby, sebuah fastfile, kredensial API toko, dan (untuk sisi Apple) pipa code-signing dan simulator yang biasa. Ini terbayar kalau kamu rilis sering. Untuk aplikasi yang submit beberapa kali setahun, menyiapkannya hanya untuk mengunggah gambar bisa jadi lebih banyak kerja daripada menyeret manual yang digantikannya. Kalau kamu sudah menjalankannya untuk build, menambahkan langkah screenshot nyaris gratis.

Asal-usul screenshot itulah bottleneck yang sesungguhnya

Perhatikan bahwa setiap jalur di atas mengasumsikan filenya sudah ada — ukuran benar, satu set per kelompok perangkat, diterjemahkan per bahasa. Itulah bagian sulit yang sesungguhnya. App Store Connect API dan Play Developer API memindahkan gambar yang sudah jadi; mereka tidak mendesainnya, mengubah ukurannya, atau menerjemahkan keterangannya. Kalau kamu memproduksi 50 varian bahasa dalam 5 ukuran perangkat secara manual di alat desain, unggahan tidak pernah jadi bottleneck-mu.

Inilah celah yang ditutup Mokbi. Kamu membangun satu desain, dan ia merender setiap ukuran perangkat serta setiap dari 50 bahasa dari satu sumber itu — keterangan diterjemahkan, layout ditata ulang, setiap frame diekspor pada dimensi piksel persis yang diharapkan slot toko itu. Hasilnya adalah satu batch: satu set file bahasa × perangkat yang bersih, diberi nama dan terorganisir, siap dimasukkan ke bucket yang tepat.

Publish satu klik ke kedua toko

Mokbi memecahkan persis masalah ini. Kamu membangun satu set, dan ia merender setiap bahasa × setiap ukuran perangkat lalu menerbitkannya ke kedua toko — mendorong langsung ke Google Play lewat Play Developer API, dan menyiapkan setnya di App Store Connect siap untuk kamu submit. Apple mewajibkan Submit final dan review, jadi ketukan terakhir itu tetap di tanganmu; semua sebelum itu sudah ditangani. Tidak ada lagi unggah manual per bahasa, per perangkat.

Kalau kamu sudah menjalankan fastlane atau API toko di CI milikmu sendiri, file hasil ekspor yang sama langsung masuk ke deliver dan supply. Bagaimanapun caranya, desain, ubah ukuran, dan terjemahan 50 bahasa sudah dikerjakan untukmu — dan sekarang publish-nya juga.

Alur kerja yang benar-benar menghemat waktu satu sore

  1. Desain sekali. Bangun carousel satu kali saja di editor.
  2. Ekspor massal seluruh matriks. Setiap ukuran perangkat × setiap bahasa, pada dimensi toko yang tepat, dalam satu ekspor.
  3. Terbitkan ke kedua toko. Mokbi mendorong set ke Google Play dan menyiapkannya di App Store Connect untuk submit terakhirmu — atau serahkan file itu ke fastlane deliver/supply kalau kamu menjalankan CI sendiri.
  4. Rilis berikutnya, ekspor ulang dan ulangi. Ubah desain sekali, hasilkan ulang seluruh matriks, unggah lagi.

Hitungan yang penting: jumlah bucket-nya tidak berubah, tapi waktu per bucket runtuh drastis kalau kamu tinggal menjatuhkan file yang sudah jadi dan berukuran benar, bukannya mendesain dan mengubah ukurannya dulu. Itulah bedanya antara kerja satu sore penuh dan waktu istirahat kopi.

Apa lagi yang perlu dibaca

Buka editor →