1

我们在 Unity 游戏中使用 Neatplug 的 Flurry 分析插件。在我们将 unity 更新到 5.1.1P1 版本之前,一切都很顺利。这样做会使 iOS 构建(链接)在 xcode 中失败(使用 IL2CPP 脚本后端,以通用架构为目标)。这是错误:

ld:警告:忽略文件/.../Libraries/Plugins/iOS/libflurry-analytics-plugin-simulator.a,文件/.../Libraries/Plugins/iOS/libflurry-analytics-plugin-中缺少所需的架构arm64 Simulator.a(2 片)ld:警告:忽略文件 /.../Libraries/Plugins/iOS/libsmart-iap-plugin-simulator.a,在文件 /.../Libraries/Plugins/iOS 中缺少所需的架构 arm64 /libsmart-iap-plugin-simulator.a(2 片)

架构 arm64 的未定义符号:“_SecItemUpdate”,引用自:-[FlurryKeychainWrapper updateValueData:forKey:] in libFlurry.a(libFlurry.a-arm64-master.o) “_kSecValueData”,引用自:-[FlurryKeychainWrapper setData:forKey: ] 在 libFlurry.a(libFlurry.a-arm64-master.o) -[FlurryKeychainWrapper updateValueData:forKey:] 在 libFlurry.a(libFlurry.a-arm64-master.o)
“_kSecAttrAccessibleWhenUnlocked”,引用自:-[FlurryKeychainWrapper setData:forKey:] in libFlurry.a(libFlurry.a-arm64-master.o) “_kSecAttrAccessible”,引用自:-[FlurryKeychainWrapper setData:forKey:] in libFlurry.a( libFlurry.a-arm64-master.o) "_SecItemDelete",引用自:-[FlurryKeychainWrapper removeObjectForKey:] in libFlurry.a(libFlurry.a-arm64-master.o) "_SecItemAdd",引用自:-[FlurryKeychainWrapper setData: forKey:] in libFlurry.a(libFlurry.a-arm64-master.o) "_kSecMatchLimitOne",引用自:-[FlurryKeychainWrapper dataForKey:] in libFlurry.a(libFlurry.a-arm64-master.o)
“_OBJC_CLASS_$_SKProductsRequest”,引用自:libsmart-iap-plugin.a(SmartIAP.o) 中的 objc-class-ref -master.o) "_kSecClass",引用自:-[FlurryKeychainWrapper setupSearchForKey:] in libFlurry.a(libFlurry.a-arm64-master.o) "_kSecAttrService",引用自:-[FlurryKeychainWrapper setupSearchForKey:] in libFlurry.a (libFlurry.a-arm64-master.o)
“_OBJC_CLASS_$_SKMutablePayment”,引用自:libsmart-iap-plugin.a(SmartIAP.o) 中的 objc-class-ref “_kSecClassGenericPassword”,引用自:libFlurry.a(libFlurry.a-arm64) 中的 -[FlurryKeychainWrapper setupSearchForKey:] -master.o) "_kSecAttrAccount",引用自:-[FlurryKeychainWrapper setupSearchForKey:] in libFlurry.a(libFlurry.a-arm64-master.o) "_kSecAttrGeneric",引用自:-[FlurryKeychainWrapper setupSearchForKey:] in libFlurry.a (libFlurry.a-arm64-master.o) "_kSecMatchLimit",引用自:-[FlurryKeychainWrapper dataForKey:] in libFlurry.a(libFlurry.a-arm64-master.o) "_kSecReturnData",引用自:-[FlurryKeychainWrapper dataForKey :] 在 libFlurry.a(libFlurry.a-arm64-master.o)
“_OBJC_CLASS_$_SKPaymentQueue”,引用自:libsmart-iap-plugin.a(SmartIAP.o) 中的 objc-class-ref:未找到架构 arm64 clang 的符号:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

我们将此发送给 Neatplug 的支持,但没有得到答复。谢谢您的帮助

4

2 回答 2

0

我怀疑这个插件在其本机二进制文件中缺少 ARM64 切片。您可以通过将 Unity Editor Player Settings 中的 Architecture 选项更改为 ARMv7 来确认这一点。这将使用 IL2CPP 脚本后端构建,仅适用于 ARMv7。如果项目在 Xcode 中链接,则问题在于该库缺少 ARM64 二进制文件。

于 2015-06-26T12:10:12.473 回答
0

更新到 Unity 5.3.4 时我遇到了同样的问题。链接 Security.framework 似乎已经为我修复了它。

于 2016-04-14T16:12:54.093 回答