How to Change BundleVersion to four non-negative integers in iOS - ios

Now My BundleVersion is like 1.3.1, now I want to change it to 1.3.1.1, can someone tell me how to do it?
update: I searched the solution in the internet , and some one said adding an new key in plist 'sys-clientVersion',and set it to 1.3.1.1 . I tried that way but than the Xcode gave me an error:"ERROR ITMS-90060 : This bundle is invalid . The value of key CFBundleShortVersionString 1.3.1.1 in the info.plist file must be a period-separated list of at most three non - negative integers".'
This is my info.plist :
so , the 'Bundle versions string' equal to 'Version' in Identity, and the 'Bundle version' equal to 'Build' , and 'sys-clientVersion' is what i want show in app store , right~?

It's super easy go the iTunesConnect select your app, version and scroll down to General App Information there is a textfield under App Store Icon, it contains the version number say 1.3.1 you can change it to 1.3.1.1. Have a look at the following image.
P.S keep in mind that the version number should be incremented from previous one.
Edit:
For Xcode Error: ERROR ITMS-90060 while submitting the app check your "Bundle versions string, short" in info.plist file by right-clicking on it and open it as source-code. Search for CFBundleShortVersionString and confirm that the value shouldn't contain any space or non-integers.

I solved it by just adding sys-clientVersion key , and set your wanted version to the key (e.g 1.1.1.0). The most importent point is , just increase your current Version and Build ( in General - Identity) e.g 1.0.0->1.1.0. as normally . the sys-clientVersion now is showing in app store. and unrelated with Version or Build.

Related

Xcode keep replacing my existing bundle id with dash

I already have existing app which its bundle identifier start with digit.
The app is transferred from third party to our account.
Here is the bundle id SS from itunesconnect
Xcode however, always replacing first digit of my bundle id with dash
4UDBLABLA.com.company.appname => -UDBLABLA.com.company.appname
I've try some workaround to keep my original bundle id, but also get replaced with dash when uploading to app store
How can i upload my app with these bundle id?
Xcode version: 8.2.1 (8C1002)
System Information:
OSX El Capitan 10.11.6
There are not a lot of details here. But I was there yesterday, and I know how hard it can be to describe. You type the bundle ID in correctly, and it keeps putting back the same mistake. I had the same problem - the first character (a number) was automatically replaced by a '-'.
In Xcode, search through the project for the good part of the address. In your example, search for 'UDBLABLA.com.company.appname'. I found the entry that kept going wrong, and a more obscure second copy that it had presumably created for itself somewhere deep in the settings. When I fixed that second copy (there were several entries for different sorts of build, but they were all in the same place), all was well. Until the next thing.

Version number not updating when archiving in xCode

This is what the version & build number show up as inside of xCode.
After archiving the version number appears to remain the same as the previous one.
Error message I am getting after trying to upload the application
Has anybody had this problem before or can you think of any possible fixes?
CFBundleShortVersionString CFBundleVersion Please check these two values in your info.plist file, you must have hard coded them sometime. It was the case with me. These values were hard codedly given

CFBundleVersion Not Matching

I'm attempting to upload an application to apple, and i keep receiving this error:
ERROR ITMS-90345: "Metadata/Info.plist Mismatch. The value for bundle_version in the metadata.xml file does not match the value for CFBundleVersion in 'App Name Here' [Payload/App Name.app]."
I can't seem to edit my CFBundleVersion in my plist so it matches, any thoughts???
You can click on your project file, then click on your target, and change in the general tab the version of your app.
What is important is that you should not have any spaces in the version, if the version that you specified in iTunesConnect is also without spaces.
I did get the same error because I had a trailing space in the version which was difficult to detect.
I just got the same problem. Looks like app store compares CFBundleVersion with the last one. The current one should be higher.
Example: current 2022.06.14 will be rejected if there is another build say 2022.07 already in the TestFlight.
If you have an app extension, make sure that the build number in the extension target is the same as in the app target.
Click on your project file(info.plist) then ensure that the MinimumOSVersion is either same as the previously submitted apps or higher. In my case, I lowered the MinimumOSVersion of my app accidentally. So after I changed it back to what it was before I was able to submit my app to Itunes Connect using application loader. You can also check for spaces in the version string if you wish and remove them.
Please check your CURRENT_PROJECT_VERSION after you change MARKETING_VERSION, or you can change CURRENT_PROJECT_VERSION to 1 (CURRENT_PROJECT_VERSION=1)

How works the Apps versioning control of the App Store?

I need to publish a new version (1.0.1.10) of an application that is published as version 1.0.1.
When trying to publish I am getting the following error:
ERROR ITMS-90060: "this bundle is invalid. The value for key CFBundleShortVersionString '1.0.1.10' in the info.plist file must be a period-separated list of at most three non-negative integers."
Can I only use three integers?
I did this procedure in the Google Play smoothly.
at most three non-negative integers
You can't use more, try something like 1.0.1100

Is it correct that different versions of a submitted app are compared using CFBundleVersion

According to bullet point 3 of the accepted answer here:
CFBundleVersion in the Info.plist Upload Error
Apple is supposed to be comparing the "CFBundleVersion" (i.e. "Bundle
version" not the "Bundle versions string, short")
However in this posting:
Difference between Xcode version (CFBundleShortVersionString) and build (CFBundleVersion)
It says Version maps to CFBundleShortVersionString and Build maps to CFBundleVersion.
Therefore that means when you submit a new version of an app to the app store, the comparison is being done on the build and not on the version that you see in the XCode summary page.
This seems the wrong way round to me - especially given the quote from the Apple documentation:
CFBundleShortVersionString represents a release version, whereas
CFBundleVersion represents any build, released or not.
This means when submitting a new version of an app you need to be concerned with the build number, not the release number, which to me seems odd. Its more odd because according to this:
What's the difference between "version number" in itunes connect, "bundle version", "bundle version string" in xcode?
The CFBundleShortVersionString MUST be the same as in iTunesConnect. Then why are Apple checking the CFBundleVersion and not the CFBundleVersionShortVersionString?
I have submitted an app where both the version and build were 1.0, now I want to submit a new version and have bumped both to 1.0.1, will this cause any issues when submitted?
The reports from users seem to be inconsistent. Also, the SO answers are more than 2 years old.
The section about "configuring your app" in Apple's App Distribution Guide says this:
Setting the Version Number and Build String
The version number is a two-period-separated list of positive integers, as in 4.5.2. The first
integer represents a major revision, the second a minor revision, and
the third a maintenance release. The version number is shown in the
store and that version should match the version number you enter later
in iTunes Connect. For details on possible values, see
“CFBundleShortVersionString” in Information Property List Key
Reference.
The build string represents an iteration (released or unreleased) of
the bundle and can contain a mix of characters and numbers, as in
12E123. For Mac apps, the user can click the version number in the
About window to toggle between the version number and the build
string. For details on possible values, see “CFBundleVersion” in
Information Property List Key Reference.
For iOS apps, update the build string whenever you distribute a new
build of your app for testing. iTunes will recognize that the build
string changed and properly sync the new iOS App Store Package to the
device. For how to configure your app for testing, read “Beta Testing
Your iOS App.”
This indicates that for the App Store what matters is CFBundleShortVersionString and it should match the value in iTunes connect. And that changes to CFBundleVersion are considered when differentiating between builds for testing.
However, this somehow contradicts what "Information Property List Key Reference" says about CFBundleVersion
CFBundleVersion (String - iOS, OS X) 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. 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). This key is not localizable.
It isn't the first time or the last that Apple's docs have contradicting information.
Personally, I'd go with the App Distribution Guide guidelines but setting the same version number for both values seem to comply with both documentations, so you should be ok.
For my Mac OSX app, I am using a dotted version in CFBundleShortVersionString and a running integer (that corresponds to my SCM revision number) in CFBundleVersion. Submitting updates like that for years and never had a problem

Resources