facebook-sdk-for-unity icon indicating copy to clipboard operation
facebook-sdk-for-unity copied to clipboard

iOS Unity Cloud builds started to fail

Open gindemit opened this issue 3 years ago • 8 comments

Checklist

Environment

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

  • Unity Editor Version: 2021.1.2f1
  • Unity SDK Version: 11.0.0
  • Installation Platform & Verison: iOS version 14

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

gindemit avatar Sep 08 '21 14:09 gindemit

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

katan99 avatar Sep 08 '21 15:09 katan99

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 <FBSDKCoreKitImport.h>.

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.

JuicyBen avatar Sep 08 '21 15:09 JuicyBen

Hey @JuicyBen, thanks for you answer. I am not sure how we can try to replace the #import "FBSDKCoreKitImport.h" by #import <FBSDKCoreKitImport.h>, 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.

gindemit avatar Sep 08 '21 16:09 gindemit

@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.

PixelEnvision avatar Sep 08 '21 21:09 PixelEnvision

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

cmcpasserby avatar Sep 09 '21 01:09 cmcpasserby

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 avatar Sep 09 '21 10:09 gindemit

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>

gindemit avatar Sep 13 '21 04:09 gindemit

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

jmcguirk avatar Sep 13 '21 22:09 jmcguirk