Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

App archive fails validation due to invalid plist file #12441

Closed
cameroncooke opened this issue Feb 28, 2024 · 42 comments · Fixed by #12414
Closed

App archive fails validation due to invalid plist file #12441

cameroncooke opened this issue Feb 28, 2024 · 42 comments · Fixed by #12414

Comments

@cameroncooke
Copy link

cameroncooke commented Feb 28, 2024

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 (google/GoogleAppMeasurement#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!
@google-oss-bot
Copy link

I couldn't figure out how to label this issue, so I've labeled it for a human to triage. Hang tight.

@cameroncooke
Copy link
Author

When will this release be made available?

@ncooke3
Copy link
Member

ncooke3 commented Feb 28, 2024

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).

@paulb777 paulb777 added this to the 10.22.0 - M144 milestone Feb 28, 2024
@paulb777
Copy link
Member

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

@cameroncooke
Copy link
Author

cameroncooke commented Feb 28, 2024

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.

@dannycortesv
Copy link

I'm using Xcode 14.2 and also getting this issue...

@nsarno-lucid
Copy link

I'm using Xcode 15.2 and getting this issue on all App Store Connect archives. Is there another fix for this? Is there an older version of Firebase we should use in the meantime?

@paulb777
Copy link
Member

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.

@nsarno-lucid
Copy link

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.

@andrewheard
Copy link
Contributor

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

@trevordevs
Copy link

@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

@lanserxt
Copy link

lanserxt commented Mar 6, 2024

+1

1 similar comment
@johnarnaou
Copy link

+1

@404wasfound
Copy link

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.

@cameroncooke
Copy link
Author

cameroncooke commented Mar 6, 2024

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.

@johnauger
Copy link

johnauger commented Mar 6, 2024

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

Screenshot 2024-03-06 at 14 01 01

@andrewheard andrewheard reopened this Mar 6, 2024
@andrewheard
Copy link
Contributor

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

@ncooke3
Copy link
Member

ncooke3 commented Mar 6, 2024

@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.

@alexanderkhitev
Copy link

@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.

waiting for an update, thanks!

@ncooke3
Copy link
Member

ncooke3 commented Mar 6, 2024

@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.

waiting for an update, thanks!

@alexanderkhitev, the binary dependencies have been released. If you're using the binary distribution of Firestore (on by default), then you can pull them in by updating your SPM workspace.

@johnauger
Copy link

Thanks for this. What are the new version numbers for these? I'm seeing the following version numbers in the Xcode cloud build log:

Firebase: https://github.com/firebase/firebase-ios-sdk @ 10.22.0
GoogleAppMeasurement: https://github.com/google/GoogleAppMeasurement.git @ 10.22.0
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

...and still getting the same error as above when building and validating with Xcode 15.3.

Any thoughts? Thanks

@ncooke3
Copy link
Member

ncooke3 commented Mar 6, 2024

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.

@johnauger
Copy link

OK, thanks. The error I'm seeing is from the GoogleAppMeasurement framework so I'll wait for this to be updated as well.

@helloniklas
Copy link

Yeah, I'm now getting this error.

The bundle 'Payload/Motionscape-Alpha.app/Frameworks/GoogleAppMeasurementOnDeviceConversion.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 (ID: 29ccc9f2-b3a5-4866-b74e-6b8ea2f88ebf)

@ncooke3
Copy link
Member

ncooke3 commented Mar 6, 2024

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.

@dimitrihamelin
Copy link

Thank you so much. It's really urgent for me to update as soon as possible.

@andrewheard
Copy link
Contributor

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.

@dimitrihamelin
Copy link

No problem, you are doing some great job and this is the most important.

@ldlefebvre
Copy link

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

@andrewheard
Copy link
Contributor

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.

@kaisdewani
Copy link

kaisdewani commented Mar 7, 2024

I can confirm the new 10.22.1 has resolved the Payload GoogleAppMeasurementOnDeviceConversion.framework with key CFBundleShortVersionString missing error for me.

I am using xcode 15.3

Thank you Devs!

@johnauger
Copy link

Thanks for getting this sorted so promptly. Much appreciated. 👍🏻

@andrewheard
Copy link
Contributor

I can confirm the new 10.22.1 has resolved the Payload GoogleAppMeasurementOnDeviceConversion.framework with key CFBundleShortVersionString missing error for me.

Thanks for your patience and for confirming!

@lenli
Copy link

lenli commented Mar 7, 2024

I've bumped my Firebase version to v10.22.1, but I'm still getting build errors on Xcode Cloud using the latest release of Xcode / MacOS:

Screenshot 2024-03-07 at 1 37 13 PM

The issue is with gRPC which was supposed to be fixed in v10.22.0.
Note the versions of abseil and gRPC we are supposed to have (referenced above):

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

Updating to latest dependencies now:
Screenshot 2024-03-07 at 1 35 53 PM

TLDR: This fixes the GoogleAppMeasurement issue, but seems to have lost the fixes for gRPC and abseil.
Is anyone else seeing this?

@dimitrihamelin
Copy link

Thank you so much for the update.

@ncooke3
Copy link
Member

ncooke3 commented Mar 7, 2024

TLDR: This fixes the GoogleAppMeasurement issue, but seems to have lost the fixes for gRPC and abseil.
Is anyone else seeing this?

Hi @lenli, I'm not sure why Xcode Cloud would be handling this differently. Perhaps there is interference from a checked-in Package.resolved?

@lenli
Copy link

lenli commented Mar 7, 2024

Hi @lenli, I'm not sure why Xcode Cloud would be handling this differently. Perhaps there is interference from a checked-in Package.resolved?

Not sure why but here's happened to me:
If I use Xcode 15.3, I get the dependency graph that I posted above.
If I open the same project in Xcode 15.2, I get an updated Package.resolved with the correct dependencies.
Building now 🤞

@johnauger
Copy link

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. 👍🏻

@lenli
Copy link

lenli commented Mar 7, 2024

Yep, it worked for me now too. 👍
Just FYI, I did reset cache and upgrade to the latest dependencies, but for some reason Xcode 15.3 did not give me the latest.

@frantischek
Copy link

I updated, but still get this error: Couldn't stat /Users//Library/Developer/CoreSimulator/Devices/****-****42B0-9841-/data/Library/Caches/com.apple.mobile.installd.staging/temp.aWbqKV/extracted/****/Frameworks/GoogleMobileAds.framework/Info.plist: No such file or directory
grafik

@ncooke3
Copy link
Member

ncooke3 commented Mar 7, 2024

@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).

@ncooke3
Copy link
Member

ncooke3 commented Mar 7, 2024

To wrap up this issue's discussion,

  • If you are using SwiftPM → Update to 10.22.1.
  • If you are using CocoaPods → Run pod update.
  • If you are using xcframeworks from the 10.22.0 zip distribution, choose "do not embed" when dragging in the GoogleAppMeasurementOnDeviceConversion xcframework.

If you run into any further issues, please open a new issue. Thanks!

@firebase firebase locked as resolved and limited conversation to collaborators Mar 7, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging a pull request may close this issue.