At the moment, managing App Info Localizations (such as the app name, subtitle, description, privacy policy URL, keywords, etc.) and uploading App Store screenshots still requires manually updating everything in App Store Connect.
It would be great if this could all be handled natively.
The idea
Allow users to keep a directory (perhaps app-store/ ) inside their repository containing:
app-store/
├── metadata.json
└── screenshots/
├── en-AU/
│ ├── APP_IPHONE_67/
│ └── APP_IPAD_PRO_3GEN_129/
└── it/
├── APP_IPHONE_67/
└── APP_IPAD_PRO_3GEN_129/
...
The metadata file would contain all the App Store information that normally has to be entered manually, for example:
- app name
- subtitle
- description
- keywords
- support URL
- marketing URL
- privacy policy URL
- copyright
- categories
- contact information
- age ratings
- release notes
- and any other required storefront metadata
The screenshots directory would contain localized screenshots that could be uploaded automatically during the workflow.
Then the workflow could simply be something like:
publishing:
app_store_connect:
auth: integration
submit_to_app_store: true
storefront_orchestration:
metadata_file: app-store/metadata.json
screenshots_dir: app-store/screenshots
or alternatively through the CLI:
scripts:
- name: Sync App Store metadata
script: |
codemagic-cli app-store sync \
--bundle-id com.example.app \
--config-path app-store/metadata.json \
--assets-dir app-store/screenshots
At the moment, managing App Info Localizations (such as the
app name,subtitle,description,privacy policy URL,keywords, etc.) and uploading App Storescreenshotsstill requires manually updating everything in App Store Connect.It would be great if this could all be handled natively.
The idea
Allow users to keep a directory (perhaps
app-store/) inside their repository containing:The metadata file would contain all the App Store information that normally has to be entered manually, for example:
The screenshots directory would contain localized screenshots that could be uploaded automatically during the workflow.
Then the workflow could simply be something like:
or alternatively through the CLI: