Search code examples
iosxcodeframeworkscocoapodsapptentive

Undefined Symbols error when integrating Apptentive iOS SDK via Cocoapods


When integrating the Apptentive iOS SDK via Cocoapods, I get the following errors:

Undefined symbols for architecture i386:
  "_OBJC_CLASS_$_ATConnect", referenced from:
      objc-class-ref in AppDelegate.o
  "_OBJC_CLASS_$_ATAppRatingFlow", referenced from:
      objc-class-ref in AppDelegate.o
  "_OBJC_CLASS_$_ATSurveys", referenced from:
      objc-class-ref in AppDelegate.o
ld: symbol(s) not found for architecture i386
clang: 

error: linker command failed with exit code 1 (use -v to see invocation)

How should these errors be fixed?


Solution

  • We have found that adding the Apptentive cocoa pod to an existing Xcode project may potentially not include some of our required frameworks.

    Check your linker flags:

    Target > Build Settings > Other Linker Flags
    

    You should see -lApptentiveConnect listed as a linker flag:

    ... -ObjC -lApptentiveConnect ...
    

    You should also see our required Frameworks listed:

    • Accelerate
    • CoreData
    • CoreText
    • CoreGraphics
    • CoreTelephony
    • Foundation
    • QuartzCore
    • StoreKit
    • SystemConfiguration
    • UIKit

      -ObjC -lApptentiveConnect -framework Accelerate -framework CoreData -framework CoreGraphics -framework CoreText -framework Foundation -framework QuartzCore -framework SystemConfiguration -framework UIKit -framework CoreTelephony -framework StoreKit