Вопрос

I'm trying to update to the latest version of Flurry, from 4.2.2 to 4.2.3. I've updated the files, but now I'm getting all sorts of linking errors.

    Undefined symbols for architecture i386:
  "_SecItemAdd", referenced from:
      -[FlurryKeychainWrapper setData:forKey:] in libSDLibrary.a(libFlurry.a-i386-master.o)
  "_SecItemCopyMatching", referenced from:
      -[FlurryKeychainWrapper dataForKey:] in libSDLibrary.a(libFlurry.a-i386-master.o)
  "_SecItemDelete", referenced from:
      -[FlurryKeychainWrapper removeObjectForKey:] in libSDLibrary.a(libFlurry.a-i386-master.o)
  "_SecItemUpdate", referenced from:
      -[FlurryKeychainWrapper updateValueData:forKey:] in libSDLibrary.a(libFlurry.a-i386-master.o)
  "_kSecAttrAccessible", referenced from:
      -[FlurryKeychainWrapper setData:forKey:] in libSDLibrary.a(libFlurry.a-i386-master.o)
  "_kSecAttrAccessibleWhenUnlocked", referenced from:
      -[FlurryKeychainWrapper setData:forKey:] in libSDLibrary.a(libFlurry.a-i386-master.o)
  "_kSecAttrAccount", referenced from:
      -[FlurryKeychainWrapper setupSearchForKey:] in libSDLibrary.a(libFlurry.a-i386-master.o)
  "_kSecAttrGeneric", referenced from:
      -[FlurryKeychainWrapper setupSearchForKey:] in libSDLibrary.a(libFlurry.a-i386-master.o)
  "_kSecAttrService", referenced from:
      -[FlurryKeychainWrapper setupSearchForKey:] in libSDLibrary.a(libFlurry.a-i386-master.o)
  "_kSecClass", referenced from:
      -[FlurryKeychainWrapper setupSearchForKey:] in libSDLibrary.a(libFlurry.a-i386-master.o)
  "_kSecClassGenericPassword", referenced from:
      -[FlurryKeychainWrapper setupSearchForKey:] in libSDLibrary.a(libFlurry.a-i386-master.o)
  "_kSecMatchLimit", referenced from:
      -[FlurryKeychainWrapper dataForKey:] in libSDLibrary.a(libFlurry.a-i386-master.o)
  "_kSecMatchLimitOne", referenced from:
      -[FlurryKeychainWrapper dataForKey:] in libSDLibrary.a(libFlurry.a-i386-master.o)
  "_kSecReturnData", referenced from:
      -[FlurryKeychainWrapper dataForKey:] in libSDLibrary.a(libFlurry.a-i386-master.o)
  "_kSecValueData", referenced from:
      -[FlurryKeychainWrapper setData:forKey:] in libSDLibrary.a(libFlurry.a-i386-master.o)
      -[FlurryKeychainWrapper updateValueData:forKey:] in libSDLibrary.a(libFlurry.a-i386-master.o)
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

It's rather frustrating to say the least. I've included the SystemConfiguration framework (as mentioned here). I'm running xCode 4.6.3. Any ideas on where else the problem could lie?

Это было полезно?

Решение

You need to add Security.framework because the symbols mentioned in the linker error are from that framework.


From Flurry update page

How do I update?

Download the latest version of Flurry’s SDK (version 4.2.3) here. Include Apple’s Security Framework in your build process. (see the FAQ entry below for details on how to do this)

Is the "Security" framework mandatory?

To ensure the integrity of your data, Flurry requires that you include this framework in your updated app.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top