You maintain titles, descriptions, keywords, links, and screenshots as files in the app repository in the Fastlane structure; the publish-ios and publish-android jobs upload them every time they publish. In the platform you edit the texts in an editor and manage the languages through the language chips.
Texts per language
Every language has a folder such as de-DE or en-US with one text file per field, for iOS under ios/fastlane/metadata/<language>/:
| File | Content |
|---|---|
name.txt |
App name in the store |
subtitle.txt |
Subtitle |
description.txt |
Description |
keywords.txt |
Search keywords, separated by commas |
release_notes.txt |
What’s new |
support_url.txt, marketing_url.txt, privacy_url.txt |
Links to support, marketing, and privacy policy |
apple_tv_privacy_policy.txt |
Privacy policy for Apple TV |
app_clip_default_experience_subtitle.txt |
Subtitle of the App Clip |
For Android they live under android/fastlane/metadata/<language>/:
| File | Content |
|---|---|
title.txt |
App name in the store |
short_description.txt |
Short description |
full_description.txt |
Description |
keywords.txt |
Search keywords, separated by commas |
recent_changes.txt |
Changes in this version |
support_url.txt, marketing_url.txt, privacy_url.txt |
Links to support, marketing, and privacy policy |
promotional_text.txt |
Promotional text |
changelogs/default.txt |
Default changelog |
Details for the whole app
Language-independent details live directly in the metadata folder. For iOS, ios/fastlane/metadata/ holds the categories (primary and secondary with subcategories), copyright.txt, app_store_title.txt, app_default_language.txt, and the app icon app_icon.png at 1024 × 1024 pixels. The age rating including gambling and loot boxes is in app_rating_config.json, the privacy details in app_privacy.json, and the contact details for review in review_information/*.txt. For Android, android/fastlane/metadata/ holds the icon app_icon.png and the data safety details google_data_safety.csv.
Android store graphics live per language under images/: icon.png (512 × 512 pixels), featureGraphic.png (1024 × 500 pixels), promoGraphic.png, and tvBanner.png.
Screenshots
You place screenshots in the metadata folders yourself (iOS: iPhone and iPad, assigned by filename; Android: phone plus 7-inch and 10-inch tablets) or let the pipeline generate them through UI tests:
- Define the screens in
test/goldens/Framefile.jsonand the marketing texts above them intest/goldens/<language>/title.strings. - Commit an empty file
.doppelt-digital-create-new-screenshotsto the repository root and push tomain. - The pipeline renders the screens in all project languages in screenshot test mode (
SCREENSHOT_TEST_MODE), frames them with Frameit, and stores them in the metadata folders. - On the next publish, the pipeline uploads the new screenshots and removes the marker file again.