· Xuất bản · 5 phút đọc

Tải hàng loạt ảnh chụp màn hình đã bản địa hóa lên cả hai kho ứng dụng

Tải hàng loạt ảnh chụp màn hình đã bản địa hóa lên cả hai kho ứng dụng
TL;DR. Không kho ứng dụng nào có tính năng tải hàng loạt ảnh chụp màn hình thực sự trên nhiều ngôn ngữ. Trong App Store Connect và Google Play Console, bạn tải lên theo từng ngôn ngữ, từng nhóm kích thước thiết bị, từng ô một trong giao diện web. Cách duy nhất để tránh việc kéo-thả là App Store Connect API và Google Play Developer API (hoặc fastlane deliver/supply chạy trên nền các API đó). Mokbi tạo ra mọi ngôn ngữ × thiết bị và xuất bản toàn bộ bộ ảnh lên cả hai kho thay bạn — đẩy trực tiếp lên Google Play qua Play Developer API và chuẩn bị sẵn trên App Store Connect, chỉ chờ bạn gửi duyệt lần cuối.

Bạn đang giữa quá trình phát hành. Ảnh chụp màn hình đã hoàn tất. Giờ bạn phải đưa chúng lên cả hai kho, ở mọi ngôn ngữ bạn hỗ trợ, ở mọi kích thước thiết bị mà mỗi kho yêu cầu. Đây là phần không ai cảnh báo trước — và là phần khiến người ta lặng lẽ tìm kiếm câu như "bulk upload localized screenshots app store connect / google play all languages".

Câu trả lời thẳng thắn trước tiên, để bạn khỏi phải tìm thêm: không kho nào có tính năng tải hàng loạt gốc trải rộng nhiều ngôn ngữ. Bạn tải lên theo từng ngôn ngữ, từng nhóm kích thước thiết bị, trong giao diện web, từng ô một.

"Không có tải hàng loạt" thực sự nghĩa là gì

Trong App Store Connect, bạn mở ứng dụng, chọn phiên bản, cuộn xuống phần ảnh chụp màn hình, rồi kéo các file PNG vào một ô loại màn hình cụ thể — 6.9", 6.5", iPad 13", và tương tự. Sau đó bạn chuyển menu ngôn ngữ sang ngôn ngữ tiếp theo và làm lại từ đầu. Apple cho phép thêm tối đa 10 ảnh chụp màn hình theo từng loại thiết bị, theo từng ngôn ngữ. Không có nút "áp dụng cho tất cả ngôn ngữ" cho hình ảnh.

Google Play Console hoạt động theo cách tương tự. Trong mục Thông tin cửa hàng chính, bạn chọn một ngôn ngữ, rồi tải ảnh chụp màn hình lên từng phần thiết bị — điện thoại, máy tính bảng 7 inch, máy tính bảng 10 inch, và tùy chọn Chromebook, Wear OS, Android TV, cùng các loại mới hơn. Tối đa 8 ảnh mỗi loại thiết bị. Đổi ngôn ngữ, lặp lại.

Vậy đơn vị công việc không phải là "một bộ ảnh chụp màn hình". Mà là một ô = một ngôn ngữ × một nhóm kích thước thiết bị, và bạn phải điền từng ô bằng tay.

Quy mô của việc kéo-thả, tính bằng con số

Hãy đếm số ô một cách trung thực. Trên Apple, một lần gửi thông thường lấp đầy ít nhất một nhóm màn hình iPhone và một nhóm màn hình iPad — cứ tính là 2, nhiều hơn nếu bạn giữ riêng bộ iPhone 6.5" bên cạnh bộ 6.9". Trên Play, một lần gửi thông thường lấp đầy điện thoại cộng hai kích thước máy tính bảng — cứ tính là 3, nhiều hơn nếu bạn thêm Chromebook hoặc Wear OS.

  • Một ngôn ngữ, cả hai kho: khoảng 2 ô Apple + 3 ô Play = 5 lượt tải lên thủ công.
  • Mười ngôn ngữ: khoảng 20 + 30 = 50 ô cần điền, mỗi ô chứa tối đa 8–10 ảnh.
  • Năm mươi ngôn ngữ: khoảng 100 + 150 = 250 lượt kéo-thả riêng biệt, trước cả khi bạn kịp kiểm tra xem ảnh đúng đã vào đúng ô hay chưa.

Ba mươi phút kéo-thả cho mỗi ngôn ngữ là con số người ta hay nhắc đến, và có lý do. Với số ngôn ngữ thực tế, việc này không còn là một tác vụ mà trở thành cả một buổi chiều — một buổi chiều bạn lặp lại ở lần phát hành tiếp theo.

Hai con đường tự động hóa duy nhất

Nếu bạn muốn bỏ qua hoàn toàn giao diện web, có đúng hai cánh cửa được hỗ trợ chính thức, mỗi kho một cánh:

  • App Store Connect API. Tài nguyên ảnh chụp màn hình cho phép bạn tạo một bộ và tải ảnh lên bằng lập trình cho một ngôn ngữ và một loại màn hình thiết bị cụ thể. Bạn xác thực bằng API key và đẩy ảnh theo từng ngôn ngữ, từng nhóm màn hình.
  • Google Play Developer API. Phương thức edits.images.upload tải lên một ảnh của một ngôn ngữ và loại ảnh cụ thể (phoneScreenshots, sevenInchScreenshots, tenInchScreenshots, v.v.) vào một bản chỉnh sửa đang chờ, mà sau đó bạn xác nhận (commit).

Hầu hết các nhóm không gọi trực tiếp các API này. Họ dùng fastlane ở lớp trên: deliver (còn gọi là upload_to_app_store) điều khiển App Store Connect API, và supply (upload_to_play_store) điều khiển Play Developer API. Supply thậm chí còn tạo nhiều luồng tải lên để đẩy ảnh đã bản địa hóa đồng thời. Đó mới là "tải hàng loạt" thực sự — một vòng lặp API, không phải một nút bấm trên bảng điều khiển.

Cần nói rõ về cái giá phải trả: dùng fastlane nghĩa là cần một bộ công cụ Ruby, một fastfile, thông tin xác thực API của kho ứng dụng, và (với phía Apple) toàn bộ hạ tầng ký mã và trình giả lập quen thuộc. Nó đáng giá khi bạn phát hành thường xuyên. Với một ứng dụng chỉ gửi vài lần mỗi năm, dựng cả hệ thống này chỉ để tải ảnh lên có thể tốn công hơn cả việc kéo-thả mà nó thay thế. Nếu bạn đã dùng fastlane cho việc build, thêm bước ảnh chụp màn hình gần như không tốn thêm gì.

Nơi ảnh chụp màn hình ra đời mới là nút thắt thực sự

Hãy để ý rằng mọi con đường ở trên đều giả định các file đã tồn tại sẵn — đúng kích thước, mỗi bộ cho một nhóm thiết bị, đã dịch theo từng ngôn ngữ. Đó mới là phần khó thực sự. App Store Connect API và Play Developer API chỉ di chuyển các ảnh đã hoàn thiện; chúng không thiết kế, không đổi kích thước, không dịch chú thích. Nếu bạn đang tạo thủ công 50 phiên bản ngôn ngữ ở 5 kích thước thiết bị bằng công cụ thiết kế, thì việc tải lên chưa bao giờ là nút thắt của bạn.

Đây chính là khoảng trống mà Mokbi lấp đầy. Bạn xây dựng một thiết kế duy nhất, và nó tạo ra mọi kích thước thiết bị và mỗi một trong số 50 ngôn ngữ từ nguồn duy nhất đó — chú thích đã dịch, bố cục được sắp xếp lại, mỗi khung được xuất đúng kích thước pixel mà ô của kho ứng dụng yêu cầu. Kết quả là một lô: một bộ file ngôn ngữ × thiết bị sạch sẽ, được đặt tên và sắp xếp, sẵn sàng thả vào đúng ô.

Xuất bản lên cả hai kho chỉ với một cú nhấp

Mokbi giải quyết đúng vấn đề này. Bạn xây dựng một bộ, và nó tạo ra mọi ngôn ngữ × mọi kích thước thiết bị rồi xuất bản chúng lên cả hai kho — đẩy trực tiếp lên Google Play qua Play Developer API, và chuẩn bị sẵn các bộ ảnh trên App Store Connect chờ bạn gửi duyệt. Apple yêu cầu bước Gửi (Submit) và duyệt cuối cùng phải do chính bạn thực hiện, nên cú chạm cuối đó vẫn thuộc về bạn; mọi thứ trước đó đã được xử lý sẵn. Không còn tải lên thủ công theo từng ngôn ngữ, từng thiết bị.

Nếu bạn đã chạy fastlane hoặc các API của kho ứng dụng trong CI riêng, cùng những file đã xuất đó có thể đưa thẳng vào deliversupply. Dù theo cách nào, việc thiết kế, đổi kích thước và dịch sang 50 ngôn ngữ đều đã được làm sẵn cho bạn — và giờ cả việc xuất bản cũng vậy.

Quy trình thực sự tiết kiệm cả buổi chiều

  1. Thiết kế một lần. Xây dựng chuỗi ảnh (carousel) một lần duy nhất trong trình chỉnh sửa.
  2. Xuất hàng loạt toàn bộ ma trận. Mọi kích thước thiết bị × mọi ngôn ngữ, đúng kích thước kho ứng dụng yêu cầu, trong một lần xuất.
  3. Xuất bản lên cả hai kho. Mokbi đẩy các bộ ảnh lên Google Play và chuẩn bị sẵn trên App Store Connect chờ bạn gửi duyệt lần cuối — hoặc giao file cho fastlane deliver/supply nếu bạn chạy CI riêng.
  4. Lần phát hành tiếp theo, xuất lại và lặp lại. Đổi thiết kế một lần, tạo lại toàn bộ ma trận, tải lên lần nữa.

Con số quan trọng nhất: số lượng ô không đổi, nhưng thời gian cho mỗi ô giảm mạnh khi bạn chỉ cần thả một file đã hoàn thiện, đúng kích thước, thay vì phải thiết kế và đổi kích thước nó trước. Đó là khác biệt giữa một buổi chiều và một tách cà phê.

Nên đọc tiếp

Mở trình chỉnh sửa →