· Yayınlama · 5 dakikalık okuma

Yerelleştirilmiş ekran görüntülerini her iki mağazaya toplu yükleme

Yerelleştirilmiş ekran görüntülerini her iki mağazaya toplu yükleme
TL;DR. Ne App Store'da ne de Google Play'de diller arasında gerçek bir toplu ekran görüntüsü yükleme özelliği var. App Store Connect ve Google Play Console'da yüklemeleri dil başına, cihaz boyutu ailesi başına, web arayüzünde tek tek yapıyorsun. Sürükle-bırağı atlamanın tek yolları App Store Connect API ve Google Play Developer API (veya bunların üzerine oturan fastlane deliver/supply). Mokbi her dil × cihaz kombinasyonunu render eder ve seti senin için her iki mağazaya yayınlar — Google Play'e Play Developer API üzerinden doğrudan gönderir, App Store Connect'te ise son onayını bekleyecek şekilde hazırlar.

Bir sürümün ortasındasın. Ekran görüntüleri bitti. Şimdi bunları her iki mağazaya, desteklediğin her dile, her mağazanın istediği her cihaz boyutuna sokman gerekiyor. Kimsenin seni uyarmadığı kısım burası — ve insanların sessizce "bulk upload localized screenshots app store connect / google play all languages" gibi bir arama yaptığı kısım.

Önce dürüst cevabı verelim, böylece aramayı bırakabilirsin: hiçbir mağazada diller arasında yerel bir toplu yükleme yok. Yüklemeleri dil başına, cihaz boyutu ailesi başına, web arayüzünde tek tek yapıyorsun.

"Toplu yükleme yok" gerçekte ne anlama geliyor

App Store Connect'te uygulamanı açıyorsun, sürümü seçiyorsun, ekran görüntüleri bölümüne kaydırıyorsun ve PNG'leri belirli bir görüntü türü slotuna sürüklüyorsun — 6.9", 6.5", 13" iPad ve benzerleri. Sonra yerelleştirme açılır menüsünü bir sonraki dile çevirip aynısını tekrar yapıyorsun. Apple, cihaz türü ve yerelleştirme başına en fazla 10 ekran görüntüsü eklemene izin veriyor. Görseller için bir "tüm dillere uygula" düğmesi yok.

Google Play Console de aynı şekilde çalışıyor. Ana mağaza listesi altında bir dil seçiyorsun, sonra ekran görüntülerini her cihaz bölümüne yüklüyorsun — telefon, 7 inç tablet, 10 inç tablet ve isteğe bağlı olarak Chromebook, Wear OS, Android TV ve daha yeni türler. Cihaz türü başına en fazla 8. Dili değiştir, tekrarla.

Yani işin birimi "bir ekran görüntüsü seti" değil. Bir kova = bir dil × bir cihaz boyutu ailesi ve her kovayı elle dolduruyorsun.

Sürükleme işinin boyutu, sayılarla

Kovaları dürüstçe say. Apple'da normal bir gönderim en az bir iPhone görüntü ailesini ve bir iPad görüntü ailesini doldurur — bunu 2 say, 6.9" yanında ayrı bir 6.5" iPhone seti tutuyorsan daha fazla. Play'de normal bir gönderim telefon artı iki tablet boyutunu doldurur — bunu 3 say, Chromebook veya Wear OS eklersen daha fazla.

  • Bir dil, her iki mağaza: yaklaşık 2 Apple kovası + 3 Play kovası = 5 manuel yükleme.
  • On dil: her biri 8-10 görsele kadar tutan, doldurulacak yaklaşık 20 + 30 = 50 kova.
  • Elli dil: doğru görselin doğru slota düştüğünü kontrol etmeden önce bile yaklaşık 100 + 150 = 250 ayrı sürükle-bırak yüklemesi.

İnsanların dil başına otuz dakika sürükleme diye bir rakam vermesinin bir nedeni var. Gerçek bir dil sayısında bu artık bir görev olmaktan çıkıp bir öğleden sonraya dönüşüyor — bir sonraki sürümde tekrarladığın bir öğleden sonra.

Tek iki otomasyon yolu

Web arayüzünü tamamen atlamak istiyorsan, her mağaza için bir tane olmak üzere tam olarak iki desteklenen kapı var:

  • App Store Connect API. Ekran görüntüsü kaynağı, belirli bir yerelleştirme ve cihaz görüntü türü için programatik olarak bir set oluşturup görsel yüklemene izin verir. Bir API anahtarıyla kimlik doğrulaması yapıp görselleri dil başına, görüntü ailesi başına gönderirsin.
  • Google Play Developer API. edits.images.upload yöntemi, belirtilen bir dil ve görsel türünde (phoneScreenshots, sevenInchScreenshots, tenInchScreenshots vb.) bir görseli, sonradan işleyeceğin bekleyen bir düzenlemeye yükler.

Çoğu ekip bunları ham haliyle çağırmıyor. Üzerine fastlane koyuyorlar: deliver (upload_to_app_store olarak da sunulur) App Store Connect API'sini yönetir, supply (upload_to_play_store) ise Play Developer API'sini yönetir. Supply, yerelleştirilmiş görselleri eşzamanlı göndermek için birden fazla yükleme iş parçacığı bile başlatır. Gerçek "toplu yükleme" bu — kontrol panelindeki bir düğme değil, bir API döngüsü.

Maliyeti açık netleştirmekte fayda var: fastlane, bir Ruby araç zinciri, bir fastfile, mağaza API kimlik bilgileri ve (Apple tarafı için) alışılagelmiş kod imzalama ve simülatör altyapısı demek. Sık sürüm çıkarıyorsan karşılığını veriyor. Yılda birkaç kez gönderim yapan bir uygulama için sadece görsel yüklemek amacıyla kurmak, yerine geçtiği sürüklemeden daha fazla iş olabilir. Zaten derleme için çalıştırıyorsan, ekran görüntüsü adımını eklemek neredeyse bedava.

Gerçek darboğaz ekran görüntülerinin nereden geldiği

Yukarıdaki her yolun, dosyaların zaten var olduğunu varsaydığına dikkat et — doğru boyutlandırılmış, cihaz ailesi başına bir set, dil başına çevrilmiş. Asıl zor kısım bu. App Store Connect API ve Play Developer API bitmiş görselleri taşır; onları tasarlamaz, yeniden boyutlandırmaz veya metinlerini çevirmez. Bir tasarım aracında elle 5 cihaz boyutunda 50 dil varyantı üretiyorsan, yükleme hiçbir zaman senin darboğazın olmamıştır.

Mokbi'nin kapattığı boşluk bu. Tek bir tasarım oluşturuyorsun, o da tek bir kaynaktan her cihaz boyutunu ve 50 dilin her birini render ediyor — metinler çevrilmiş, düzen yeniden akıtılmış, her kare mağaza slotunun beklediği tam piksel boyutlarında dışa aktarılmış. Çıktı bir toplu iş: dil × cihaz dosyalarından oluşan, isimlendirilmiş ve düzenlenmiş, doğru kovalara bırakılmaya hazır temiz bir set.

Her iki mağazaya tek tıkla yayınlama

Mokbi tam olarak bunu çözüyor. Tek bir set oluşturuyorsun, o da her dil × her cihaz boyutunu render edip her iki mağazaya yayınlıyor — Google Play'e Play Developer API üzerinden doğrudan gönderir, App Store Connect'te ise senin onaylaman için setleri hazırlar. Apple, son Gönder ve inceleme adımını zorunlu tuttuğu için o son dokunuş sende kalır; ona kadar olan her şey halledilir. Dil ve cihaz başına manuel yükleme yok.

Kendi CI'ında zaten fastlane veya mağaza API'lerini çalıştırıyorsan, aynı dışa aktarılan dosyalar doğrudan deliver ve supply'a beslenir. Her iki durumda da tasarım, yeniden boyutlandırma ve 50 dilde çeviri senin için yapılmış olur — artık yayınlama da öyle.

Öğleden sonrayı gerçekten kurtaran iş akışı

  1. Bir kez tasarla. Karuseli editörde tek seferde oluştur.
  2. Matrisi toplu olarak dışa aktar. Tek bir dışa aktarmada her cihaz boyutu × her dil, tam mağaza boyutlarında.
  3. Her iki mağazaya yayınla. Mokbi setleri Google Play'e gönderir ve App Store Connect'te son onayın için hazırlar — kendi CI'ını çalıştırıyorsan dosyaları fastlane deliver/supply'a da teslim edebilirsin.
  4. Sonraki sürümde yeniden dışa aktar ve tekrarla. Tasarımı bir kez değiştir, tüm matrisi yeniden üret, tekrar yükle.

Önemli olan matematik şu: kova sayısı değişmiyor ama önce tasarlayıp boyutlandırmak yerine bitmiş, doğru boyutlandırılmış bir dosyayı bıraktığında kova başına harcanan süre çöküyor. Bu, bir öğleden sonra ile bir kahve molası arasındaki fark.

Sırada ne var

Editörü aç →