AppsFlyerSDK / AppsFlyerFramework

AppsFlyer Apple SDK
https://support.appsflyer.com/hc/en-us/articles/207032066-AppsFlyer-SDK-Integration-iOS
Other
163 stars 90 forks source link

App archive fails validation due to invalid plist file on Xcode 15.3 #263

Closed cameroncooke closed 2 months ago

cameroncooke commented 4 months ago

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:

https://github.com/google/GoogleAppMeasurement/issues/62 https://github.com/firebase/firebase-ios-sdk/issues/12441

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

af-obodovskyi commented 3 months ago

@georgbachmann fixed, please reset your SPM cache and try again.

leearmstrong commented 3 months ago

Huh? So you bumped the release and changed the code, but not the version?

I know you've done this before, why not keep distinct versions so this would be 6.13.3? This is crazy.

cameroncooke commented 3 months ago

So it's closed as fixed but apparently it was an Apple bug? 🤔🤷‍♂️

wsb9 commented 3 months ago

Still reproducible. AppStore does not accepting builds even after resetting SPM cache (multiple times).

Xcode 15.3 AppsFlyer 6.13.2

ob1vansk1y commented 3 months ago

@wsb9 Could you, please, share your logs and the link to the github repo from which you pull the AppsFlyer SPM dependency?

kselvin commented 3 months ago

I archived/uploaded with the dynamically linked version instead and got a warning

"Architecture incompatible with MinimumOSVersion."

but it still let me upload to App store. Is this ok? I do not know what that means says

Although delivery was successful, you may want to correct the following issues in your next delivery. Once you've corrected the issues, upload a new binary to App Store ITMS-90747: Architecture incompatible with MinimumOSVersion. The bundle at /Frameworks/AppsFlyerLib.framework' specifies a MinimumOSVersion of '100.0' but contains a 32-bit architecture that is unsupported on iOS 12 and later.

Minimum Version 100?

jamesyorke commented 3 months ago

This is not fixed

af-obodovskyi commented 3 months ago

@jamesyorke please check with these repositories, mentioned in the Readme to the repository.

For statically linked library

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

For dynamically linked library

https://github.com/AppsFlyerSDK/AppsFlyerFramework-Dynamic

For Strict (No IDFA colection) library

https://github.com/AppsFlyerSDK/AppsFlyerFramework-Strict

af-obodovskyi commented 3 months ago

@cameroncooke, @williamkey123 , @zavsby @vince1393 , @jamesyorke , @jamesyorke I have created a small sample app so you will be able to verify, that the solution with the SPM works propperly. Please, follow the readme carefully and repeat all steps to be able to test propperly.

T-Pham commented 3 months ago

@af-obodovskyi, the issue persists on tvOS, at least for the Strict library, for us. I guess the fix didn't get applied to the tvOS framework files?

af-obodovskyi commented 3 months ago

@T-Pham, thank you for your comment, reopening the issue. We will adapt our solution and will release a fix as we test and verify, that all platforms are covered with the fix ASAP.

wsb9 commented 3 months ago

@ob1vansk1y tried w new repo -- works OK for iOS now. Thanks!

Faizan-Seera commented 3 months ago

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 commented 3 months ago

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 commented 3 months ago

@skapur1424 @Faizan-Seera Did you try this?

https://github.com/AppsFlyerSDK/AppsFlyerFramework/issues/263#issuecomment-2025576536

af-obodovskyi commented 3 months ago

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 commented 3 months ago

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

vince1393 commented 3 months ago

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

T-Pham commented 3 months ago

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

bigMOTOR commented 3 months ago

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 commented 2 months ago

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 commented 2 months ago

@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 commented 2 months ago

@bigMOTOR

https://github.com/AppsFlyerSDK/AppsFlyerFramework/issues/263#issuecomment-2025576536

af-obodovskyi commented 2 months ago

@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 commented 2 months ago

@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 commented 2 months ago

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

adamrushy commented 2 months ago

@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 commented 2 months ago

@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 commented 2 months ago

@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 commented 2 months ago

@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 commented 2 months ago

@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 commented 2 months ago

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

bigMOTOR commented 2 months ago

@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 commented 1 month ago

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 commented 1 month ago

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