Error 90189: Redundant Binary Upload
CFBundleVersion that is higher than any previously uploaded for that version string. Increment it — or better, stamp it automatically so it can never repeat.The message reads: "You've already uploaded a build with build number '1' for version number '1.0'." It's a bookkeeping error, not a code problem — but it wastes an entire build cycle each time it happens.
Version vs build number
Two separate fields cause most of the confusion:
| Field | Unity setting | Purpose |
|---|---|---|
| Version (CFBundleShortVersionString) | Player Settings → Version | Public version, e.g. 1.0 |
| Build (CFBundleVersion) | Player Settings → iOS → Build | Internal counter, must be unique per version |
The high-water mark trap
Apple remembers the highest build number ever uploaded for a version. If a build numbered 15995 was uploaded once, then 2, 3 and 100 are all permanently rejected for that version.
This catches teams who switch build systems. A CI service using a small incrementing counter cannot upload after any build with a large timestamp-style number has been accepted.
The manual fix
Open Player Settings → iOS → Build and set a number higher than any you've uploaded for the current version, then rebuild and upload.
The permanent fix: stamp it automatically
Relying on a human to bump a number before each upload guarantees this error will recur. Generate it instead, using something monotonic — a timestamp-derived value works well:
- Minutes since a fixed epoch — always increases, comfortably above small counters, and readable.
- Unix timestamp — also monotonic, though the numbers are large.
- CI run number — only safe if nothing with a higher number was ever uploaded.
Related upload rejections
If you're iterating on uploads, two neighbours of this error are worth knowing: ITMS-90035 for signing with the wrong certificate type, and ITMS-91111 for a non-opaque app icon.
Never hit 90189 again
MacFree stamps a unique, increasing build number on every upload automatically.
Get MacFree on the Unity Asset Store →Frequently asked questions
What does error 90189 redundant binary upload mean?
It means you uploaded a build whose build number was already used for that version. App Store Connect requires every upload to have a unique CFBundleVersion that is higher than any previously uploaded build for the same version string.
How do I fix the redundant binary upload error in Unity?
Increase the Build number in Player Settings under iOS so it is higher than any build previously uploaded for that version, then rebuild and upload. Automating this with a timestamp-based value prevents it recurring.
What is the difference between version and build number in iOS?
The version, CFBundleShortVersionString, is the public version such as 1.0. The build number, CFBundleVersion, is an internal counter that must be unique and increasing for each upload within that version.