AppLovin / AppLovin-MAX-Unity-Plugin

110 stars 31 forks source link

App Store Connect upload fails when using Fyber 8.2.7.0 #350

Closed luan-lucas closed 1 month ago

luan-lucas commented 1 month ago

MAX Plugin Version

6.3.1, 6.4.0 (Tested both versions)

Unity Version

2021.3.23f1, 2023.2.16f1 (Tested both versions)

Device/Platform Info

iOS

Current Behavior

Currently facing this problem when trying to upload a production build to Testflight.

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

Tried messing with the minimum OS version (it was 11, changed it to 13) but same thing happens. It works correctly if I downgrade Fyber's mediation SDK to 8.2.5.2.

In Fyber's iOS 8.2.7 Changelog I noticed something:

Added a Privacy Manifest
Updated to a static framework < <
Added support for reading TCF v2 consent values 

Could this change to a static framework be related to the issue?

Expected Behavior

The build is uploaded correctly to App Store Connect.

How to Reproduce

  1. Have Max plugin 6.3.1 installed
  2. Have Fyber (DT Exchange) mediator 8.2.7.0 installed.
  3. Build the app.
  4. Try to upload a build to Testflight. Notice the error.

Additional Info

No response

JonathanLiuApp commented 1 month ago

@luan-lucas I was unable to reproduce your issue - I didn't see any errors when uploading a build with Fyber 8.2.7.0 to Testflight. I used Xcode version 15.0.1 when trying this out.

JavierPKDev commented 1 month ago

Hi, just add here but i have the same issue but with Unity 2022.3.22f1 My solution was downgrade the IOS Fyber adapter to version 4.3.32.3 (because is using a previous version of the SDK), because with the lastest (SDK 8.2.7) Apple throw me the same error message. I have trying with various XCode version (15.2, 15.1, 15.0) but no luck.

pv-neven commented 1 month ago

I can confirm we are having the same issue on multiple products.

Asset validation failed
Invalid Bundle. The bundle XXX.app/Frameworks/IASDKCore.framework does not support the minimum OS Version specified in the Info.plist
JonathanLiuApp commented 1 month ago

This appears to be an Xcode bug: https://forums.developer.apple.com/forums/thread/705297. A workaround that you could try is to modify Fyber's MinimumOSVersion in their Info.plist to a really high value. For example: <key>MinimumOSVersion</key> <string>100</string>

Note that you need to modify the Info.plist in the .framework for the specific architecture, not the Info.plist in the .xcframework.

luan-lucas commented 1 month ago

@JonathanLiuApp Could this workaround be implemented as a post-processing script? We have a lot of apps and it's not ideal to manually change the Info.plist for each build that we need to upload. Also, as @JavierPKDev mentioned, reverting Fyber to a previous version is what fixes the bug in our case, which indicates that it could be a Fyber related issue. It's not possible to change our Xcode version to pre-15.0, since Apple will require at least Xcode 15.0 for new builds, starting 29 April.

JonathanLiuApp commented 1 month ago

Where to find the Info.plist: FyberMinVersion

santoshbagadi commented 1 month ago

We've added a fix for this in our latest Plugin (6.4.3).

Calabash-Boy commented 3 weeks ago

Max 6.4.3 Xcode 15.2 Still have the issue. @santoshbagadi

ertugrulerdogan commented 3 weeks ago

We also have the same issue @santoshbagadi

ertugrulerdogan commented 2 weeks ago

This issue continues on Max SDK 6.4.3 and Xcode 15.3. We need to upgrade Fyber SDK to at least 8.2.7.0 to meet the requirement for Apple's privacy manifest issue for 3rd party SDKs which is starting in spring 2024. @santoshbagadi fix you mention for 6.4.3 seems to be not working in our case. Is there any plan to fix this issue in the next version?

tpg-vhnunes commented 2 weeks ago

Max SDK 6.4.3 and Xcode 15.2, still having this issue

marvinbarth commented 1 week ago

Experiencing the same issue with Max SDK 6.4.4 and XCode 15.3 @santoshbagadi @JonathanLiuApp is there any update on this? with Apple's new privacy manifest policy now in place, we cannot work around the issue by downgrading anymore

santoshbagadi commented 1 week ago

We've tried to reproduce the issue with Fyber adapter version 8.2.8.0 and MAX SDK version 6.4.4 and we were not able to reproduce the issue. We're able to successfully publish the app via AppStore Connect.

Do you mind sharing the Podfile and External Dependency Manager settings being used by the app?

marvinbarth commented 1 week ago

@santoshbagadi Thank you for your response! I am not sure what exactly you mean by the External Dependency Manager settings, so please let me know if what I sent you is not what you need.

Another point I noticed is that we use the External Dependency Manager version 1.2.178 (imported with Firebase in our case), while your packages comes with version 1.2.176, I believe. Maybe that is relevant.

Podfile:

source 'https://cdn.cocoapods.org/'

platform :ios, '12.0'

target 'UnityFramework' do
  pod 'AppLovinMediationByteDanceAdapter', '5.9.0.8.0'
  pod 'AppLovinMediationFacebookAdapter', '6.15.0.0'
  pod 'AppLovinMediationFyberAdapter', '8.2.8.0'
  pod 'AppLovinMediationGoogleAdapter', '11.4.0.0'
  pod 'AppLovinMediationGoogleAdManagerAdapter', '11.4.0.0'
  pod 'AppLovinMediationIronSourceAdapter', '8.0.0.0.0'
  pod 'AppLovinMediationMintegralAdapter', '7.6.3.0.0'
  pod 'AppLovinMediationUnityAdsAdapter', '4.10.0.0'
  pod 'AppLovinMediationVungleAdapter', '7.3.2.0'
  pod 'AppLovinSDK', '12.4.2'
  pod 'Firebase/Analytics', '10.7.0'
  pod 'Firebase/Auth', '10.7.0'
  pod 'Firebase/Core', '10.7.0'
  pod 'Firebase/Crashlytics', '10.7.0'
  pod 'Firebase/Database', '10.7.0'
  pod 'Firebase/Functions', '10.7.0'
  pod 'Firebase/Messaging', '10.7.0'
  pod 'Firebase/RemoteConfig', '10.7.0'
  pod 'GoogleSignIn', '= 6.2.4'
end
target 'Unity-iPhone' do
end
use_frameworks! :linkage => :static

External Dependency Manager >iOS Resolver > Settings: image

marvinbarth commented 5 days ago

I was able to figure out the issue. We had some leftover post-processing script from a previous SDK version, where we had to add the IASDK.framework in order to upload. Upgrading MaxSDK added this on SDK side, so there was a conflict between the two post-processing scripts.

Can confirm it works now with Max SDK 6.4.4 and XCode 15.3.