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

[Error] Type 'NSData' has no member 'gul_data' #12949

Closed
Shyam-halodoc opened this issue May 11, 2024 · 7 comments
Closed

[Error] Type 'NSData' has no member 'gul_data' #12949

Shyam-halodoc opened this issue May 11, 2024 · 7 comments

Comments

@Shyam-halodoc
Copy link

Description

Encountering a build-time error in FirebaseCore. The error message states: Type 'NSData' has no member 'gul_data'

This issue only occurs when GoogleUtilities is at v7.13.3. It worked fine with previous versions..

/xxx/project-name/Tuist/Dependencies/SwiftPackageManager/.build/checkouts/firebase-ios-sdk/FirebaseCore/Internal/Sources/HeartbeatLogging/HeartbeatsPayload.swift:176:16: error: type 'NSData' has no member 'gul_data'
    try NSData.gul_data(byGzippingData: self)
        ~~~~~~ ^~~~~~~~
/xxx/project-name/Tuist/Dependencies/SwiftPackageManager/.build/checkouts/firebase-ios-sdk/FirebaseCore/Internal/Sources/HeartbeatLogging/HeartbeatsPayload.swift:183:16: error: type 'NSData' has no member 'gul_data'
    try NSData.gul_data(byInflatingGzippedData: self)
Screenshot 2024-05-11 at 11 03 06 AM

Reproducing the issue

No response

Firebase SDK Version

10.19.1

Xcode Version

15.1

Installation Method

Swift Package Manager

Firebase Product(s)

AB Testing, Analytics, Crashlytics, 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" : "df308b8b46607675f2b9ec8e569109008f9155ce",
        "version" : "1.2022062300.1"
      }
    },
    {
      "identity" : "alamofire",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/Alamofire/Alamofire.git",
      "state" : {
        "revision" : "3dc6a42c7727c49bf26508e29b0a0b35f9c7e1ad",
        "version" : "5.8.1"
      }
    },
    {
      "identity" : "alamofireimage",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/Alamofire/AlamofireImage.git",
      "state" : {
        "revision" : "1eaf3b6c6882bed10f6e7b119665599dd2329aa1",
        "version" : "4.3.0"
      }
    },
    {
      "identity" : "amplitude-ios",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/amplitude/Amplitude-iOS.git",
      "state" : {
        "revision" : "d4a71f3e06b5108696ca7b33567d0fc539597d82",
        "version" : "8.18.3"
      }
    },
    {
      "identity" : "analytics-connector-ios",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/amplitude/analytics-connector-ios.git",
      "state" : {
        "revision" : "e2ca17ac735bcbc48b13062484541702ef45153d",
        "version" : "1.0.3"
      }
    },
    {
      "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.git",
      "state" : {
        "revision" : "e735a8f7e287c3252353a0c26664e07c084f72bf",
        "version" : "6.13.2"
      }
    },
    {
      "identity" : "cache",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/hyperoslo/Cache.git",
      "state" : {
        "revision" : "f44a8f6b5ec27730198725ccc542fef0d1cc6b3d",
        "version" : "7.1.0"
      }
    },
    {
      "identity" : "cocoamqtt",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/emqx/CocoaMQTT.git",
      "state" : {
        "revision" : "990303d3549d4284fadd6c83ff8480e6ab0b4d42",
        "version" : "2.1.6"
      }
    },
    {
      "identity" : "collectionconcurrencykit",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/JohnSundell/CollectionConcurrencyKit.git",
      "state" : {
        "revision" : "b4f23e24b5a1bff301efc5e70871083ca029ff95",
        "version" : "0.2.0"
      }
    },
    {
      "identity" : "consistencymanager",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/plivesey/ConsistencyManager",
      "state" : {
        "branch" : "master",
        "revision" : "911c519e5633826323ebad0e17125ab2ada4388a"
      }
    },
    {
      "identity" : "cryptoswift",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/krzyzanowskim/CryptoSwift.git",
      "state" : {
        "revision" : "32f641cf24fc7abc1c591a2025e9f2f572648b0f",
        "version" : "1.7.2"
      }
    },
    {
      "identity" : "cucumberish",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/Ahmed-Ali/Cucumberish.git",
      "state" : {
        "revision" : "e7b371812f6906a8cdaecdf5fb32327f9bb446ac"
      }
    },
    {
      "identity" : "cwlcatchexception",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/mattgallagher/CwlCatchException.git",
      "state" : {
        "revision" : "3ef6999c73b6938cc0da422f2c912d0158abb0a0",
        "version" : "2.2.0"
      }
    },
    {
      "identity" : "cwlpreconditiontesting",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/mattgallagher/CwlPreconditionTesting.git",
      "state" : {
        "revision" : "2ef56b2caf25f55fa7eef8784c30d5a767550f54",
        "version" : "2.2.1"
      }
    },
    {
      "identity" : "deepdiff",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/onmyway133/DeepDiff.git",
      "state" : {
        "revision" : "2639b3a11054d666a4c5ec1b7dd2808e437f3289",
        "version" : "2.3.3"
      }
    },
    {
      "identity" : "firebase-ios-sdk",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/firebase/firebase-ios-sdk.git",
      "state" : {
        "revision" : "c60c958e707c50a9cf8bcb7cfd7d51c566d726c5",
        "version" : "10.19.1"
      }
    },
    {
      "identity" : "flex",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/FLEXTool/FLEX.git",
      "state" : {
        "revision" : "e0acf59d06d498041f65bbea1e5914b6e4b39733",
        "version" : "5.22.10"
      }
    },
    {
      "identity" : "googleappmeasurement",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/google/GoogleAppMeasurement.git",
      "state" : {
        "revision" : "6b332152355c372ace9966d8ee76ed191f97025e",
        "version" : "10.17.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" : "57a1d307f42df690fdef2637f3e5b776da02aad6",
        "version" : "7.13.3"
      }
    },
    {
      "identity" : "grpc-binary",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/google/grpc-binary.git",
      "state" : {
        "revision" : "ea4cb5cc0c39c732b85386263116d2e2fdbbdc61",
        "version" : "1.49.2"
      }
    },
    {
      "identity" : "gtm-session-fetcher",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/google/gtm-session-fetcher.git",
      "state" : {
        "revision" : "0382ca27f22fb3494cf657d8dc356dc282cd1193",
        "version" : "3.4.1"
      }
    },
    {
      "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" : "iqkeyboardmanager",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/hackiftekhar/IQKeyboardManager.git",
      "state" : {
        "revision" : "c00b1ae9fa1ad8af4465bb6ca901f6943fc98eba",
        "version" : "6.5.16"
      }
    },
    {
      "identity" : "leveldb",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/firebase/leveldb.git",
      "state" : {
        "revision" : "a0bc79961d7be727d258d33d5a6b2f1023270ba1",
        "version" : "1.22.5"
      }
    },
    {
      "identity" : "marqueelabel",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/cbpowell/MarqueeLabel",
      "state" : {
        "revision" : "877e810534cda9afabb8143ae319b7c3341b121b",
        "version" : "4.5.0"
      }
    },
    {
      "identity" : "material-showcase-ios",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/aromajoin/material-showcase-ios.git",
      "state" : {
        "revision" : "0a4be88526187c46dba58c1fd1c1cdb8ad1225c5",
        "version" : "0.8.0"
      }
    },
    {
      "identity" : "mqttcocoaasyncsocket",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/leeway1208/MqttCocoaAsyncSocket.git",
      "state" : {
        "revision" : "ce3e18607fd01079495f86ff6195d8a3ca469f73",
        "version" : "1.0.8"
      }
    },
    {
      "identity" : "nanopb",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/firebase/nanopb.git",
      "state" : {
        "revision" : "819d0a2173aff699fb8c364b6fb906f7cdb1a692",
        "version" : "2.30909.0"
      }
    },
    {
      "identity" : "nimble",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/Quick/Nimble.git",
      "state" : {
        "revision" : "efe11bbca024b57115260709b5c05e01131470d0",
        "version" : "13.2.1"
      }
    },
    {
      "identity" : "notificationbanner",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/Daltron/NotificationBanner.git",
      "state" : {
        "revision" : "1406ac60bcab58074fc969e9b4cb804679832c8e",
        "version" : "3.2.1"
      }
    },
    {
      "identity" : "percy-xcui-swift",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/percy/percy-xcui-swift.git",
      "state" : {
        "revision" : "a2e9a86dfc3f5b69ef53cbda28a0ea71098c9f77",
        "version" : "1.0.0"
      }
    },
    {
      "identity" : "promisekit",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/mxcl/PromiseKit.git",
      "state" : {
        "revision" : "cb70b070cde06837cd10a1febdf6105c1a3bb348",
        "version" : "8.1.1"
      }
    },
    {
      "identity" : "promises",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/google/promises.git",
      "state" : {
        "revision" : "e70e889c0196c76d22759eb50d6a0270ca9f1d9e",
        "version" : "2.3.1"
      }
    },
    {
      "identity" : "pull-to-refresh",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/eggswift/pull-to-refresh.git",
      "state" : {
        "revision" : "a858aaeb44abc6428af916e8496429d244fac053",
        "version" : "2.9.3"
      }
    },
    {
      "identity" : "qiscuscore-ios",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/qiscus/QiscusCore-iOS.git",
      "state" : {
        "revision" : "436eb1ce73b5d15819b9eccba01d575b0654789f",
        "version" : "1.10.6"
      }
    },
    {
      "identity" : "qiscusrealtime-ios",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/qiscus/QiscusRealtime-iOS.git",
      "state" : {
        "revision" : "81ea3fa09599f787daafb6930682091fafdcf674",
        "version" : "1.7.1"
      }
    },
    {
      "identity" : "reachability.swift",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/ashleymills/Reachability.swift.git",
      "state" : {
        "revision" : "7b7018a69c84ea94ac2a38dff626e16ea81d1db9",
        "version" : "5.2.1"
      }
    },
    {
      "identity" : "realm-core",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/realm/realm-core",
      "state" : {
        "revision" : "7227d6a447821c28895daa099b6c7cd4c99d461b",
        "version" : "13.25.1"
      }
    },
    {
      "identity" : "realm-swift",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/realm/realm-swift.git",
      "state" : {
        "revision" : "569c656a8494ad03d790fd1075338c1da92d495a",
        "version" : "10.45.2"
      }
    },
    {
      "identity" : "reswift",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/ReSwift/ReSwift.git",
      "state" : {
        "revision" : "cb5c3c02f652420ef413dea41e13ac5a76b6c0fd",
        "version" : "6.1.1"
      }
    },
    {
      "identity" : "rocketdata",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/plivesey/RocketData.git",
      "state" : {
        "revision" : "91f729200be2afecb752ac527421c24ed16c89b2"
      }
    },
    {
      "identity" : "sentry-cocoa",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/getsentry/sentry-cocoa.git",
      "state" : {
        "revision" : "0da9c56283b8aada5ef05b16b6cbd6c2790872c4",
        "version" : "8.25.2"
      }
    },
    {
      "identity" : "skeletonui",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/CSolanaM/SkeletonUI.git",
      "state" : {
        "revision" : "d5c8a4f62be6a631bd4fe1922505eb34e82e5b4e",
        "version" : "2.0.1"
      }
    },
    {
      "identity" : "skeletonview",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/Juanpe/SkeletonView.git",
      "state" : {
        "revision" : "cb4d48d603b650808677f2ddb381b05261b94a16",
        "version" : "1.30.3"
      }
    },
    {
      "identity" : "snapkit",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/SnapKit/SnapKit",
      "state" : {
        "revision" : "f222cbdf325885926566172f6f5f06af95473158",
        "version" : "5.6.0"
      }
    },
    {
      "identity" : "sourcekitten",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/jpsim/SourceKitten.git",
      "state" : {
        "revision" : "b6dc09ee51dfb0c66e042d2328c017483a1a5d56",
        "version" : "0.34.1"
      }
    },
    {
      "identity" : "starscream",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/daltoniam/Starscream.git",
      "state" : {
        "revision" : "a063fda2b8145a231953c20e7a646be254365396",
        "version" : "3.1.2"
      }
    },
    {
      "identity" : "swift-argument-parser",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/apple/swift-argument-parser.git",
      "state" : {
        "revision" : "8f4d2753f0e4778c76d5f05ad16c74f707390531",
        "version" : "1.2.3"
      }
    },
    {
      "identity" : "swift-protobuf",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/apple/swift-protobuf.git",
      "state" : {
        "revision" : "9f0c76544701845ad98716f3f6a774a892152bcb",
        "version" : "1.26.0"
      }
    },
    {
      "identity" : "swift-snapshot-testing",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/pointfreeco/swift-snapshot-testing",
      "state" : {
        "revision" : "625ccca8570773dd84a34ee51a81aa2bc5a4f97a",
        "version" : "1.16.0"
      }
    },
    {
      "identity" : "swift-syntax",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/apple/swift-syntax.git",
      "state" : {
        "revision" : "74203046135342e4a4a627476dd6caf8b28fe11b",
        "version" : "509.0.0"
      }
    },
    {
      "identity" : "swiftlint",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/realm/SwiftLint.git",
      "state" : {
        "revision" : "6d2e58271ebc14c37bf76d7c9f4082cc15bad718",
        "version" : "0.53.0"
      }
    },
    {
      "identity" : "swiftybeaver",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/SwiftyBeaver/SwiftyBeaver.git",
      "state" : {
        "revision" : "1080914828ef1c9ca9cd2bad50667b3d847dabff",
        "version" : "2.0.0"
      }
    },
    {
      "identity" : "swiftyjson",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/SwiftyJSON/SwiftyJSON.git",
      "state" : {
        "revision" : "af76cf3ef710b6ca5f8c05f3a31307d44a3c5828",
        "version" : "5.0.2"
      }
    },
    {
      "identity" : "swiftytexttable",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/scottrhoyt/SwiftyTextTable.git",
      "state" : {
        "revision" : "c6df6cf533d120716bff38f8ff9885e1ce2a4ac3",
        "version" : "0.9.0"
      }
    },
    {
      "identity" : "swiftytimer",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/janlionly/SwiftyTimer.git",
      "state" : {
        "revision" : "cd1c75bc1b72b7a7224ad8e8197b97d367aadbcf",
        "version" : "2.1.1"
      }
    },
    {
      "identity" : "swinject",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/Swinject/Swinject.git",
      "state" : {
        "revision" : "463cb2d659c8ae34899d18057ea5b1bb86fc3178",
        "version" : "2.8.4"
      }
    },
    {
      "identity" : "swxmlhash",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/drmohundro/SWXMLHash.git",
      "state" : {
        "revision" : "a853604c9e9a83ad9954c7e3d2a565273982471f",
        "version" : "7.0.2"
      }
    },
    {
      "identity" : "veritrans-ios-sdk",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/veritrans/Veritrans-ios-sdk.git",
      "state" : {
        "revision" : "a5239cf20a2d76284d56479e58c58846bd5ac103",
        "version" : "1.24.1"
      }
    },
    {
      "identity" : "xendit-sdk-ios-src",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/xendit/xendit-sdk-ios-src.git",
      "state" : {
        "revision" : "89bef0e096e2ee7b041be20f0ea551255aaf5ac4",
        "version" : "3.8.2"
      }
    },
    {
      "identity" : "yams",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/jpsim/Yams.git",
      "state" : {
        "revision" : "9234124cff5e22e178988c18d8b95a8ae8007f76",
        "version" : "5.1.2"
      }
    },
    {
      "identity" : "ymchatbot-ios",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/yellowmessenger/YMChatbot-iOS.git",
      "state" : {
        "revision" : "d7e41167fee13f79497de83f270dedd7aa07b397",
        "version" : "1.17.0"
      }
    },
    {
      "identity" : "zip",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/marmelroy/Zip.git",
      "state" : {
        "revision" : "67fa55813b9e7b3b9acee9c0ae501def28746d76",
        "version" : "2.1.2"
      }
    }
  ],
  "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.

@paulb777
Copy link
Member

Sorry about the trouble. Nothing about the gul_data extension changed in 7.13.3. I recommend cleaning all build artifacts and retrying. Otherwise we'll likely need a reproducible example without Tuist to help.

@jslew
Copy link

jslew commented May 13, 2024

Same happening to me. Also tuist.

@onavidad
Copy link

same here.

@ajkolean
Copy link

It seems that GoogleUtilities 7.13.3 introduced resource processing for the PrivacyManifest. Tuist 4 appears to manage this update adequately. Alternatively, you might consider pinning the GoogleUtilities version to an earlier release. Currently, this SDK specifies a version range for GoogleUtilities from "7.12.1" ..< "8.0.0".

In your Dependency.swift, you could specify the dependency as follows to fix the version:

.remote(url: "https://github.com/google/GoogleUtilities.git", requirement: .exact("7.13.2"))

I am guessing it has something with it now having resources so it can't be linked as a static framework anymore. I’m still getting acquainted with Tuist and its intricacies, so there might be nuances I’m missing—particularly regarding the implications of linking resources in what used to be a static framework setup. Maybe someone else has more insight.

@jslew
Copy link

jslew commented May 14, 2024 via email

@paulb777
Copy link
Member

Going to close, since this looks like a Tuist issue or usability question. Feel free to continue the conversation here.

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

6 participants