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 on Xcode 15.3 #263

Closed
cameroncooke opened this issue Feb 28, 2024 · 85 comments
Closed
Assignees

Comments

@cameroncooke
Copy link

Report

SDK Version

6.13.0

What did you do?

Build for archive and validated on App Store Connect

What did you expect to happen?

Archive to pass validation

What happened instead?

Archive failed validation with the following errors:

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

Please provide any other relevant information.

This started with the release of Xcode 15.3, this also happens for other 3rd party libraries for which I've already raised tickets and they already have fixes in the works:

google/GoogleAppMeasurement#62
firebase/firebase-ios-sdk#12441

This is currently blocking our ability to release on Xcode Cloud when using the "Latest version" Xcode stratergy.

@MilesV64
Copy link

We are also having this issue!

@williamkey123
Copy link

williamkey123 commented Mar 2, 2024

I'm having this issue as well; looks like it became an issue with Xcode 15.3. Until AppsFlyer fixes this, you can follow the instructions here to get Xcode cloud to use Xcode 15.2:

firebase/firebase-ios-sdk#12441 (comment)

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.

Once you do this, you should be able to re-run your workflow and build the app.

(Credit to @nsarno-lucid for this)

@zavsby
Copy link

zavsby commented Mar 4, 2024

Seems to be a blocker to use Xcode 15.3 for us also.
@af-obodovskyi Could you take a look please?

@af-obodovskyi af-obodovskyi self-assigned this Mar 4, 2024
@af-obodovskyi
Copy link
Contributor

We will investigate this issue and come up with the solution, thank you!

@danniss10
Copy link

Also seeing this issue!

@vince1393
Copy link

Seeing this issue as well!

@slagunes
Copy link

slagunes commented Mar 6, 2024

Same issue too ☹️

@frangrolemund
Copy link

frangrolemund commented Mar 6, 2024

We will investigate this issue and come up with the solution, thank you!

According to the esteemed Eskimo, the minimum os version in the binary doesn't match the Info.plist. I used his instructions and found the following in the latest release of the framework (6.13.1):

  • the AppsFlyerLib reports 16.0
  • the Info.plist reports 9.0

...

Hope this helps.

@vince1393
Copy link

Any updates on this? Somewhat urgent as we have a release upcoming next week that relies on Xcode 15.3 APIs.

@abuljaleel
Copy link

Seeing this issue, Xcode 15.3

@alighani-zoral
Copy link

alighani-zoral commented Mar 7, 2024

Hello, We are also facing this issue

Invalid Bundle. The bundle ******/Frameworks/AppsFlyerLib.framework does not support the minimum OS Version specified in the Info.plist.

We have a critical release pending to be released and we are using xcode 15.3 and unable to upload on Testflight.

Please suggest a fix for this

@zavsby
Copy link

zavsby commented Mar 7, 2024

Did anyone checked it with latest 6.13.1 version?

@jamesyorke
Copy link

Same here!

@vince1393
Copy link

Did anyone checked it with latest 6.13.1 version?

I tried 6.13.0 and had the same issue, haven't had a chance to check 6.13.1 yet

@jamesyorke
Copy link

Did anyone checked it with latest 6.13.1 version?

Can confirm 6.13.1 also still has the issue.

@vince1393
Copy link

Looks like the firebase SDKs have been fixed. Just waiting on this one. @af-obodovskyi do we have an ETA for this?

@guppy-jpf
Copy link

yet another me-too ...

@gooson
Copy link

gooson commented Mar 8, 2024

+1

2 similar comments
@sroyaura
Copy link

sroyaura commented Mar 8, 2024

+1

@bcherry
Copy link

bcherry commented Mar 8, 2024

+1

@dmallory
Copy link

dmallory commented Mar 10, 2024

For anyone trying to work around this manually, I can confirm that changing the MinimumOSVersion to 16.0 in the framework's Info.plist resolves this and passes validation. The version in there is 9.0 as noted above, seems very stale.

@af-obodovskyi
Copy link
Contributor

We are aiming to release a fix for this issue and searching for the best aproach. The planned release date for the SDK version v6.13.2 with fix is March 25th.

@frangrolemund
Copy link

We are aiming to release a fix for this issue and searching for the best aproach. The planned release date for the SDK version v6.13.2 with fix is March 25th.

Are you aware that this issue in your SDK also prevents uploading to TestFlight for general QA activities? This unfortunately leaves many of us with the choice between two weeks of stalled QA and hacking your code for you so that we can make progress with an unofficial binary we shouldn't ship anyway. If we can take @dmallory at his word, this is an about a 1 minute change to address right now. I'd argue that a component of the best approach is to get your consumers running again. Somehow Google had their entire SDK updated almost instantly.

@vince1393
Copy link

This is a serious issue for us, currently blocking important code from being merged that relies on the 15.3 compiler. March 25th is a very long wait time for something that appears to be a one-line fix.

@jamesyorke
Copy link

jamesyorke commented Mar 11, 2024

For anyone trying to work around this manually, I can confirm that changing the MinimumOSVersion to 16.0 in the framework's Info.plist resolves this and passes validation. The version in there is 9.0 as noted above, seems very stale.

Just to expand on this for people. I archived the build manually (ignoring my usual process), then after archiving, right click > show in finder. Right click > show package contents > Products > Applications > Right click your app > Show Package Contents > Frameworks > AppFlyer and here is where you do dmallory's MinimumOSVersion change in Info.plist. This should get you through whilst we wait until the 25th March

@dmallory
Copy link

dmallory commented Mar 11, 2024

For anyone trying to work around this manually, I can confirm that changing the MinimumOSVersion to 16.0 in the framework's Info.plist resolves this and passes validation. The version in there is 9.0 as noted above, seems very stale.

Just to expand on this for people. I archived the build manually (ignoring my usual process), then after archiving, right click > show in finder. Right click > show package contents > Products > Applications > Right click your app > Show Package Contents > Frameworks > AppFlyer and here is where you do dmallory's MinimumOSVersion change in Info.plist. This should get you through whilst we wait until the 25th March

Yes, any method of getting that final Info.plist edited should work. I switched it to a local SPM binary with my own Package.swift pointing to the edited framework since we validate builds frequently through CI, but editing manually or with a script before submit works, or you could probably fork this repo just to point to your own edited framework with it updated.

@cameroncooke
Copy link
Author

Tbh while I appreciate all the workarounds provided these solutions are not appropriate where teams have deployment pipelines and I would prefer instead we could upgrade the urgency of the fix needed by the framework vendor. Any team that has any decent quality control will have automatic deployment pipelines and CI and it's not appropriate to have to build on someone's machine and edit app bundles manually.

@danniss10
Copy link

Agree with @cameroncooke here! March 25th is a really long timeline for this fix and manually editing bundles is not an appropriate solution. We are blocked from releasing the next version of our app until this fix is released. Is there anyway to increase the urgency on resolving this issue?

@Faizan-Seera
Copy link

Still getting the issue
Xcode 15.3
AppsFlyer 6.13.2
Invalid Bundle. The bundle Lumi.app/Frameworks/AppsFlyerLib.framework does not support the minimum OS Version specified in the Info.plist.

@skapur1424
Copy link

skapur1424 commented Apr 2, 2024

I am still getting this issue with iOS. I don't use tvOS. I am using 6.13.2. I have been waiting to upload for weeks now. I may be forced to remove AppsFlyer to do a release. Please help.

I am also now seeing the sample app which specifies 3 possible repos (static, dynamic or strict). So is the main repo (https://github.com/AppsFlyerSDK/AppsFlyerFramework) not valid for now? How do I know which of the 3 new repos to use? If I was using the main repo before, which one should I use?

@af-obodovskyi
Copy link
Contributor

@skapur1424 @Faizan-Seera
Did you try this?

#263 (comment)

@af-obodovskyi
Copy link
Contributor

I am still getting this issue with iOS. I don't use tvOS. I am using 6.13.2. I have been waiting to upload for weeks now. I may be forced to remove AppsFlyer to do a release. Please help.

I am also now seeing the sample app which specifies 3 possible repos (static, dynamic or strict). So is the main repo (https://github.com/AppsFlyerSDK/AppsFlyerFramework) not valid for now? How do I know which of the 3 new repos to use? If I was using the main repo before, which one should I use?

Please use
https://github.com/AppsFlyerSDK/AppsFlyerFramework-Static

@skapur1424
Copy link

It worked! Thank you @af-obodovskyi ! for the real-time responsiveness!

@vince1393
Copy link

I've tested on our iOS app and it looks like our pipeline is working with the latest update. Thanks!

@T-Pham
Copy link

T-Pham commented Apr 3, 2024

Hi @af-obodovskyi, do you have a timeline for the fix on tvOS? The issue is a blocker for us.

@bigMOTOR
Copy link

bigMOTOR commented Apr 4, 2024

The issue should be fixed in v6.13.2 for the SPM. Please, refer to this documentation when you update your Swift package. Thank you for your patience and pressious time.

@af-obodovskyi hi, I've just tried 6.13.2 and the issue still stands for me

@T-Pham
Copy link

T-Pham commented Apr 8, 2024

Hi @af-obodovskyi, could you please confirm whether the 6.14.0 release contains a fix for this issue on tvOS? (I couldn't verify that myself because I ran into an unrelated issue with checksum). Thank you!

@af-obodovskyi
Copy link
Contributor

@T-Pham it contains, current SPM repositories contain path to a wrong binary, I will fix it and it will be available in the next 1-2 hours, thanks!

@af-obodovskyi
Copy link
Contributor

@bigMOTOR

#263 (comment)

@af-obodovskyi
Copy link
Contributor

@T-Pham ready with the fix, please clean your SPM cache and try again to deploy your tvOS app. If you face any issues, please feel free to ping me.

@adamrushy
Copy link

@af-obodovskyi

Please check the SPM checksum I am getting this error when downloading the latest version:

checksum of downloaded artifact of binary target 'AppsFlyerLib' (e3063f25dd58b242c31d1bc5761fcb96930539e8e4d0745c22df792ecbd455e0) does not match checksum specified by the manifest (d7fdf61996dacb7787506305b6c541197ede64fcc4528c41842d9a507bd1b94b)

@af-obodovskyi
Copy link
Contributor

@adamrushy please, clear SPM cache in the directory ~/Library/Caches/org.swift.swiftpm/

@adamrushy
Copy link

@adamrushy please, clear SPM cache in the directory ~/Library/Caches/org.swift.swiftpm/

@af-obodovskyi I tried this twice, including "Reset package cache"

I also created a brand new sample project and installing from fresh (see screenshot).

Screenshot 2024-04-08 at 13 39 35

@DenTelezhkin
Copy link

@af-obodovskyi Thanks for update!
Unfortunately, using https://github.com/AppsFlyerSDK/AppsFlyerFramework-Static did not work for us, as we also use https://github.com/AppsFlyerSDK/appsflyer-apple-purchase-connector, which also does not pass AppStoreConnect validation.

The only variant right now, that does pass validation, is using https://github.com/AppsFlyerSDK/PurchaseConnector-Dynamic along with https://github.com/AppsFlyerSDK/AppsFlyerFramework-Dynamic, however:

  1. There is still warning, while uploading to AppStoreConnect Architecture incompatible with MinimumOSVersion. The app bundle at '***.app/Frameworks/AppsFlyerLib.framework' specifies a MinimumOSVersion of '100.0' but contains a 32-bit architecture that is unsupported on iOS 12 and later.
  2. When application is running, there are warnings in console about duplicate implementations (which are included in both frameworks) - previously we were using static versions of both frameworks, thus avoiding undefined behavior:
Class AFSDKException is implemented in both /private/var/containers/Bundle/Application/2FFFCB0E-B0C7-40D5-B9A0-A8F3CF8091CE/***.app/Frameworks/PurchaseConnector.framework/PurchaseConnector (0x106a2dbd8) and /private/var/containers/Bundle/Application/2FFFCB0E-B0C7-40D5-B9A0-A8F3CF8091CE/***.app/Frameworks/AppsFlyerLib.framework/AppsFlyerLib (0x1053779e8). One of the two will be used. Which one is undefined.

... And many more

Are there plans to rollout this fix for PurchaseConnector?

@adamrushy
Copy link

@af-obodovskyi I tried this twice, including "Reset package cache"

Ah, ignore me! I realize we have newer URL's now for static/dynamic 👍🏼 thanks for the help!

@bigMOTOR
Copy link

bigMOTOR commented Apr 8, 2024

@af-obodovskyi Thank you for your response.
Unfortunately, I wasn't able to switch to static/dynamic versions. We use AppsFlyer as a part of common core shared across our apps via SPM.
I tried to change .package(url: "https://github.com/AppsFlyerSDK/AppsFlyerFramework-Static", .upToNextMajor(from: "6.14.0" )) with .product(name: "AppsFlyerLib", package: "AppsFlyerFramework-Static") in targets section or Dynamic as well. But I've get an error product 'AppsFlyerLib' required by package not found in package 'AppsFlyerFramework-Dynamic'

Thank you

@af-obodovskyi
Copy link
Contributor

@bigMOTOR
Here is verified solution.
Please remove SPM caches from following directories

rm -rf ~/Library/Caches/org.swift.swiftpm
rm -rf ~/Library/org.swift.swiftpm

Optionally: 
rm -rf ~/.swiftpm

Delete derived data and clean the project.

@T-Pham
Copy link

T-Pham commented Apr 9, 2024

Thanks, @af-obodovskyi. Confirmed that 6.14.0 has fixed the issue on tvOS as well!

@bigMOTOR
Copy link

bigMOTOR commented Apr 9, 2024

@bigMOTOR Here is verified solution. Please remove SPM caches from following directories

rm -rf ~/Library/Caches/org.swift.swiftpm
rm -rf ~/Library/org.swift.swiftpm

Optionally: 
rm -rf ~/.swiftpm

Delete derived data and clean the project.

@af-obodovskyi Finally, after all these steps, the issue with the plist looks to be resolved. Thanks

@guppy-jpf
Copy link

fyi, this issue seems to be fixed, at least for us, in xcode 15.4 ...
we're still using appsflyer 6.12.2, and had been manually doing the "version 100" workaround when building w/ xcode 15.3, but, even though i couldn't find anything pertinent in the release notes to indicate that apple had changed anything, the 15.4 build/uploads i did today were processed with no errors.

@eyale
Copy link

eyale commented May 20, 2024

works fine with Xcode 15.4 - just download new version of Xcode.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests