Skip to content

Store screenshots break when duplicate names are used in App Store #3715

Description

@Nezz

Build/Submit details page URL

No response

Summary

When using eas metadata:pull, the file names of screenshots are preserved from what was manually uploaded to the App Store. However, if different screenshots are uploaded with the same file name, it breaks the metadata.

Managed or bare?

Bare (CNG)

Environment

18/18 checks passed. No issues detected!

expo-env-info 2.0.12 environment info:
System:
OS: macOS 26.4.1
Shell: 5.9 - /bin/zsh
Binaries:
Node: 24.14.0 - /opt/homebrew/bin/node
npm: 11.9.0 - /opt/homebrew/bin/npm
Managers:
CocoaPods: 1.16.2 - /opt/homebrew/bin/pod
SDKs:
iOS SDK:
Platforms: DriverKit 25.4, iOS 26.4, macOS 26.4, tvOS 26.4, visionOS 26.4, watchOS 26.4
IDEs:
Android Studio: 2025.3 AI-253.30387.90.2532.14935130
Xcode: 26.4.1/17E202 - /usr/bin/xcodebuild
npmPackages:
expo: ~55.0.23 => 55.0.23
expo-router: ~55.0.14 => 55.0.14
expo-updates: ~55.0.21 => 55.0.21
react: 19.2.0 => 19.2.0
react-dom: 19.2.0 => 19.2.0
react-native: 0.83.6 => 0.83.6
react-native-web: ~0.21.2 => 0.21.2
npmGlobalPackages:
eas-cli: 18.12.0
expo-cli: 6.3.12
Expo Workflow: bare

Error output

No response

Reproducible demo or steps to reproduce from a blank project

  1. Upload a screenshot titled iPhone 5.5 - 2.png to App Store Connect
  2. Upload another different screenshot with same same name
  3. Run eas metadata:pull

The generated JSON correctly avoids duplicates:

            "store/apple/screenshot/en-US/APP_IPHONE_55/iPhone 5.5 - 2.png",
            "store/apple/screenshot/en-US/APP_IPHONE_55/iPhone 5.5 - 2-2.png",
            "store/apple/screenshot/en-US/APP_IPHONE_55/iPhone 5.5 - 2-3.png",

However, the screenshots folder only contains iPhone 5.5 - 2.png and not the other two. It seems that the later screenshot overwrites the earlier.

When trying to push this metadata to the app store, I also got an error that eas tried to upload more than 10 screenshots, so maybe in such cases the deletion is also broken?

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs reviewIssue is ready to be reviewed by a maintainer

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions