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

Cannot find type 'FBLPromise' in scope when upgrading from 10.10.0 to 10.24.0 #12867

Closed
voghDev opened this issue Apr 30, 2024 · 9 comments
Closed

Comments

@voghDev
Copy link

voghDev commented Apr 30, 2024

Description

Hi!
We're updating from firebase-ios-sdk 10.10.0 to 10.24.0 and we suddenly found compilation errors related to Promises.
We've noticed that the same happens when updating to any version newer than 10.11.0. In the 10.22.0 CHANGELOG it refers changes in the Promises framework, but we're having the error even with older versions of firebase-ios-sdk. We've also reviewed #7448 and the solutions there appear not to work in our case.

  • Is there any other dependency we need to update or a lacking dependency we need to add?
  • Has someone experienced the same issue?

Screenshot 2024-04-30 at 10 37 07

We use Tuist+SPM, our Tuist/Dependencies.swift file looks like this:

let packages: [Package] = [
    .remote(
        url: "https://github.com/algolia/algoliasearch-client-swift",
        requirement: .exact("8.11.0")),
    .remote(
        url: "https://github.com/PerimeterX/px-iOS-Framework", requirement: .exact("2.0.0")),
    .remote(
        url: "https://github.com/WeTransfer/Mocker", requirement: .exact("2.3.0")),
    .remote(
        url: "https://github.com/evgenyneu/keychain-swift",
        requirement: .upToNextMajor(from: "19.0.0")),
    .remote(
        url: "https://github.com/apollographql/apollo-ios",
        requirement: .upToNextMinor(from: "0.50.0")),
    .remote(
        url: "https://github.com/slackhq/PanModal", requirement: .upToNextMinor(from: "1.2.6")),
    .remote(
        url: "https://github.com/splitio/ios-client",
        requirement: .upToNextMinor(from: "2.14.0")),
    .remote(url: "https://github.com/facebook/facebook-ios-sdk", requirement: .exact("17.0.0")),
    .remote(
        url: "https://github.com/Juanpe/SkeletonView",
        requirement: .upToNextMinor(from: "1.30.4")),
    .remote(url: "https://github.com/malcommac/SwiftRichString", requirement: .exact("3.7.2")),
    .remote(
        url: "https://github.com/ReactiveX/RxSwift", requirement: .upToNextMajor(from: "6.0.0")),
    .remote(
        url: "https://github.com/RxSwiftCommunity/RxDataSources.git",
        requirement: .upToNextMajor(from: "5.0.0")),
    .remote(
        url: "https://github.com/cloudinary/cloudinary_ios",
        requirement: .upToNextMinor(from: "3.0.3")),
    .remote(url: "https://github.com/pubnub/swift", requirement: .exact("4.0.1")),
    .remote(
        url: "https://github.com/bugfender/BugfenderSDK-iOS", requirement: .exact("1.10.1")),
    .remote(url: "https://github.com/Iterable/swift-sdk", requirement: .exact("6.2.21")),
    .remote(url: "https://github.com/amplitude/Amplitude-iOS", requirement: .exact("8.18.1")),
    .remote(
        url: "https://github.com/AppsFlyerSDK/AppsFlyerFramework", requirement: .exact("6.9.0")),
    .remote(
        url: "https://github.com/pointfreeco/swift-snapshot-testing",
        requirement: .exact("1.8.2")),
    .remote(
        url: "https://github.com/SnapKit/SnapKit", requirement: .upToNextMajor(from: "5.7.1")),
    .remote(
        url: "https://github.com/onevcat/Kingfisher", requirement: .upToNextMajor(from: "7.10.0")
    ),
    .remote(url: "https://github.com/airbnb/lottie-ios", requirement: .exact("4.4.2")),
    .remote(
        url: "https://github.com/mzeeshanid/MZDownloadManager", requirement: .exact("3.7.0")),
    .remote(url: "https://github.com/lucas34/SwiftQueue", requirement: .exact("6.0.0")),
    .remote(
        url: "https://github.com/ashleymills/Reachability.swift", requirement: .exact("5.2.0")),
    .remote(url: "https://github.com/firebase/firebase-ios-sdk", requirement: .exact("10.24.0")),
    .remote(url: "https://github.com/arnauddorgans/InfiniteLayout", requirement: .branch("master")),
    .remote(url: "https://github.com/SDWebImage/libwebp-Xcode", requirement: .exact("1.1.0")),
    .remote(
        url: "https://github.com/gonzalezreal/AttributedText",
        requirement: .upToNextMajor(from: "1.0.0")),
    .remote(
        url: "https://github.com/gonzalezreal/NetworkImage",
        requirement: .upToNextMajor(from: "4.0.0")),
    .remote(
        url: "https://github.com/pointfreeco/combine-schedulers",
        requirement: .upToNextMajor(from: "0.5.3")),
    .remote(url: "https://github.com/customerio/customerio-ios", requirement: .exact("2.13.0")),
]

Thanks in advance

Reproducing the issue

In order to reproduce the issue, we only need to upgrade the firebase-ios-sdk version in Tuist/Dependencies.swift, then do

tuist fetch
tuist generate

After that, the project won't compile.
If we revert firebase-ios-sdk back to 10.10.0, everything compiles and works again

Firebase SDK Version

10.24.0

Xcode Version

15.0.1

Installation Method

Swift Package Manager

Firebase Product(s)

Crashlytics, In-App Messaging, Messaging, Remote Config

Targeted Platforms

iOS

Relevant Log Output

No response

If using Swift Package Manager, the project's Package.resolved

Expand Package.resolved snippet
{
  "pins" : [
    {
      "identity" : "abseil-cpp-binary",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/google/abseil-cpp-binary.git",
      "state" : {
        "revision" : "748c7837511d0e6a507737353af268484e1745e2",
        "version" : "1.2024011601.1"
      }
    },
    {
      "identity" : "algoliasearch-client-swift",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/algolia/algoliasearch-client-swift",
      "state" : {
        "revision" : "3bc2d64ea9fbf517c5711992f562770743e64ca8",
        "version" : "8.11.0"
      }
    },
    {
      "identity" : "amplitude-ios",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/amplitude/Amplitude-iOS",
      "state" : {
        "revision" : "879629ac8c33a35ac8893d81794059c718a073e9",
        "version" : "8.18.1"
      }
    },
    {
      "identity" : "analytics-connector-ios",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/amplitude/analytics-connector-ios.git",
      "state" : {
        "revision" : "e2ca17ac735bcbc48b13062484541702ef45153d",
        "version" : "1.0.3"
      }
    },
    {
      "identity" : "apollo-ios",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/apollographql/apollo-ios",
      "state" : {
        "revision" : "d93568fb58f3eed95c2a0068d830a39a6e9d6c97",
        "version" : "0.50.0"
      }
    },
    {
      "identity" : "app-check",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/google/app-check.git",
      "state" : {
        "revision" : "7d2688de038d5484866d835acb47b379722d610e",
        "version" : "10.19.0"
      }
    },
    {
      "identity" : "appsflyerframework",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/AppsFlyerSDK/AppsFlyerFramework",
      "state" : {
        "revision" : "8caf67c0d8d784d59f8421ab0cb54fb4f4941aee",
        "version" : "6.9.0"
      }
    },
    {
      "identity" : "attributedtext",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/gonzalezreal/AttributedText",
      "state" : {
        "revision" : "2dc2d7864e0fee4b524a5850d7d7cf9a7eeda0fc",
        "version" : "1.0.0"
      }
    },
    {
      "identity" : "bugfendersdk-ios",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/bugfender/BugfenderSDK-iOS",
      "state" : {
        "revision" : "f78687b15eec890ff6e6789a654481fb85f7d9aa",
        "version" : "1.10.1"
      }
    },
    {
      "identity" : "cloudinary_ios",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/cloudinary/cloudinary_ios",
      "state" : {
        "revision" : "f89f50b521d6740df0812618ae4473ace15124fd",
        "version" : "3.0.3"
      }
    },
    {
      "identity" : "combine-schedulers",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/pointfreeco/combine-schedulers",
      "state" : {
        "revision" : "aa3e575929f2bcc5bad012bd2575eae716cbcdf7",
        "version" : "0.8.0"
      }
    },
    {
      "identity" : "customerio-ios",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/customerio/customerio-ios",
      "state" : {
        "revision" : "7aa128c1e8031ad9388937c109ea71d432096245",
        "version" : "2.13.0"
      }
    },
    {
      "identity" : "facebook-ios-sdk",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/facebook/facebook-ios-sdk",
      "state" : {
        "revision" : "09eb5b0cb74127a360e0bc74a2d75ec1fd351e48",
        "version" : "17.0.0"
      }
    },
    {
      "identity" : "firebase-ios-sdk",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/firebase/firebase-ios-sdk",
      "state" : {
        "revision" : "42eae77a0af79e9c3f41df04a23c76f05cfdda77",
        "version" : "10.24.0"
      }
    },
    {
      "identity" : "googleappmeasurement",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/google/GoogleAppMeasurement.git",
      "state" : {
        "revision" : "51ba746a9d51a4bd0774b68499b0c73ef6e8570d",
        "version" : "10.24.0"
      }
    },
    {
      "identity" : "googledatatransport",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/google/GoogleDataTransport.git",
      "state" : {
        "revision" : "a637d318ae7ae246b02d7305121275bc75ed5565",
        "version" : "9.4.0"
      }
    },
    {
      "identity" : "googleutilities",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/google/GoogleUtilities.git",
      "state" : {
        "revision" : "26c898aed8bed13b8a63057ee26500abbbcb8d55",
        "version" : "7.13.1"
      }
    },
    {
      "identity" : "grpc-binary",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/google/grpc-binary.git",
      "state" : {
        "revision" : "e9fad491d0673bdda7063a0341fb6b47a30c5359",
        "version" : "1.62.2"
      }
    },
    {
      "identity" : "gtm-session-fetcher",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/google/gtm-session-fetcher.git",
      "state" : {
        "revision" : "d415594121c9e8a4f9d79cecee0965cf35e74dbd",
        "version" : "3.1.1"
      }
    },
    {
      "identity" : "infinitelayout",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/arnauddorgans/InfiniteLayout",
      "state" : {
        "branch" : "master",
        "revision" : "a576a83530a94ccb3367ab12c8eac7ec5520e8c1"
      }
    },
    {
      "identity" : "interop-ios-for-google-sdks",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/google/interop-ios-for-google-sdks.git",
      "state" : {
        "revision" : "2d12673670417654f08f5f90fdd62926dc3a2648",
        "version" : "100.0.0"
      }
    },
    {
      "identity" : "ios-client",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/splitio/ios-client",
      "state" : {
        "revision" : "46ede7e4b217d8ff389666b166ffe014ed062d6c",
        "version" : "2.14.0"
      }
    },
    {
      "identity" : "keychain-swift",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/evgenyneu/keychain-swift",
      "state" : {
        "revision" : "96fb84f45a96630e7583903bd7e08cf095c7a7ef",
        "version" : "19.0.0"
      }
    },
    {
      "identity" : "kingfisher",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/onevcat/Kingfisher",
      "state" : {
        "revision" : "5b92f029fab2cce44386d28588098b5be0824ef5",
        "version" : "7.11.0"
      }
    },
    {
      "identity" : "leveldb",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/firebase/leveldb.git",
      "state" : {
        "revision" : "0706abcc6b0bd9cedfbb015ba840e4a780b5159b",
        "version" : "1.22.2"
      }
    },
    {
      "identity" : "libwebp-xcode",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/SDWebImage/libwebp-Xcode",
      "state" : {
        "revision" : "86c1b5d567ed548da861486b54e1f8f068a3cef7",
        "version" : "1.1.0"
      }
    },
    {
      "identity" : "lottie-ios",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/airbnb/lottie-ios",
      "state" : {
        "revision" : "ab15129d567eda5da0631fcba23de60144a612f4",
        "version" : "4.4.2"
      }
    },
    {
      "identity" : "mocker",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/WeTransfer/Mocker",
      "state" : {
        "revision" : "2128c4224ac5e9d2a32d485f8bd230a3e559be86",
        "version" : "2.3.0"
      }
    },
    {
      "identity" : "mzdownloadmanager",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/mzeeshanid/MZDownloadManager",
      "state" : {
        "revision" : "daada21e524b8416b95e68cd436a87f3a77f5ecd",
        "version" : "3.7.0"
      }
    },
    {
      "identity" : "nanopb",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/firebase/nanopb.git",
      "state" : {
        "revision" : "819d0a2173aff699fb8c364b6fb906f7cdb1a692",
        "version" : "2.30909.0"
      }
    },
    {
      "identity" : "networkimage",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/gonzalezreal/NetworkImage",
      "state" : {
        "revision" : "c97f83e771c95186af80ef6118f158852a9e54be",
        "version" : "4.0.1"
      }
    },
    {
      "identity" : "panmodal",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/slackhq/PanModal",
      "state" : {
        "revision" : "b012aecb6b67a8e46369227f893c12544846613f",
        "version" : "1.2.7"
      }
    },
    {
      "identity" : "promises",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/google/promises.git",
      "state" : {
        "revision" : "540318ecedd63d883069ae7f1ed811a2df00b6ac",
        "version" : "2.4.0"
      }
    },
    {
      "identity" : "px-ios-framework",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/PerimeterX/px-iOS-Framework",
      "state" : {
        "revision" : "f7ec70d2b4a9ace78b6f85a9598f1278a8c7b8f5",
        "version" : "2.0.0"
      }
    },
    {
      "identity" : "reachability.swift",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/ashleymills/Reachability.swift",
      "state" : {
        "revision" : "c01127cb51f591045696128effe43c16840d08bf",
        "version" : "5.2.0"
      }
    },
    {
      "identity" : "rxdatasources",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/RxSwiftCommunity/RxDataSources.git",
      "state" : {
        "revision" : "90c29b48b628479097fe775ed1966d75ac374518",
        "version" : "5.0.2"
      }
    },
    {
      "identity" : "rxswift",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/ReactiveX/RxSwift.git",
      "state" : {
        "revision" : "b4307ba0b6425c0ba4178e138799946c3da594f8",
        "version" : "6.5.0"
      }
    },
    {
      "identity" : "skeletonview",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/Juanpe/SkeletonView",
      "state" : {
        "revision" : "739a4f5d78731bebc48811c75fa9e1f4c4cef23e",
        "version" : "1.30.4"
      }
    },
    {
      "identity" : "snapkit",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/SnapKit/SnapKit",
      "state" : {
        "revision" : "2842e6e84e82eb9a8dac0100ca90d9444b0307f4",
        "version" : "5.7.1"
      }
    },
    {
      "identity" : "sqlite.swift",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/stephencelis/SQLite.swift.git",
      "state" : {
        "revision" : "4d543d811ee644fa4cc4bfa0be996b4dd6ba0f54",
        "version" : "0.13.3"
      }
    },
    {
      "identity" : "swift",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/pubnub/swift",
      "state" : {
        "revision" : "03881adb814e3e9dd28f774029cccb343d02e5b4",
        "version" : "4.0.1"
      }
    },
    {
      "identity" : "swift-log",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/apple/swift-log.git",
      "state" : {
        "revision" : "6fe203dc33195667ce1759bf0182975e4653ba1c",
        "version" : "1.4.4"
      }
    },
    {
      "identity" : "swift-protobuf",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/apple/swift-protobuf.git",
      "state" : {
        "revision" : "b8230909dedc640294d7324d37f4c91ad3dcf177",
        "version" : "1.20.1"
      }
    },
    {
      "identity" : "swift-sdk",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/Iterable/swift-sdk",
      "state" : {
        "revision" : "19fb4631a2e3ebaf938bab32703d55963aa9ce22",
        "version" : "6.2.21"
      }
    },
    {
      "identity" : "swift-snapshot-testing",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/pointfreeco/swift-snapshot-testing",
      "state" : {
        "revision" : "c466812aa2e22898f27557e2e780d3aad7a27203",
        "version" : "1.8.2"
      }
    },
    {
      "identity" : "swiftqueue",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/lucas34/SwiftQueue",
      "state" : {
        "revision" : "c904ca87d4be58c38e9c07c83438fd957dba12fe",
        "version" : "6.0.0"
      }
    },
    {
      "identity" : "swiftrichstring",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/malcommac/SwiftRichString",
      "state" : {
        "revision" : "9bf4b5af6bb4386865636fc504d6c588c2b65040",
        "version" : "3.7.2"
      }
    },
    {
      "identity" : "xctest-dynamic-overlay",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/pointfreeco/xctest-dynamic-overlay",
      "state" : {
        "revision" : "30314f1ece684dd60679d598a9b89107557b67d9",
        "version" : "0.4.1"
      }
    }
  ],
  "version" : 2
}

If using CocoaPods, the project's Podfile.lock

Expand Podfile.lock snippet
Replace this line with the contents of your Podfile.lock!
@google-oss-bot
Copy link

I couldn't figure out how to label this issue, so I've labeled it for a human to triage. Hang tight.

@rizafran
Copy link
Contributor

Hi @voghDev, this looks related to tuist/tuist#6036. With this, please make sure that you're using at least Tuist 4.4.

@paulb777
Copy link
Member

More context for @rizafran's suggestion at #12427

@voghDev
Copy link
Author

voghDev commented May 3, 2024

First of all, thanks for your answers @rizafran @paulb777 🙏
I haven't solved the issue yet but I have several progress. This is what I've tried for the moment, hoping that it will inspire someone else in the future.
First, I've updated Tuist to 4.5.0, as 4.4.0 seems not to work:

➜  brew install [email protected]
==> Downloading https://formulae.brew.sh/api/formula.jws.json
################################################################################################################################################################ 100.0%
==> Downloading https://formulae.brew.sh/api/cask.jws.json
################################################################################################################################################################ 100.0%
Error: No available formula with the name "tuist/tuist/[email protected]". Did you mean tuist/tuist/[email protected], tuist/tuist/[email protected], tuist/tuist/[email protected], tuist/tuist/[email protected], tuist/tuist/[email protected], tuist/tuist/[email protected], tuist/tuist/[email protected], tuist/tuist/[email protected], tuist/tuist/[email protected], tuist/tuist/[email protected], tuist/tuist/[email protected], tuist/tuist/[email protected] [... a lot more versions of tuist]

➜ brew install [email protected]
==> Fetching tuist/tuist/[email protected]
==> Downloading https://github.com/tuist/tuist/releases/download/4.5.0/tuist.zip
==> Downloading from https://objects.githubusercontent.com/github-production-release-asset-2e65be/129699403/892eab96-ff54-4f66-9b05-f027c25b9fb1?X-Amz-Algorithm=AWS4-H
################################################# 100.0%
==> Installing [email protected] from tuist/tuist

After that, the project does not build for me, tuist fetch seems to be no longer a valid command, and tuist install/tuist build are both failing. It seems that the project description helpers we used for version 3.41.0 are no longer valid, and we'll need to update our syntax to the one used in Tuist 4.5.0:

➜  tuist generate
Loading and constructing the graph
It might take a while if the cache is empty
error: emit-module command failed with exit code 1 (use -v to see invocation)
/Users/.../Tuist/ProjectDescriptionHelpers/Module.swift:14:55: error: 'Value' is not a member type of enum 'ProjectDescription.InfoPlist'
    public let infoPlistExtension: [String: InfoPlist.Value]
                                            ~~~~~~~~~ ^
ProjectDescription.InfoPlist:1:13: note: 'InfoPlist' declared here
public enum InfoPlist : Codable, Equatable {
            ^
/Users/.../Tuist/ProjectDescriptionHelpers/Module.swift:26:48: error: 'Value' is not a member type of enum 'ProjectDescription.InfoPlist'
        infoPlistExtension: [String: InfoPlist.Value] = [:]
                                     ~~~~~~~~~ ^
ProjectDescription.InfoPlist:1:13: note: 'InfoPlist' declared here
public enum InfoPlist : Codable, Equatable {
            ^
/Users/.../Tuist/ProjectDescriptionHelpers/Project+DeploymentTarget.swift:3:11: error: cannot find type 'DeploymentTarget' in scope
extension DeploymentTarget {
          ^~~~~~~~~~~~~~~~
error: fatalError
The 'swiftc' command exited with error code 1
Consider creating an issue using the following link: https://github.com/tuist/tuist/issues/new/choose

So while I fix this error: 'Value' is not a member type of enum 'ProjectDescription.InfoPlist', I've switched Tuist back to 3.42.2, and re-generated the project. The error I'm getting now is different than the one described on this issue ☝️
and I'm investigating it.

➜  tuist version
4.5.0
➜  brew uninstall [email protected]
Uninstalling /opt/homebrew/Cellar/[email protected]/4.3.0... (63 files, 106.6MB)
➜  brew install [email protected]
==> Fetching tuist/tuist/[email protected]
==> Downloading https://github.com/tuist/tuist/releases/download/3.42.2/tuist.zip
➜  tuist generate
### The project now builds again, but gives a different compilation error

My goal is to have Tuist updated to 4.5.0 and able to build the project. I'll keep this updated with my progress 👍 Thanks everyone for your attention!

@voghDev
Copy link
Author

voghDev commented May 10, 2024

Hi again!

after applying the hints proposed here, the error it shows is different.

Use of undeclared identifier 'FIRRemoteConfigConstants'

Screenshot 2024-05-10 at 14 33 28

Any ideas about what this could be related to? any help would be much appreciated.


I'm still trying to update to tuist v4 but our project is big and I haven't completed it yet. I wanted to try solving this as an alternative while I complete the migration to tuist v4.

@ncooke3
Copy link
Member

ncooke3 commented May 10, 2024

@voghDev, that symbol should be coming from the FirebaseRemoteConfigInterop SDK. I'm not familiar with Tuist, but is there a file that shows all of the dependencies and their versions?

Some steps to debug further would be:

@voghDev
Copy link
Author

voghDev commented May 13, 2024

Hi @ncooke3! Thanks for your comment. FirebaseRemoteConfigInterop can be a path to investigate.

The only way I know to list the dependencies and their versions is to attach the updated Package.resolved file after the latest changes we've made.

You can expand this to see our updated Package.resolved file
{
  "pins" : [
    {
      "identity" : "abseil-cpp-binary",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/google/abseil-cpp-binary.git",
      "state" : {
        "revision" : "748c7837511d0e6a507737353af268484e1745e2",
        "version" : "1.2024011601.1"
      }
    },
    {
      "identity" : "algoliasearch-client-swift",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/algolia/algoliasearch-client-swift",
      "state" : {
        "revision" : "3bc2d64ea9fbf517c5711992f562770743e64ca8",
        "version" : "8.11.0"
      }
    },
    {
      "identity" : "amplitude-ios",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/amplitude/Amplitude-iOS",
      "state" : {
        "revision" : "879629ac8c33a35ac8893d81794059c718a073e9",
        "version" : "8.18.1"
      }
    },
    {
      "identity" : "analytics-connector-ios",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/amplitude/analytics-connector-ios.git",
      "state" : {
        "revision" : "e2ca17ac735bcbc48b13062484541702ef45153d",
        "version" : "1.0.3"
      }
    },
    {
      "identity" : "apollo-ios",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/apollographql/apollo-ios",
      "state" : {
        "revision" : "d93568fb58f3eed95c2a0068d830a39a6e9d6c97",
        "version" : "0.50.0"
      }
    },
    {
      "identity" : "app-check",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/google/app-check.git",
      "state" : {
        "revision" : "7d2688de038d5484866d835acb47b379722d610e",
        "version" : "10.19.0"
      }
    },
    {
      "identity" : "appsflyerframework",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/AppsFlyerSDK/AppsFlyerFramework",
      "state" : {
        "revision" : "8caf67c0d8d784d59f8421ab0cb54fb4f4941aee",
        "version" : "6.9.0"
      }
    },
    {
      "identity" : "attributedtext",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/gonzalezreal/AttributedText",
      "state" : {
        "revision" : "2dc2d7864e0fee4b524a5850d7d7cf9a7eeda0fc",
        "version" : "1.0.0"
      }
    },
    {
      "identity" : "bugfendersdk-ios",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/bugfender/BugfenderSDK-iOS",
      "state" : {
        "revision" : "f78687b15eec890ff6e6789a654481fb85f7d9aa",
        "version" : "1.10.1"
      }
    },
    {
      "identity" : "cloudinary_ios",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/cloudinary/cloudinary_ios",
      "state" : {
        "revision" : "f89f50b521d6740df0812618ae4473ace15124fd",
        "version" : "3.0.3"
      }
    },
    {
      "identity" : "combine-schedulers",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/pointfreeco/combine-schedulers",
      "state" : {
        "revision" : "aa3e575929f2bcc5bad012bd2575eae716cbcdf7",
        "version" : "0.8.0"
      }
    },
    {
      "identity" : "customerio-ios",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/customerio/customerio-ios",
      "state" : {
        "revision" : "7aa128c1e8031ad9388937c109ea71d432096245",
        "version" : "2.13.0"
      }
    },
    {
      "identity" : "facebook-ios-sdk",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/facebook/facebook-ios-sdk",
      "state" : {
        "revision" : "09eb5b0cb74127a360e0bc74a2d75ec1fd351e48",
        "version" : "17.0.0"
      }
    },
    {
      "identity" : "firebase-ios-sdk",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/firebase/firebase-ios-sdk",
      "state" : {
        "revision" : "97940381e57703c07f31a8058d8f39ec53b7c272",
        "version" : "10.25.0"
      }
    },
    {
      "identity" : "googleappmeasurement",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/google/GoogleAppMeasurement.git",
      "state" : {
        "revision" : "16244d177c4e989f87b25e9db1012b382cfedc55",
        "version" : "10.25.0"
      }
    },
    {
      "identity" : "googledatatransport",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/google/GoogleDataTransport.git",
      "state" : {
        "revision" : "a637d318ae7ae246b02d7305121275bc75ed5565",
        "version" : "9.4.0"
      }
    },
    {
      "identity" : "googleutilities",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/google/GoogleUtilities.git",
      "state" : {
        "revision" : "8e5d57ed87057cd7b0e4e8f474d9e78f73eb85f7",
        "version" : "7.13.2"
      }
    },
    {
      "identity" : "grpc-binary",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/google/grpc-binary.git",
      "state" : {
        "revision" : "e9fad491d0673bdda7063a0341fb6b47a30c5359",
        "version" : "1.62.2"
      }
    },
    {
      "identity" : "gtm-session-fetcher",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/google/gtm-session-fetcher.git",
      "state" : {
        "revision" : "d415594121c9e8a4f9d79cecee0965cf35e74dbd",
        "version" : "3.1.1"
      }
    },
    {
      "identity" : "infinitelayout",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/arnauddorgans/InfiniteLayout",
      "state" : {
        "branch" : "master",
        "revision" : "a576a83530a94ccb3367ab12c8eac7ec5520e8c1"
      }
    },
    {
      "identity" : "interop-ios-for-google-sdks",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/google/interop-ios-for-google-sdks.git",
      "state" : {
        "revision" : "2d12673670417654f08f5f90fdd62926dc3a2648",
        "version" : "100.0.0"
      }
    },
    {
      "identity" : "ios-client",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/splitio/ios-client",
      "state" : {
        "revision" : "46ede7e4b217d8ff389666b166ffe014ed062d6c",
        "version" : "2.14.0"
      }
    },
    {
      "identity" : "keychain-swift",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/evgenyneu/keychain-swift",
      "state" : {
        "revision" : "96fb84f45a96630e7583903bd7e08cf095c7a7ef",
        "version" : "19.0.0"
      }
    },
    {
      "identity" : "kingfisher",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/onevcat/Kingfisher",
      "state" : {
        "revision" : "5b92f029fab2cce44386d28588098b5be0824ef5",
        "version" : "7.11.0"
      }
    },
    {
      "identity" : "leveldb",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/firebase/leveldb.git",
      "state" : {
        "revision" : "0706abcc6b0bd9cedfbb015ba840e4a780b5159b",
        "version" : "1.22.2"
      }
    },
    {
      "identity" : "libwebp-xcode",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/SDWebImage/libwebp-Xcode",
      "state" : {
        "revision" : "86c1b5d567ed548da861486b54e1f8f068a3cef7",
        "version" : "1.1.0"
      }
    },
    {
      "identity" : "lottie-ios",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/airbnb/lottie-ios",
      "state" : {
        "revision" : "ab15129d567eda5da0631fcba23de60144a612f4",
        "version" : "4.4.2"
      }
    },
    {
      "identity" : "mocker",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/WeTransfer/Mocker",
      "state" : {
        "revision" : "2128c4224ac5e9d2a32d485f8bd230a3e559be86",
        "version" : "2.3.0"
      }
    },
    {
      "identity" : "mzdownloadmanager",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/mzeeshanid/MZDownloadManager",
      "state" : {
        "revision" : "daada21e524b8416b95e68cd436a87f3a77f5ecd",
        "version" : "3.7.0"
      }
    },
    {
      "identity" : "nanopb",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/firebase/nanopb.git",
      "state" : {
        "revision" : "819d0a2173aff699fb8c364b6fb906f7cdb1a692",
        "version" : "2.30909.0"
      }
    },
    {
      "identity" : "networkimage",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/gonzalezreal/NetworkImage",
      "state" : {
        "revision" : "c97f83e771c95186af80ef6118f158852a9e54be",
        "version" : "4.0.1"
      }
    },
    {
      "identity" : "panmodal",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/slackhq/PanModal",
      "state" : {
        "revision" : "b012aecb6b67a8e46369227f893c12544846613f",
        "version" : "1.2.7"
      }
    },
    {
      "identity" : "promises",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/google/promises.git",
      "state" : {
        "revision" : "e70e889c0196c76d22759eb50d6a0270ca9f1d9e",
        "version" : "2.3.1"
      }
    },
    {
      "identity" : "px-ios-framework",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/PerimeterX/px-iOS-Framework",
      "state" : {
        "revision" : "f7ec70d2b4a9ace78b6f85a9598f1278a8c7b8f5",
        "version" : "2.0.0"
      }
    },
    {
      "identity" : "reachability.swift",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/ashleymills/Reachability.swift",
      "state" : {
        "revision" : "c01127cb51f591045696128effe43c16840d08bf",
        "version" : "5.2.0"
      }
    },
    {
      "identity" : "rxdatasources",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/RxSwiftCommunity/RxDataSources.git",
      "state" : {
        "revision" : "90c29b48b628479097fe775ed1966d75ac374518",
        "version" : "5.0.2"
      }
    },
    {
      "identity" : "rxswift",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/ReactiveX/RxSwift.git",
      "state" : {
        "revision" : "b4307ba0b6425c0ba4178e138799946c3da594f8",
        "version" : "6.5.0"
      }
    },
    {
      "identity" : "skeletonview",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/Juanpe/SkeletonView",
      "state" : {
        "revision" : "739a4f5d78731bebc48811c75fa9e1f4c4cef23e",
        "version" : "1.30.4"
      }
    },
    {
      "identity" : "snapkit",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/SnapKit/SnapKit",
      "state" : {
        "revision" : "2842e6e84e82eb9a8dac0100ca90d9444b0307f4",
        "version" : "5.7.1"
      }
    },
    {
      "identity" : "sqlite.swift",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/stephencelis/SQLite.swift.git",
      "state" : {
        "revision" : "4d543d811ee644fa4cc4bfa0be996b4dd6ba0f54",
        "version" : "0.13.3"
      }
    },
    {
      "identity" : "swift",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/pubnub/swift",
      "state" : {
        "revision" : "03881adb814e3e9dd28f774029cccb343d02e5b4",
        "version" : "4.0.1"
      }
    },
    {
      "identity" : "swift-log",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/apple/swift-log.git",
      "state" : {
        "revision" : "6fe203dc33195667ce1759bf0182975e4653ba1c",
        "version" : "1.4.4"
      }
    },
    {
      "identity" : "swift-protobuf",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/apple/swift-protobuf.git",
      "state" : {
        "revision" : "b8230909dedc640294d7324d37f4c91ad3dcf177",
        "version" : "1.20.1"
      }
    },
    {
      "identity" : "swift-sdk",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/Iterable/swift-sdk",
      "state" : {
        "revision" : "19fb4631a2e3ebaf938bab32703d55963aa9ce22",
        "version" : "6.2.21"
      }
    },
    {
      "identity" : "swift-snapshot-testing",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/pointfreeco/swift-snapshot-testing",
      "state" : {
        "revision" : "c466812aa2e22898f27557e2e780d3aad7a27203",
        "version" : "1.8.2"
      }
    },
    {
      "identity" : "swiftqueue",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/lucas34/SwiftQueue",
      "state" : {
        "revision" : "c904ca87d4be58c38e9c07c83438fd957dba12fe",
        "version" : "6.0.0"
      }
    },
    {
      "identity" : "swiftrichstring",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/malcommac/SwiftRichString",
      "state" : {
        "revision" : "9bf4b5af6bb4386865636fc504d6c588c2b65040",
        "version" : "3.7.2"
      }
    },
    {
      "identity" : "xctest-dynamic-overlay",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/pointfreeco/xctest-dynamic-overlay",
      "state" : {
        "revision" : "30314f1ece684dd60679d598a9b89107557b67d9",
        "version" : "0.4.1"
      }
    }
  ],
  "version" : 2
}

I don't see specifically FirebaseRemoteConfigInterop SDK listed here ☝️ , only a dependency named interop-ios-for-google-sdk, but the project seemed to build well when we had Firebase 10.10.0.

  • Could it be a transitive dependency that was present in 10.10.0 and is no longer present in 10.24.0? that would explain it is now failing and it wasn't failing earlier 🤔 Should we try to include a separate dependency for FirebaseRemoteConfigInterop SDK?
  • The error seems to appear in FirebaseRemoteConfigInternal which is a file that belongs to the Firebase SDK. That's why we don't have much ideas about how to fix this. It seems we have no control on the code that is failing.

Thanks for your help guys 🙏 your answers are much appreciated

@voghDev
Copy link
Author

voghDev commented May 15, 2024

We're staying with 10.10.0 for the moment and cancelling the update. I'll reopen the issue in case we start working on this again 👍 Thanks everyone for your contributions

@voghDev voghDev closed this as completed May 15, 2024
@ncooke3
Copy link
Member

ncooke3 commented May 15, 2024

I don't see specifically FirebaseRemoteConfigInterop SDK listed here ☝️ , only a dependency named interop-ios-for-google-sdk, but the project seemed to build well when we had Firebase 10.10.0.

Yes, this is expected. The FirebaseRemoteConfigInterop is a target within the firebase-ios-sdk part of the Package.resolved so you'd have to find a more granular breakdown or just look for "FirebaseRemoteConfigInterop" in the build logs to see if the build system is finding it. Sorry, I'm not familiar with how Tuist works.

Could it be a transitive dependency that was present in 10.10.0 and is no longer present in 10.24.0?

It was introduced after 10.10 and is still present in 10.24.0

Should we try to include a separate dependency for FirebaseRemoteConfigInterop SDK?

I don't think so because FirebaseRemoteConfigInterop is inaccessible from the top level package offering. It's sort of an in internal SPM target that gets included when other SPM targets depend on it.

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

No branches or pull requests

5 participants