1

We are using Neatplug's flurry analytics plugin for our Unity game. Everything was going fine till we updated unity to the version 5.1.1P1. Doing so made iOS build (linking) to fail in xcode (using IL2CPP scripting backend, with universal architecture targeted). Here is the error :

ld: warning: ignoring file /.../Libraries/Plugins/iOS/libflurry-analytics-plugin-simulator.a, missing required architecture arm64 in file /.../Libraries/Plugins/iOS/libflurry-analytics-plugin-simulator.a (2 slices) ld: warning: ignoring file /.../Libraries/Plugins/iOS/libsmart-iap-plugin-simulator.a, missing required architecture arm64 in file /.../Libraries/Plugins/iOS/libsmart-iap-plugin-simulator.a (2 slices)

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

We sent this to Neatplug's support but we had no answer. Thank you for your help

2 Answers 2

0

I suspect that this plugin is missing the ARM64 slice in its native binary. You can confirm this by changing the Architecture option in the Unity Editor Player Settings to ARMv7. That will build using the IL2CPP scripting backend with for ARMv7 only. If the project links in Xcode, then the problem is the missing ARM64 binary for this library.

Sign up to request clarification or add additional context in comments.

Comments

0

I got the same problem when updating to Unity 5.3.4. Linking Security.framework seems to have fixed it for me.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.