Evan Stoddard
Evan Stoddard

Reputation: 708

Link Errors with Parse.framework iOS

I tried importing the parse framework in my project. I made sure it is liked with my project and I couldn't find anything about whether it is 'arc sensitive' or not. My project is arc based.

This is the error I'm getting:

Undefined symbols for architecture i386:
  "_SCNetworkReachabilityCreateWithName", referenced from:
      -[PFCommandCache init] in Parse(PFCommandCache.o)
      +[PFInternalUtils(Reachability) isParseReachable] in Parse(PFInternalUtils.o)
  "_SCNetworkReachabilityGetFlags", referenced from:
      ___22-[PFCommandCache init]_block_invoke in Parse(PFCommandCache.o)
      +[PFInternalUtils(Reachability) isParseReachable] in Parse(PFInternalUtils.o)
  "_SCNetworkReachabilityScheduleWithRunLoop", referenced from:
      -[PFCommandCache init] in Parse(PFCommandCache.o)
  "_SCNetworkReachabilitySetCallback", referenced from:
      -[PFCommandCache init] in Parse(PFCommandCache.o)
  "_SCNetworkReachabilityUnscheduleFromRunLoop", referenced from:
      -[PFCommandCache dealloc] in Parse(PFCommandCache.o)
  "_SecItemAdd", referenced from:
      +[PFInternalUtils saveToKeychain:data:] in Parse(PFInternalUtils.o)
  "_SecItemCopyMatching", referenced from:
      +[PFInternalUtils loadFromKeychain:] in Parse(PFInternalUtils.o)
  "_SecItemDelete", referenced from:
      +[PFInternalUtils saveToKeychain:data:] in Parse(PFInternalUtils.o)
      +[PFInternalUtils deleteFromKeychain:] in Parse(PFInternalUtils.o)
  "_UTTypeCopyPreferredTagWithClass", referenced from:
      -[PFFile getMimeType] in Parse(PFFile.o)
  "_UTTypeCreatePreferredIdentifierForTag", referenced from:
      -[PFFile getMimeType] in Parse(PFFile.o)
  "_kCFStreamPropertyFTPAttemptPersistentConnection", referenced from:
      -[PFHTTPCommand scheduleInCurrentThread] in Parse(PFHTTPCommand.o)
  "_kCFStreamPropertyHTTPAttemptPersistentConnection", referenced from:
      -[PFHTTPCommand scheduleInCurrentThread] in Parse(PFHTTPCommand.o)
  "_kSecAttrAccessible", referenced from:
      +[PFInternalUtils getKeychainQuery:] in Parse(PFInternalUtils.o)
  "_kSecAttrAccessibleAfterFirstUnlock", referenced from:
      +[PFInternalUtils getKeychainQuery:] in Parse(PFInternalUtils.o)
  "_kSecAttrAccount", referenced from:
      +[PFInternalUtils getKeychainQuery:] in Parse(PFInternalUtils.o)
  "_kSecAttrService", referenced from:
      +[PFInternalUtils getKeychainQuery:] in Parse(PFInternalUtils.o)
  "_kSecClass", referenced from:
      +[PFInternalUtils getKeychainQuery:] in Parse(PFInternalUtils.o)
  "_kSecClassGenericPassword", referenced from:
      +[PFInternalUtils getKeychainQuery:] in Parse(PFInternalUtils.o)
  "_kSecMatchLimit", referenced from:
      +[PFInternalUtils loadFromKeychain:] in Parse(PFInternalUtils.o)
  "_kSecMatchLimitOne", referenced from:
      +[PFInternalUtils loadFromKeychain:] in Parse(PFInternalUtils.o)
  "_kSecReturnData", referenced from:
      +[PFInternalUtils loadFromKeychain:] in Parse(PFInternalUtils.o)
  "_kSecValueData", referenced from:
      +[PFInternalUtils saveToKeychain:data:] in Parse(PFInternalUtils.o)
  "_kUTTagClassFilenameExtension", referenced from:
      -[PFFile getMimeType] in Parse(PFFile.o)
  "_kUTTagClassMIMEType", referenced from:
      -[PFFile getMimeType] in Parse(PFFile.o)
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Upvotes: 13

Views: 14461

Answers (3)

Joe
Joe

Reputation: 57179

Make sure you link against the SystemConfiguration and the Security framework in your project. See this question for more details. As Hector pointed out in the comments, all of the required frameworks for Parse can be found in the iOS Quick Start Guide.

  • AudioToolbox.framework
  • CFNetwork.framework
  • CoreGraphics.framework
  • CoreLocation.framework
  • libz.1.1.3.dylib
  • MobileCoreServices.framework
  • QuartzCore.framework
  • Security.framework
  • StoreKit.framework
  • SystemConfiguration.framework

Upvotes: 56

bleft
bleft

Reputation: 37

I had to add "$(inherited)" to the Framework Search Paths in Build Settings to get it work.

Upvotes: -2

mohammad alabid
mohammad alabid

Reputation: 444

Add MobileCoreServices.framework from your project in addition to these frameworks

-Accounts.framework

-AudioToolbox.framework

-CFNetwork.framework

-CoreGraphics.framework

-CoreLocation.framework

-libz.dylib

-MobileCoreServices.framework

-QuartzCore.framework

-Security.framework

-Social.framework

-StoreKit.framework

-SystemConfiguration.framework

Upvotes: 5

Related Questions