You may have a bad connection in your xib.
I've had this error many times. While TechZen's answer is absolutely right in this case, another common cause is when you change the name of a IBOutlet property in your .h/.m which you've already connected up to File's Owner in the nib.
From your nib:
- Select the object in IB and go to the 'Connections Inspector'.
Under 'Referencing Outlets' make sure that your object isn't still connected to the old property name... if it is, click the small 'x' to delete the reference and build again.
Another common cause if you are using Storyboard, your UIButton might have more then one assignings (Solution is almost the same as for nib):
- Open your storyboard and right click the UIButton
You will see that there is more than one assign/ref to this button.
Remove one of the "Main..." greyed windows with the small "x":
More than one binary may be uploaded to App Store Connect for the same version, if the the Build number is increasing for each build uploaded to iTunesConnect. The build number just has to be unique (and higher) for each binary that is uploaded (select the Target, then Xcode -> General -> Build, see the picture below).
For example in the image below the build uploaded has version 3.1.4 (3.75 in the older image) and the build number is 1. Thus, after uploading this image increase the build to a minimum 2 or higher. Then this binary may also be uploaded to App Store Connect as it's a later build according to the build number
.
The version
notes the release version of the app your releasing to the user. The build number
remarks the final build of the binary uploaded to the store, i.e. after many bug fixes.
After Xcode 9 you are not able to upload a new build (for the same version), if there is a previous build with the same build number in the store. So, check your build number and increase if not certain.
EDIT: It's more correct to use 1
, 2
, 3
, 4
, etc. for the build number, but the version number has to be increasing, 1.0 -> 1.1 -> 1.2 etc. The build number has to be higher than what was submitted previously for the same version number, if not an error is posted. So, if a new binary is submitted that has version 3.75 and a build 1 has already been submitted, then next build shall be 2 or higher, but the version can still remain 3.75.
New updated and the recommended way of having the build numbers serial:
The older image to match the one below:
After a new binary is uploaded and processed (~5-20 min processing time, if it doesn´t show up upload again and wait), then you can select the new binary and submit it for review. In the picture below you may see the old and the new binary listed in App Store Connect in the Build section of the current App version (you click the plus sign). Then the new binary is selected -> Saved
-> Submit for Review
. (Sometimes an error comes when submitting, then just try after a few mins or upload a new binary).
For those inclined to do this automatically with an Xcode script, here is a description of making an automatic script for updating Build numbers Better way of incrementing build number?
Best Answer
You don't need to change the CFBundleShortVersionString, the issue here is that your app is already approved, and it is in "Pending Developer Release" state. Remove your app through "cancel this release" and try to upload again. It should work.