Store screenshots break when duplicate names are used in App Store
- Dominant language
- TypeScript
- Stars
- 1.4k
- Forks
- 236
- Avg merge
- 3d 1h
- Merged PRs (30d)
- 91
Description
### 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?
Contributor guide
Assessment
This issue has not been assessed yet.