why apple reject my app despite its version is valid

I have an app in

TestFlight
and i want to upload new version of my app. version of my app is
2.0.1
and build numbers are
2.0.1.1
..
2.0.1.9
. there is no error between from 2.0.1.1 to 2.0.1.9. but when i want to upload
2.0.1.10
app store said version is invalid because of version number. i tried other version numbers like
2.0.1.11
,
2.0.1.20
,
2.0.1.90
,
2.0.1.91
but everytime app store said version number is invalid. so what should be the next version number after
2.0.1.9

Replies

x.x.x.x is outside the expected range for submitted build schemes and thus not valid. I'd stick to either x.x.x, or better still. x.x - feel free to use whatever for internally tracked builds, of course.


The next version after 2.0.1 = 2.0.2 (excluding dev suffix*)


From the docs: CFBundleVersion


CFBundleVersion

CFBundleVersion
(
String
- iOS, macOS) specifies the build version number of the bundle, which identifies an iteration (released or unreleased) of the bundle.


The build version number should be a string comprised of three non-negative, period-separated integers with the first integer being greater than zero—for example,

3.1.2
. The string should only contain numeric (
0
-
9
) and period (
.
) characters. Leading zeros are truncated from each integer and will be ignored (that is,
1.02.3
is equivalent to
1.2.3
). The meaning of each element is as follows:
  • The first number represents the most recent major release and is limited to a maximum length of four digits.
  • The second number represents the most recent significant revision and is limited to a maximum length of two digits.
  • The third number represents the most recent minor bug fix and is limited to a maximum length of two digits.


If the value of the third number is

0
, you can omit it and the second period.


*While developing a new version of your app, you can include a suffix after the number that is being updated; for example

3.1.3a1
. The character in the suffix represents the stage of development for the new version. For example, you can represent development, alpha, beta, and final candidate, by
d
,
a
,
b
, and
fc
. The final number in the suffix is the build version, which cannot be
0
and cannot exceed
255
. When you release the new version of your app, remove the suffix.