googleads/swift-package-manager-google-mobile-ads

Archive fails: GoogleMobileAds.framework does not support the minimum OS Version specified in the Info.plist

aoverholtzer opened this issue ยท 40 comments

Description

Archiving our app using Xcode 15.3 RC via Xcode Cloud fails the validation stage on App Store Connect due to problems with the framework's Info.plist file. App is targeting iOS and has a deployment target of iOS 15.

The same issue has been reported in two related projects: GoogleAppMeasurement (google/GoogleAppMeasurement#62) and Firebase (firebase/firebase-ios-sdk#12441).

Reproducing the issue

Archive an app that uses the GoogleMobileAds using Xcode 15.3 RC. Submit it to App Store Connect.

GoogleMobileAds SDK Version

11.0.1

Xcode Version

15.3 RC

Installation Method

Swift Package Manager

Targeted Platforms

iOS

Relevant Log Output

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

Workaround

Archiving with Xcode 15.2 works fine. 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".

Hey @aoverholtzer, thanks for flagging. This is something we are aware of and will be addressed in the next release. In the meantime, continue using Xcode 15.2.

To update my previous response, it is determined that the .plist error is something that Apple has to resolve. They are aware of this error but we do not know when they will address it.

For now SPM can't use Xcode 15.3, continue using Xcode 15.2 or earlier.

@malandr2 this issue was fixed on the other Google SDKS, e.g. Firebase firebase/firebase-ios-sdk#12439 why is it different for this SDK?

I'm having the same issue and it's blocking my development. Any news about this being fixed soon?

same issue
cannot compile now

To update my previous response, it is determined that the .plist error is something that Apple has to resolve. They are aware of this error but we do not know when they will address it.

For now SPM can't use Xcode 15.3, continue using Xcode 15.2 or earlier.

@malandr2 Do you have a link to the Apple support case where they are tracking resolution? Thanks.

To mention that Xcode 15.3 is no-longer RC and is general release where this issue is occurring.

@yishair-investing

https://github.com/firebase/firebase-ios-sdk/pull/12439/files#diff-f4eb4ff5ec89af999cbe8fa3ffe5647d7853ffbc9c1515b337ca043c684b6bb4R679 updated the minimumOSVersion to 100 which is a workaround for the time being for Xcode 15.3 to be useable with SPM. To truly solve the issue Apple will have to fix.

And @jamiehunt Apple feedback tickets are internal to them so they cannot be shared.

@malandr2, a workaround sounds good until Apple can solve the issue properly. Not supporting the latest Xcode/Swift is a big issue. E.g. whats the plan if Apple don't fix this before iOS 18, will Google Ads not support iOS 18?

@ALL

We expect to have a new Google Mobile Ads version next week that support Xcode 15.3 using the workaround.

Edit: Apple will still need to fix this issue and it's possible their fix may affect the workaround. After it's been resolved we will revert the workaround in a future release.

@aoverholtzer
I was facing the same problem. I just transferred the swift-package-manager to Pods. The issue is solved for me so you can do so.

No fix here yet? Sad. Firebase had this fixed so fast.

Clean Build Update dependency - Firebase - 10.22.1 Then try. If not works. Delete DerivedData, restart Mac and try. It will work. I have updated 3 apps yesterday with same method so please try.
โ€ฆ
On 09-Mar-2024, at 7:47โ€ฏAM, Chris White @.***> wrote: Firebase

firebase is working fine, its google mobile ads and google user messaging platform that are not working. All the firebase dependencies are working since the fix yesterday

@ALL

We expect to have a new Google Mobile Ads version next week that support Xcode 15.3 using the workaround.

Edit: Apple will still need to fix this issue and it's possible their fix may affect the workaround. After it's been resolved we will revert the workaround in a future release.

Hope it releases soon! Thanks

I am facing same issue in Xcode 15.3.

@yishair-investing

https://github.com/firebase/firebase-ios-sdk/pull/12439/files#diff-f4eb4ff5ec89af999cbe8fa3ffe5647d7853ffbc9c1515b337ca043c684b6bb4R679 updated the minimumOSVersion to 100 which is a workaround for the time being for Xcode 15.3 to be useable with SPM. To truly solve the issue Apple will have to fix.

Sorry, is there a way to apply this workaround so I don't have to downgrade Xcode? Which file do I have to edit?
Thanks in advance

While the issue appears to have been resolved for most SDKs in Firebase, GoogleMobileAds and UserMessagingPlatform still throw an Invalid Bundle error ๐Ÿฅฒ

I have used older Xcode (15.2) and able to upload the app. You can get older version here: https://developer.apple.com/download/all/

Please fix the problem. I don't want to downgrade to XCode 15.2 for no reason. This makes no sense.

I am using the main branch to get the most updated version as soon as possible. Nothing has changed since 3 days. Either Apple or you should fix this quickly. We cannot send an update.

Screenshot 2024-03-11 at 14 22 30

Please fix the problem. I don't want to downgrade to XCode 15.2 for no reason. This makes no sense.

I am using the main branch to get the most updated version as soon as possible. Nothing has changed since 3 days. Either Apple or you should fix this quickly. We cannot send an update.

Screenshot 2024-03-11 at 14 22 30

I would not really be "for no reason" would it?

They are fixing it this week. I was at first a bit hesitant too. But I ended up just downloading Xcode 15.2 from the developer page. It's one file. Doesn't need installation. You just unzip it and run it.

Just make sure to go to Settings and select the old Xcode Command Line 15.2 as well.
Screenshot 2024-03-11 at 14 00 23

It's very easy. In other words you don't need to delete XCode 15.3, you just download the old one and use it in parallel. When the patch is here, you just delete the old Xcode (one file) and done.

I hope this helps,

They are fixing it this week. I was at first a bit hesitant too. But I ended up just downloading Xcode 15.2 from the developer page. It's one file. Doesn't need installation. You just unzip it and run it.

Just make sure to go to Settings and select the old Xcode Command Line 15.2 as well. Screenshot 2024-03-11 at 14 00 23

It's very easy. In other words you don't need to delete XCode 15.3, you just download the old one and use it in parallel. When the patch is here, you just delete the old Xcode (one file) and done.

I hope this helps,

Hi, I downloaded the version 15.2 and I am able to upload and test my iOS app on the device simulator, but I am not able to archive and upload it to app store connect because it shows the error "Asset validation Failed". Any workaround for this?

Are you sure you haven't mistakenly opened the latest Xcode? This happens to me every time. Make sure you have opened the Xcode in your Downloads folder.

Then fetch the latest packages via SPM. Clear the Derived Data and try again. It has to work. The error is on your side.

@ALL

We are still on track to release a new version of the Google Mobile Ads SDK (and UMP SDK) that supports Xcode 15.3 later this week.

Here's a workaround that will work more consistently for the time being, if like me you need to release asap.
This also is necessary for Xcode cloud

  1. Use XCodes.app to install 15.2 & the correct simulators
  2. Using XCodes.app, make 15.2 the active install (checkmark)
  3. Delete the Package.resolved file in your build folder (The Package.resolved file is inside your .xcodeproj directory at [appName].xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved)
  4. Open XCode & clear out the build folder, then select file > reset package caches

Once that finishes, you can now push to XCCloud or make an archive. The important step here for Xcode cloud is that your package.resolved file is made from 15.2

Here's a workaround that will work more consistently for the time being, if like me you need to release asap. This also is necessary for Xcode cloud

  1. Use XCodes.app to install 15.2 & the correct simulators
  2. Using XCodes.app, make 15.2 the active install (checkmark)
  3. Delete the Package.resolved file in your build folder (The Package.resolved file is inside your .xcodeproj directory at [appName].xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved)
  4. Open XCode & clear out the build folder, then select file > reset package caches

Once that finishes, you can now push to XCCloud or make an archive. The important step here for Xcode cloud is that your package.resolved file is made from 15.2

More consistently than what? Its the exact same as the other workaround...

@ALL

We are still on track to release a new version of the Google Mobile Ads SDK (and UMP SDK) that supports Xcode 15.3 later this week.

Also update the framework UserMessagingPlatform.framework pls!

Asset validation failed
Invalid Bundle. The bundle xxxmeworks/UserMessagingPlatform.framework does not support the minimum OS Version specified in the Info.plist.

Here's a workaround that will work more consistently for the time being, if like me you need to release asap. This also is necessary for Xcode cloud

  1. Use XCodes.app to install 15.2 & the correct simulators
  2. Using XCodes.app, make 15.2 the active install (checkmark)
  3. Delete the Package.resolved file in your build folder (The Package.resolved file is inside your .xcodeproj directory at [appName].xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved)
  4. Open XCode & clear out the build folder, then select file > reset package caches

Once that finishes, you can now push to XCCloud or make an archive. The important step here for Xcode cloud is that your package.resolved file is made from 15.2

More consistently than what? Its the exact same as the other workaround...

Taking this in good faith - Carefully note the differences in steps. If you don't remove the package.resolved file before you rebuild it with 15.2 XcCloud won't accept the binary, and using XCodes.app allows you to switch releases back and forth much easier. Hope this helps

The issue happens at the step of uploading the build to TestFlight. Switching to Xcode 15.2 with changing Command Line Tools version didn't help me.

The issue happens at the step of uploading the build to TestFlight. Switching to Xcode 15.2 with changing Command Line Tools version didn't help me.

For me it's showing also when trying to install to a real device, awaiting the fix.

The issue happens at the step of uploading the build to TestFlight. Switching to Xcode 15.2 with changing Command Line Tools version didn't help me.

Remember to delete package.resolved after making the switch..

@ALL

We have just released SPM version 11.2.0 which should address the 15.3 Xcode issue. Please report back the issue still persists. Thanks!

@malandr2 looks good from my end. Using Xcode 15.3 (latest), updated Swift PM packages to bring in GoogleMobileAds-11.2.0, can produce an archive of my project & upload thru App Store connect successfully.

Thanks for getting us the workaround in place & hopefully Apple gets root-cause addressed shortly.

For those who didn't know how to update the package (like me):

  1. Right click on both of the packages (GoogleMobileAds & GoogleUserMessagingPlatform) -> Update Package for both
image image

To add to what @jamiehunt said, it works for TestFlight too. Thanks for fixing this issue so promptly @malandr2 .

@Daggerpov - if you want to update all packages at once File -> Packages -> Update to Latest Package Versions ๐Ÿ˜€

It was solved with version 11.2.0. Thanks.

GoogleMobileAds 11.2.0
GoogleUserMessagingPlatform 2.3.0

With this combination, you can upload your archive to app store connect.
The build should also pass.
Thank you for the information.

@ALL

Closing this out as the the issue has been resolved. For others who stumble upon this, use Google Mobile Ads SDK 11.2.0 (and UMP SDK 2.3.0) for Xcode 15.3 compatibility. Stay tuned for any updates from Apple. Thanks!