CFBundleShortVersionString of an app extension must match that of its containing parent app

Every time I try to update my newest sticker pack in Xcode, It gives me this error "warning: The CFBundleShortVersionString of an app extension ('1.2') must match that of its containing parent app ('1.0')."

Yes, that’s correct.

To fix this, look at the Current Project Version (CURRENT_PROJECT_VERSION) and Marketing Version (MARKETING_VERSION) build settings in your project. The values for your app and appex must be the same. I usually do this by deleting these build settings from each target and setting them at the project level, which allows both targets to inherit the same value.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

Thank you, I'm still unsure about one thing, how do I delete these build settings from each target and set them at the project level?

Have a read of Configuring the build settings of a target.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

Build setting of a target documentation does not show me how to delete the existing settings. Although the Current Project Version (CURRENT_PROJECT_VERSION) and Marketing Version on my target and project level are same but I still get this error. any other solutions?

Xcode 15 does not show Version and Build settings for app extensions in Project > Targets > target > General any more. In Xcode 14 I have been manually changing those versions to keep them in sync (and avoid warnings or errors).

Moving the setting from target level to project level as suggested by Eskimo from Apple fixed the problem (and simplifies the workflow so that I do not need to manually keep the versions in sync).

How to move the settings?

  • Go to Project > main target > Build Settings. Enable "Levels".
  • Enter CURRENT_PROJECT_VERSION into Filter.
  • Edit the value for the project level (double click on the empty value in the project column).
  • Remove the value for the main target level (single click the value in the target column, press Delete key on keyboard).
  • Similarly for the MARKETING_VERSION. Enter it into Filter, enter the value for the project level, remove it from target level.

Then, for each app extension target (Project > an app extension target > Build Settings):

  • Remove the project level value for both settings.

I have the same problem even though they were set to the same values both in the project and also I verified plist values.

I have the same problem even though they were set to the same values

It’s important that you distinguish between build-time and submission problems. As a first step, I recommend that you check these values in the built app. If you’re building with Xcode and submitting to the App Store, the best way to do this is:

  1. In the Xcode organiser, select the archive that is giving your problems.

  2. Click Distribute App.

  3. Then run through the Custom > App Store Connect > Export workflow.

This creates an archive of what Xcode would have submitted to the App Store. You can then use various tools to unpack that archive (see Unpacking Apple Archives) and look at the property list values it contains. If those values are out of sync, you have a build-time problem, that is, your build system is not generating the right values. OTOH, if those values are in sync but you can’t submit, that suggests a submission problem. The latter seems unlikely to me, but it’s best to confirm that before you go further.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

CFBundleShortVersionString of an app extension must match that of its containing parent app
 
 
Q