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)
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.
it is not fixed for me with 15.3, I am getting numerous ‘asset validation failed’ errors on distribution via archive.
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.
^ 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.
^ This one is still being worked on.
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.
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 😃
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:
10.22.1
.FirebaseAnalyticsOnDeviceConversion
10.22.1
.+1 - Still experiencing validation failures on Xcode 15.3 after using 10.22.0…
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).