firebase-ios-sdk: App archive fails validation due to invalid plist file

Description

When building our app for Archive using Xcode 15.3 the app fails the validation stage on App Store Connect due to problems with the framework’s Info.plist file. Our app is targeting iOS and has a deployment target of iOS 16.

It’s worth noting that the same is happening for GoogleAppMeasurement (https://github.com/google/GoogleAppMeasurement/issues/62) library and another 3rd party library in our project.

Reproducing the issue

Build an app using Xcode 15.3 RC that uses the Google Firebase SPM package

Firebase SDK Version

10.18.0

Xcode Version

15.3 RC

Installation Method

Swift Package Manager

Firebase Product(s)

All

Targeted Platforms

iOS

Relevant Log Output

Error
Missing Info.plist value. A value for the key 'MinimumOSVersion' in bundle MyApp.app/Frameworks/FirebaseAnalytics.framework is required.

Error
Invalid Bundle. The bundle MyApp.app/Frameworks/FirebaseAnalytics.framework does not support the minimum OS Version specified in the Info.plist.

Error
The bundle 'Payload/MyApp.app/Frameworks/FirebaseAnalytics.framework' is missing plist key. The Info.plist file is missing the required key: CFBundleShortVersionString. Please find more information about CFBundleShortVersionString at https://developer.apple.com/documentation/bundleresources/information_property_list/cfbundleshortversionstring

Error
Invalid MinimumOSVersion. Apps that only support 64-bit devices must specify a deployment target of 8.0 or later. MinimumOSVersion in 'MyApp.app/Frameworks/FirebaseAnalytics.framework' is ''.

If using Swift Package Manager, the project’s Package.resolved

Expand Package.resolved snippet

Replace this line with the contents of your Package.resolved.

If using CocoaPods, the project’s Podfile.lock

Expand Podfile.lock snippet

Replace this line with the contents of your Podfile.lock!

About this issue

  • Original URL
  • State: closed
  • Created 4 months ago
  • Reactions: 11
  • Comments: 42 (15 by maintainers)

Most upvoted comments

Unfortunately we need to delay the patch release until tomorrow. Please continue to use Xcode 15.2 in the meantime. Sorry for the delay in getting this out.

@cameroncooke This should now be fixed in the 10.22.0 release. Please re-open if you’re still running into app validation issues.

it is not fixed for me with 15.3, I am getting numerous ‘asset validation failed’ errors on distribution via archive.

Screenshot 2024-03-05 at 6 40 17 PM

A fix for this should be coming out today. Binary artifacts are currently being rebuilt. Until then, a workaround should be to fall back to Xcode 15.2.

abseil v1.2022062300.1 (abseil: https://github.com/google/abseil-cpp-binary.git @ 1.2022062300.1) gRPC: https://github.com/google/grpc-binary.git @ 1.49.2

^ These should be the fixed versions. You shouldn’t be seeing validation errors related to these frameworks anymore. Please let me know if you’re seeing differently.

GoogleAppMeasurement: https://github.com/google/GoogleAppMeasurement.git @ 10.22.0

^ This one is still being worked on.

@ncooke3 is working on a fix for the errors in the dependencies in google/abseil-cpp-binary#6 and google/grpc-binary#10.

The binary SPM distributions for Abseil, gRPC, and BoringSSL have now been updated and released. The latest version of Firebase should pick them up if you update your SPM workspace. Each of the three SDKs also now has a privacy manifest.

@cameroncooke This should now be fixed in the 10.22.0 release. Please re-open if you’re still running into app validation issues.

In the meantime, the workaround is to continue to use Xcode 15.2 or earlier.

That’s fine, it’s annoying as Xcode Cloud automatically treats the RC as a “Latest release” Xcode version and has switched over. Will have to manually set it back to Xcode 15.2 for now.

I just ran an Xcode Cloud build using 15.3, all good here.

Ensure packages are updated and the resulting Package.resolved is pushed to repo before starting build…

Thanks for a quick resolution. 👍🏻

Getting the same issue with Payload GoogleAppMeasurementOnDeviceConversion.framework with key CFBundleShortVersionString. Looking forward to a fix 😃

Firebase package itself does not seem to cause Invalid MinimumOSVersion error, but dependencies it brings with it (seems like these are abseil and gRPC) do.

Correct. Though you could argue that a package vendor is responsible for all the dependencies it brings in. Apple even sees it this way when it comes to the new privacy manifests.

In the meantime, the workaround is to continue to use Xcode 15.2 or earlier.

Apologies, you are correct above in that it works on Xcode 15.2.

In case anyone else runs into this… I did not realize Xcode Cloud archives do not use the Xcode version that is on your computer. You can set the Xcode version for Xcode Cloud builds within App Store Connect -> Xcode Cloud -> Manage Workflows -> Workflow -> Xcode version. The default value is “Latest Release” which is currently Xcode 15.3 RC.

@frantischek, I would recommend deleting derived data if you haven’t already. Otherwise, please file an issue on the Ads repo (https://github.com/googleads/swift-package-manager-google-mobile-ads/issues).

Thank you so much for the update.

Sorry again for the delay. The fixes are now released:

  • SPM users, please upgrade to version 10.22.1.
  • CocoaPods users, please update your pods to get FirebaseAnalyticsOnDeviceConversion 10.22.1.

+1 - Still experiencing validation failures on Xcode 15.3 after using 10.22.0…

Screenshot 2024-03-06 at 14 01 01

If you’re having a validation problem with an Xcode other than 15.3, please open a separate issue with the template filled out describing the problem and installation method.

This was fixed by #12441. And subsequent issues have been addressed in #12439. These fixes will be released in the next Firebase release (week of March 5).