Search code examples
iosobjective-cswiftparse-platformgoogle-maps-sdk-ios

Parse and GMaps iOS SDK incompatibility in Swift?


I'm building a Swift app w/ Parse integration, which works correctly. When I try to add Google Maps iOS SDK integration, however, I get the following build errors:

Undefined symbols for architecture x86_64:
"_FBTokenInformationExpirationDateKey", referenced from:
  -[PFFacebookTokenCachingStrategy cacheTokenInformation:] in  ParseFacebookUtils(PFFacebookTokenCachingStrategy.o)
  -[PFFacebookTokenCachingStrategy expirationDate] in ParseFacebookUtils(PFFacebookTokenCachingStrategy.o)
  -[PFFacebookTokenCachingStrategy setExpirationDate:] in ParseFacebookUtils(PFFacebookTokenCachingStrategy.o)
 "_FBTokenInformationTokenKey", referenced from:
  -[PFFacebookTokenCachingStrategy accessToken] in ParseFacebookUtils(PFFacebookTokenCachingStrategy.o)
  -[PFFacebookTokenCachingStrategy setAccessToken:] in ParseFacebookUtils(PFFacebookTokenCachingStrategy.o)
"_FBTokenInformationUserFBIDKey", referenced from:
  -[PFFacebookTokenCachingStrategy facebookId] in ParseFacebookUtils(PFFacebookTokenCachingStrategy.o)
  -[PFFacebookTokenCachingStrategy setFacebookId:] in ParseFacebookUtils(PFFacebookTokenCachingStrategy.o)
"_OBJC_CLASS_$_FBAppCall", referenced from:
  objc-class-ref in ParseFacebookUtils(PFFacebookAuthenticationProvider.o)
"_OBJC_CLASS_$_FBRequest", referenced from:
  objc-class-ref in   ParseFacebookUtils(PFFacebookAuthenticationProvider.o)
"_OBJC_CLASS_$_FBSDKAccessToken", referenced from:
  objc-class-ref in ParseFacebookUtilsV4(PFFacebookUtils.o)
  objc-class-ref in ParseFacebookUtilsV4(PFFacebookAuthenticationProvider.o)
   "_OBJC_CLASS_$_FBSDKApplicationDelegate", referenced from:
  objc-class-ref in ParseFacebookUtilsV4(PFFacebookUtils.o)
"_OBJC_CLASS_$_FBSDKLoginManager", referenced from:
  objc-class-ref in  ParseFacebookUtilsV4(PFFacebookAuthenticationProvider.o)
   "_OBJC_CLASS_$_FBSDKSettings", referenced from:
  objc-class-ref in ParseFacebookUtilsV4(PFFacebookAuthenticationProvider.o)
  "_OBJC_CLASS_$_FBSession", referenced from:
  objc-class-ref in ParseFacebookUtils(PFFacebookAuthenticationProvider.o)
 "_OBJC_CLASS_$_FBSessionTokenCachingStrategy", referenced from:
  _OBJC_CLASS_$_PFFacebookTokenCachingStrategy in          ParseFacebookUtils(PFFacebookTokenCachingStrategy.o)
"_OBJC_METACLASS_$_FBSessionTokenCachingStrategy", referenced from:
  _OBJC_METACLASS_$_PFFacebookTokenCachingStrategy in 

....
    google_breakpadPFC_::MinidumpGenerator::UniqueNameInDirectory(std::string const&, std::string*) in ParseCrashReporting(minidump_generator.o)
 ld: symbol(s) not found for architecture x86_64
 clang: error: linker command failed with exit code 1 (use -v to see invocation)

In my project target, under Linked Frameworks and Libraries, I have added Social.framework and Accounts.framework, as well as Parse, Bolts and ParseFacebookUtilsV4 added. I deleted ParseFacebookUtils. (I followed directions per Parse docs and answers such as this.)

For Google Maps iOS SDK, I added -ObjC to Other Linker Flags, since this is required for Swift compatibility.

The issue here seems to be incompatibility between Parse and GMaps iOS SDK, since the -ObjC linker flag causes Parse build errors, but without it GMaps will not work. I am using the latest versions of Parse SDK and Google Maps iOS SDK.

Anyone successfully integrated both Parse AND Google Maps iOS SDK in a Swift app?


Solution

  • I had this problem too.. I added some further Frameworks, make shure you have all these:

    enter image description here

    With all these frameworks, and the -ObjC Linker Flag parse and gmaps should work together.