firebase-ios-sdk icon indicating copy to clipboard operation
firebase-ios-sdk copied to clipboard

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

Open voghDev opened this issue 3 months ago • 6 comments

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!

voghDev avatar Apr 30 '24 08:04 voghDev

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

google-oss-bot avatar Apr 30 '24 08:04 google-oss-bot

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

rizafran avatar Apr 30 '24 11:04 rizafran

More context for @rizafran's suggestion at #12427

paulb777 avatar Apr 30 '24 14:04 paulb777

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 avatar May 03 '24 15:05 voghDev

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.

voghDev avatar May 10 '24 12:05 voghDev

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

ncooke3 avatar May 10 '24 14:05 ncooke3

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 avatar May 13 '24 11:05 voghDev

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 avatar May 15 '24 11:05 voghDev

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.

ncooke3 avatar May 15 '24 14:05 ncooke3