App Store Connect Error ITMS-90058: This bundle is invalid

App Store Connect rejects the build with the following error:

Please correct the following issues and upload a new binary to App Store Connect. ITMS-90058: This bundle is invalid - The value for key CFBundleVersion [iphoneos] in the Info.plist file must be a period-separated list of at most three non-negative integers. Please find more information about CFBundleVersion at https://developer.apple.com/documentation/bundleresources/information_property_list/cfbundleversion

But we double-checked at the app level; in all places the CFBundleVersion and versions is mentioned in the correct format.

Even though we tried to upload via Xcode and Transporter, both show success. but the build is not reflecting in TestFlight. Receive the above error message via mail.

data: {
  "attributes": {
    "cfBundleShortVersionString": "3.25.9",
    "cfBundleVersion": "25",
    "p

Validated with the delivery log, but the delivery log also shows correct versioning only.

It's a good idea to confirm details with the real Info.plist file inside the bundle. If you open up the file at /Path/To/YourApp.xcarchve/Products/Applications/YourApp.app/Info.plist, what do you see? If that looks ok, then keep navigating inside your built app at that path, also checking the Info.plist files for all of the frameworks and embedded app extensions or watchOS apps as well.

— Ed Ford,  DTS Engineer

In my case, the DTPlatformName key and value (iphoneos) are missing in one of the framework Info.plist files.

Thanks for sharing that @Ramprasathselvam. That key is automatically generated by Xcode during the build, so for it to be missing is interesting. Is the framework one that you are building as part of your app, or is it coming from a vendor?

— Ed Ford,  DTS Engineer

It’s part of our own framework, not a third-party dependency. For some reason, the DTPlatformName key is missing from the framework’s Info.plist, which caused the ITMS-90058 error during validation. We resolved this by adding DTPlatformName = iphoneos to the framework’s Info.plist, and the build is now passing App Store checks.

Right, you won't find this key in the source Info.plist file for any target in Xcode, because it's expected to be generated as part of the build. The value can vary, as a framework can be built for different platforms, so hardcoding this value into your Info.plist isn't the right long-term solution.

To figure out the right solution, are you able to share a stripped down version of your framework project with us, either through a link here to somewhere else on the Internet, or if you need to keep it private, you can open a code-level support request to get me a private copy? The stripped down version here is that I only need to see something that builds, so you could delete most of the source code for keeping your code private, so long as the structure of the target in the Xcode project and the source Info.plist file remain intact.

— Ed Ford,  DTS Engineer

App Store Connect Error ITMS-90058: This bundle is invalid
 
 
Q