GoogleAnalytics-iOS-SDK on CocoaPods 0.36 with Swift

后端 未结 4 1417
爱一瞬间的悲伤
爱一瞬间的悲伤 2020-12-19 04:55

Anyone knows How do I write Bridging Header for Swift with CocoaPods 0.36?

I tried these ways.

(1)

#import 

        
相关标签:
4条回答
  • 2020-12-19 05:28

    I managed to successfully include Google Analytics iOS SDK 3.10 via Cocoapods into my Swift project using frameworks following these steps.

    On the Podfile add (note the use_frameworks!):

    source 'https://github.com/CocoaPods/Specs.git'
    platform :ios, '8.0'
    use_frameworks!
    
    target "XXXX" do
        pod 'GoogleAnalytics-iOS-SDK', '~> 3.10'
    end
    
    target "XXXXTests" do
        pod 'GoogleAnalytics-iOS-SDK', '~> 3.10'
    end
    

    On the AppDelegate import section add:

    import GoogleAnalytics_iOS_SDK
    

    On the application didFinishLaunchingWithOptions method add:

        GAI.sharedInstance().trackUncaughtExceptions = true
        GAI.sharedInstance().dispatchInterval = 20
        GAI.sharedInstance().logger.logLevel = GAILogLevel.Verbose
        GAI.sharedInstance().trackerWithTrackingId("XXXX")
        GAI.sharedInstance().defaultTracker.allowIDFACollection = true
    

    At this point, your code won't compile. You need to add other dependencies manually to your targets, both the application and the unit tests (as indicated at https://developers.google.com/analytics/devguides/collection/ios/v3/#headers).

    • CoreData.framework
    • SystemConfiguration.framework
    • libz.dylib
    • libsqlite3.dylib
    • libGoogleAnalyticsServices.a

    Notice the libGoogleAnalyticsServices.a. For some reason, this is not included by Cocoapods when using frameworks. Without adding this file, the linker will fail with the following error:

    Undefined symbols for architecture x86_64: "_OBJC_CLASS_$_GAI", referenced from: __TMaCSo3GAI in AppDelegate.o
    

    In order to add it, I downloaded the SDK manually (from this page: https://developers.google.com/analytics/devguides/collection/ios/resources) and dragged the libGoogleAnalyticsServices.a to my project making sure it was added to both targets and the 'copy' checkbox was checked.

    enter image description here

    After adding the file and other mentioned dependencies the project builds properly.

    It seems as if Cocoapods was including nothing but the header files from the Google Analytics SDK. This solution is not perfect but avoids requiring to add a bridging header just for Google Analytics.

    0 讨论(0)
  • 2020-12-19 05:30

    When using a bridging header, you should be able to import the Google Analytics iOS SDK by using the following import statement:

    #import <GoogleAnalytics-iOS-SDK/GAI.h>
    

    If you're using pods as frameworks (by setting 'use_frameworks!' in your podfile), you don't need the bridging file. In the swift class you then simply import it with the following statement:

    import GoogleAnalytics_iOS_SDK
    

    If this is not working, I think something's wrong in your project settings. To fix that, I'll need more info.

    0 讨论(0)
  • 2020-12-19 05:31

    Having the same issue currently...

    I got the bridging header to work by using:

    #import <GoogleAnalytics_iOS_SDK/GAI.h>
    #import <GoogleAnalytics_iOS_SDK/GAITrackedViewController.h>
    #import <GoogleAnalytics_iOS_SDK/GAIDictionaryBuilder.h>
    #import <GoogleAnalytics_iOS_SDK/GAIFields.h>
    

    Unfortunately, while this passes the build, I cannot use it in my project. I will update if I find more...

    0 讨论(0)
  • 2020-12-19 05:32

    I had a similar problem on CocoaPods 0.39.0.

    $(inherited) in build setting 'OTHER_LDFLAGS' solved it.

    https://stackoverflow.com/a/32004207/3129306

    0 讨论(0)
提交回复
热议问题