CFBundleVersion field does not change in info.plist

Hi,
trying to change CFBundleVersion for ios
Сhange buildNumber in app.json
Сreate the ipa file with the command “eas build --platform ios --profile preview --clear-cache”
Open info.plist from created ipa and there CFBundleVersion is always “1”. This value does not change.
I tried expo prebuild but it didn’t work.

eas-cli/3.10.2

Hi @grigorymotorin

Do you have an ios directory in your app? If so, you are effectively on the Bare workflow.

If you do have android and/or ios directories, but you have not made changes to them that you want to keep, you can switch back to the managed workflow by deleting android and ios.

Hi @wodin

I removed the android folder from the project (ios does not exist). Created the ipa file again, but the CFBundleVersion in info.plist “1” didn’t change.

What do you have “ios.buildNumber” set to?

Also, what happens if you do the following:

  • Create a new app with npx create-expo
  • Edit app.json to change expo.version to “1.2.3”
  • Also change expo.ios.buildNumber to “3.2.1”
  • Run npx expo prebuild -p ios
  • What do CFBundleShortVersionString and CFBundleVersion look like?

If I do that I get the following:

$ grep -A1 -E 'CFBundle(Short)?Version' ios/*/Info.plist
    <key>CFBundleShortVersionString</key>
    <string>1.2.3</string>
--
    <key>CFBundleVersion</key>
    <string>3.2.1</string>

If your ios.buildNumber is a string that’s in the correct format then maybe there’s a config plugin interfering.

I did all steps except “npx expo prebuild -p ios” (because I’m running the project on windows).
For the new application, I created the ipa file and the CFBundleVersion was correct “3.2.1” in the info.plist.
Then I copied all scripts from the old project into the new one, installed the necessary npm packages, did “eas build --platform ios --profile preview” but got an error:
[stderr]
xcodebuild[6170:16338] Requested but did not find extension point with identifier Xcode.IDEKit.ExtensionSentinelHostApplications for extension Xcode.DebuggerFoundation.AppExtensionHosts.watchOS of plug-in com.apple.dt.IDEWatchSupportCore

The idea was to run npx expo prebuild -p ios in the test app so that you could check the CFBundleVersion in Info.plist and you would not need to waste time trying to build it.
I have not tested npx expo prebuild on Windows, but it works fine on Linux. So I would expect it to work on Windows. Maybe it doesn’t for some reason, but then I suggest you try it on Windows Subsystem for Linux (WSL) or maybe a Linux VM.
This is just to test whether you get the same behaviour in a new app so we can have some idea how to fix your real app.

That’s weird. Does your app or any of your dependencies have anything to do with WatchOS?

Anyway, I think I’m out of ideas. Maybe see if someone on the Expo Discord has any better ideas.

The problem was in “react-native-yandex-mobile-ads” module.
The interesting thing is the application worked on a real device. There were no errors while creating the ipa file. But CFBundleVersion and CFBundleShortVersionString fields did not change.
@wodin thanks for your time.

1 Like

This topic was automatically closed 20 days after the last reply. New replies are no longer allowed.