gpt4 book ai didi

ios - Unity iOS 构建错误 : duplicate symbols when using Firebase Unity SDK + Google VR SDK for Unity

转载 作者:行者123 更新时间:2023-11-29 11:48:01 27 4
gpt4 key购买 nike

我正在开发一个 Unity 项目,我正在使用 Google VR SDK for UnityFirebaseMessaging.unitypackage 适用于 Unity 的 Firebase SDK

当我尝试为 iOS 构建时,这种 Google SDK 的组合会引发重复符号错误。


用于重现错误的最小、完整且可验证的示例:

要求:

  • iOS 设备(7.0 或更高版本)
  • 装有 macOS 的计算机
  • 最新Unity版本 (5.5.2f1)
  • 最新Xcode版本 (8.2.1)

步骤:

  1. > Download适用于 Unity 的 Google VR SDK (v1.20)。
  2. > Download适用于 Unity 的 Firebase SDK (v3.0.0)。
  3. 解压适用于 Unity 的 Firebase SDK。
  4. 打开 Unity 并创建一个新项目。
  5. 转到File > Build Settings...,选择 iOS 并点击 Switch Platform。
  6. 打开Player Settings... 并设置一个Bundle Identifier
  7. 转到 Assets > Import Package > Custom package...,选择 GoogleVRForUnity.unitypackage 并导入除Demos 文件夹之外的所有内容。
  8. 将出现一个弹出窗口。选择我做了备份,继续!
  9. 将出现另一个弹出窗口。选择导入包并全部导入
  10. 转到 Assets > Import Package > Custom package...,选择解压缩的 FirebaseMessaging.unitypackage 并导入所有内容。
  11. 文件 > 保存项目
  12. 将 iOS 设备连接到计算机。
  13. 文件 > 构建并运行
  14. Xcode 构建将失败,因为该项目需要与团队签约。在您的 Xcode 项目中将其设置为有效的。
  15. 按 Xcode 播放按钮在连接的 iOS 设备上构建和运行项目。

在 Xcode 上构建的项目将以以下错误结束:

25 duplicate symbols for architecture arm64

体系结构根据连接的 iOS 设备而变化,但错误是相同的。

Error screenshot


  • 有什么我们可以做的吗?
  • 这是必须由 Google 解决的错误吗?

最佳答案

这是 GVR SDK 中的错误。问题是 GVR 的发布包括传递依赖项,其中一些谷歌(或其他地方)的其他 SDK 也依赖于它,例如 firebase。由于 Unity 对此没有任何包管理,我们推出了自己的包管理:

https://github.com/googlesamples/unity-jar-resolver

但是 GVR sdk 还没有使用它来包含它的传递依赖,所以我们得到了冲突。

我正在修复上面的 IOSResolver,在 GVR 中检测到它并删除不应包含的对象。

与此同时,您可以使用以下变通方法自行去除冗余对象:

  1. 找到:Assets/Plugins/iOS/libgvrunity.a 中的 libgvrunity.a
  2. 在文件夹中创建一个 shell 脚本,内容如下:

    set -ex
    lipo libgvrunity.a -thin armv7 -output libgvrunity-armv7.a
    lipo libgvrunity.a -thin arm64 -output libgvrunity-arm64.a

    ar -t libgvrunity-armv7.a | grep 'GTMLogger\|GTMSession' | xargs ar -dv libgvrunity-armv7.a
    ar -t libgvrunity-arm64.a | grep 'GTMLogger\|GTMSession' | xargs ar -dv libgvrunity-arm64.a

    lipo libgvrunity.a -replace armv7 libgvrunity-armv7.a -replace arm64 libgvrunity-arm64.a -output libgvrunity-fat.a

    rm libgvrunity-armv7.a libgvrunity-arm64.a

    mkdir -p backup
    mv libgvrunity.a backup
    mv libgvrunity-fat.a libgvrunity.a
  3. 再次从 Unity 构建并运行。

关于ios - Unity iOS 构建错误 : duplicate symbols when using Firebase Unity SDK + Google VR SDK for Unity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42516646/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com