facebook / facebook-sdk-for-unity

The facebook sdk for unity.
https://developers.facebook.com/docs/unity
Other
487 stars 256 forks source link

iOS Unity Cloud builds started to fail #578

Open gindemit opened 3 years ago

gindemit commented 3 years ago

Checklist

Environment

Describe your dev environment here, giving as many details as possible. If you have them, make sure to include:

Goals

What do you want to achieve?

I want that the build for iOS platform works again.

Expected Results

What do you expect to happen?

The build has no errors.

Actual Results

What actually happened? Can you provide a stack trace?

Actually when we run Unity Cloud builds, there are build errors:

32956: ❌; /BUILD_PATH/soulside.app.release-1-10-0-release-ios/dev/client/UnityClient/temp20210908-6581-wt2ofb/Pods/FBSDKShareKit/FBSDKShareKit/FBSDKShareKit/Internal/FBSDKMessengerIcon.h:23:9: 'FBSDKCoreKitImport.h' file not found 32957: #import "FBSDKCoreKitImport.h" 32958: ▸ Compiling FBSDKMessengerIcon.m 32959: ❌; /BUILD_PATH/soulside.app.release-1-10-0-release-ios/dev/client/UnityClient/temp20210908-6581-wt2ofb/Pods/FBSDKShareKit/FBSDKShareKit/FBSDKShareKit/Internal/FBSDKMessengerIcon.h:23:9: 'FBSDKCoreKitImport.h' file not found

Steps to Reproduce

What are the steps necessary to reproduce this issue?

Code Samples & Details

Please provide a code sample, as well as any additional details, to help us track down the issue. If you can provide a link to a test project that allows us to reproduce the issue, this helps us immensely in both the speed and quality of the fix.

Here is a full build log: build_log_ios.txt

Note: Remember to format your code for readability:

// INSERT YOUR CODE HERE
katan99 commented 3 years ago

Same issue with jenkins Unity 2020.3.14f1 FB SDK 11 AN 6.5.1 XCode 12.5.1 .xcode.project/Pods/FBSDKShareKit/FBSDKShareKit/FBSDKShareKit/Internal/FBSDKMessengerIcon.h:23:9: fatal error: 'FBSDKCoreKitImport.h' file not found

JuicyBen commented 3 years ago

Same for me.

I guess that is because FBSDKMessengerIcon.h is in FBSDKShareKit/Internal while FBSDKCoreKitImport.h is in FBSDKShareKit. You can get rid of the error and build by replacing #import "FBSDKCoreKitImport.h" by #import .

It would be great if someone could confirm whether there's a problem with this version of the FB SDK or if we're just missing something.

gindemit commented 3 years ago

Hey @JuicyBen, thanks for you answer. I am not sure how we can try to replace the #import "FBSDKCoreKitImport.h" by #import , we don't have any access to the Unity cloud build environment. As I understand this error comes from new version of BSDKShareKit that comes from Pods. The builds started to fail today. We didn't changed anything in the Facebook SDK, or iOS resolver settings. That's why I think it is related to some updates in the Pods dependencies for Facebook SDK.

PixelEnvision commented 3 years ago

@khindemit you're right, this directly related to pod updates.

I've just updated pods on my local building device (updated to 11.2.0 from 11.1.0)and the same error started to appear, that was the only difference. @JuicyBen 's fix seem to allow building but I'm not sure if everything's working ok.

cmcpasserby commented 3 years ago

having the same issue on local builds as well, was also the same issue had to edit my Podfile and changes it to explicitly target 11.1.0 instead of ~> 11.0

gindemit commented 3 years ago

Hey @cmcpasserby, thanks a lot for your suggestion! I can confirm that the Unity Cloud builds started to build for iOS. Steps to fix:

  1. Open the UnityClient/Assets/FacebookSDK/Plugins/Editor/Dependencies.xml file
  2. Modify the version="~> 11.0" to version="11.1.0" for all iOS pods dependencies

The end result should look like:

<?xml version="1.0" encoding="utf-8"?>
<dependencies>
    <androidPackages>
        <androidPackage spec="com.parse.bolts:bolts-android:1.4.0" />
        <androidPackage spec="com.facebook.android:facebook-core:[11.0, 12)" />
        <androidPackage spec="com.facebook.android:facebook-applinks:[11.0, 12)" />
        <androidPackage spec="com.facebook.android:facebook-login:[11.0, 12)" />
        <androidPackage spec="com.facebook.android:facebook-share:[11.0, 12)" />
        <androidPackage spec="com.facebook.android:facebook-gamingservices:[11.0, 12)" />
    </androidPackages>
    <iosPods>
        <iosPod name="FBSDKCoreKit_Basics" version="11.1.0" />
        <iosPod name="FBSDKCoreKit" version="11.1.0" />
        <iosPod name="FBSDKLoginKit" version="11.1.0" />
        <iosPod name="FBSDKShareKit" version="11.1.0" />
        <iosPod name="FBSDKGamingServicesKit" version="11.1.0" />
    </iosPods>
</dependencies>
gindemit commented 3 years ago

Hey community, be aware that in the 11.3 version of Facebook SDK Android libraries is a bug with null reference exception: com.facebook.appevents.iap.InAppPurchaseBillingClientWrapper$BillingClientStateListenerWrapper.invoke

Here is another workaround (excluding the 11.3 version): https://github.com/facebook/facebook-sdk-for-unity/issues/579#issuecomment-917607747

So, the end result should look like:

<?xml version="1.0" encoding="utf-8"?>
<dependencies>
    <androidPackages>
        <androidPackage spec="com.parse.bolts:bolts-android:1.4.0" />
        <androidPackage spec="com.facebook.android:facebook-core:[11.0, 11.3)" />
        <androidPackage spec="com.facebook.android:facebook-applinks:[11.0, 11.3)" />
        <androidPackage spec="com.facebook.android:facebook-login:[11.0, 11.3)" />
        <androidPackage spec="com.facebook.android:facebook-share:[11.0, 11.3)" />
        <androidPackage spec="com.facebook.android:facebook-gamingservices:[11.0, 11.3)" />
    </androidPackages>
    <iosPods>
        <iosPod name="FBSDKCoreKit_Basics" version="11.1.0" />
        <iosPod name="FBSDKCoreKit" version="11.1.0" />
        <iosPod name="FBSDKLoginKit" version="11.1.0" />
        <iosPod name="FBSDKShareKit" version="11.1.0" />
        <iosPod name="FBSDKGamingServicesKit" version="11.1.0" />
    </iosPods>
</dependencies>
jmcguirk commented 3 years ago

These loose version pins are really disruptive. Please please consider moving to fixed version pins

https://github.com/facebook/facebook-sdk-for-unity/issues/569