【问题标题】:Error with firebase while building on Xcode for iOS在 Xcode for iOS 上构建时 firebase 出错
【发布时间】:2021-06-15 04:55:59
【问题描述】:

我在 xcode 中构建应用程序时遇到了一些麻烦,但在 Unity 中构建到 android 工作得很好。我已经搜索过所有其他解决方案都没有帮助我完成构建。我没有使用任何 pod,只是将目标切换到 iOS,签名并尝试构建。 xcode 给我的错误是这样的:

仅显示最近的错误

使用配置ReleaseForRunning构建Unity-iPhone项目的目标UnityFramework 警告:不推荐使用 OpenGLES。考虑改为迁移到 Metal。 (在项目“Unity-iPhone”的目标“UnityFramework”中)

Ld /Users/schrodingerlab/Library/Developer/Xcode/DerivedData/Unity-iPhone-cznkgmrdhbgorsbwisensbubkxok/Build/Products/ReleaseForRunning-iphoneos/UnityFramework.framework/UnityFramework 正常(在项目“Unity-iPhone”的目标“UnityFramework”中) cd /Users/schrodingerlab/Thermomix_40/buildenios6 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -target arm64-apple-ios12.0 -dynamiclib -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS。 platform/Developer/SDKs/iPhoneOS14.4.sdk -L/Users/schrodingerlab/Library/Developer/Xcode/DerivedData/Unity-iPhone-cznkgmrdhbgorsbwisensbubkxok/Build/Products/ReleaseForRunning-iphoneos -L/Users/schrodingerlab/Thermomix_40/buildenios6/库 -L/Users/schrodingerlab/Thermomix_40/buildenios6/Libraries/com.ptc.vuforia.engine/Vuforia/Plugins/iOS -L/Users/schrodingerlab/Thermomix_40/buildenios6/Libraries/Plugins/iOS/Firebase -F/Users/ schrodingerlab/Library/Developer/Xcode/DerivedData/Unity-iPhone-cznkgmrdhbgorsbwisensbubkxok/Build/Products/ReleaseForRunning-iphoneos -F/Users/schrodingerlab/Thermomix_40/buildenios6/Frameworks/com.unity.ads/Plugins/iOS -F/Users/ schrodingerlab/Thermomix_40/buildenios6/Frameworks/com.ptc.vuforia.engine/Vuforia/Plugins/iOS -filelist /Users/schrodingerlab/Li brary/Developer/Xcode/DerivedData/Unity-iPhone-cznkgmrdhbgorsbwisensbubkxok/Build/Intermediates.noindex/Unity-iPhone.build/ReleaseForRunning-iphoneos/UnityFramework.build/Objects-normal/arm64/UnityFramework.LinkFileList -install_name @rpath/UnityFramework。框架/UnityFramework -Xlinker -rpath -Xlinker @executable_path/Frameworks -Xlinker -map -Xlinker /Users/schrodingerlab/Library/Developer/Xcode/DerivedData/Unity-iPhone-cznkgmrdhbgorsbwisensbubkxok/Build/Intermediates.noindex/Unity-iPhone.build/ ReleaseForRunning-iphoneos/UnityFramework.build/UnityFramework-LinkMap-normal-arm64.txt -dead_strip -Xlinker -object_path_lto -Xlinker /Users/schrodingerlab/Library/Developer/Xcode/DerivedData/Unity-iPhone-cznkgmrdhbgorsbwisensbubkxok/Build/Intermediates.noindex/ Unity-iPhone.build/ReleaseForRunning-iphoneos/UnityFramework.build/Objects-normal/arm64/UnityFramework_lto.o -fembed-bitcode-marker -stdlib=libc++ -fobjc-arc -fobjc-link-runtime -lc++ -weak_framework CoreMotion -weak -l系统 -liPhone -lib -framework Security -framework MediaToolbox -framework CoreText -framework AudioToolbox -weak_framework AVFoundation -framework AVKit -framework CFNetwork -framework CoreGraphics -framework CoreMedia -weak_framework CoreMotion -framework CoreVideo -framework Foundation -framework OpenAL -framework OpenGLES -framework QuartzCore -framework SystemConfiguration -framework UIKit -liconv.2 -lil2cpp -framework UnityAds -lVuforiaWrapper -framework Vuforia -lFirebaseCppMessaging -lFirebaseCppAnalytics -lFirebaseCppApp -framework AdSupport -framework CoreTelephony -framework StoreKit -framework CoreLocation -weak_framework Metal -weak_framework GameController -weak_framework UserNotifications -Xlinker -no_adhoc_codesign -dependency_info -Xlinker /Users/schrodingerlab/Library/Developer/Xcode/DerivedData/Unity-iPhone-cznkgmrdhbgorsbwisensbubkxok/Build/Intermediates.noindex/Unity-iPhone.build/ReleaseForRunning-iphoneos/UnityFramework.build/Objects-normal/arm64/UnityFramework_dependen cy_info.dat -o /Users/schrodingerlab/Library/Developer/Xcode/DerivedData/Unity-iPhone-cznkgmrdhbgorsbwisensbubkxok/Build/Products/ReleaseForRunning-iphoneos/UnityFramework.framework/UnityFramework

架构 arm64 的未定义符号: “OBJC_CLASS$_FIRConfiguration”,引用自: libFirebaseCppApp.a 中的 objc 类引用(log_ios_dd26aec5b8537064a4c15d38b58b4640.o) “OBJC_CLASS$_FIRMessaging”,引用自: libFirebaseCppMessaging.a 中的 objc 类引用(messaging_231c52c311096cfce13e67fa91eb9ac5.o) “OBJC_CLASS$_FIRApp”,引用自: libFirebaseCppApp.a 中的 objc 类引用(app_ios_814e1620d4f88024cea4bade26623a67.o) “OBJC_CLASS$_FIROptions”,引用自: libFirebaseCppApp.a 中的 objc 类引用(app_ios_814e1620d4f88024cea4bade26623a67.o) “_MuskGetLocaleRegion”,引用自: _DeviceCountryProvider_Awake_mEE95CC492427159A08D423192B51472917D33011 在 Assembly-CSharp2.o _DeviceCountryProvider_MuskGetLocaleRegion_mDEF69019B1CC4B23AAB2F05C013AAD759104CA9C 在 Assembly-CSharp2.o (也许您的意思是:_DeviceCountryProvider_MuskGetLocaleRegion_mDEF69019B1CC4B23AAB2F05C013AAD759104CA9C) ld:未找到架构 arm64 的符号 clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

21 年 17 月 3 日 19:41 151.1 秒构建失败

我认为 arm64 库有错误,因为错误提示,我尝试手动包含它,但仍然得到了 MuskGetLocaleRegion。

感谢您的宝贵时间!

【问题讨论】:

  • 你为什么不用可可豆荚?您应该使用外部依赖管理器并确保您正在构建 xcworkspace 项目。
  • 我不知道这对项目来说是必要的,我只想要一个快速的测试构建。我会使用它们,看看是否是问题所在。谢谢!
  • 好的,我现在使用可可豆荚并在工作区打开它,但我有同样的问题有什么想法吗?

标签: ios xcode firebase unity3d build-error


【解决方案1】:

看起来您要么跳过了 Unity 中的 CocoaPods 步骤,要么禁用了 Firebase Unity SDK 的一些核心功能。您也可能在将 Firebase 与另一个库混合时遇到了问题。我会给你一些快速调试技巧,以及如果它是一个更大的问题,如何提交错误报告。

首先,由于这是一个新项目,请确保您的 Firebase Unity SDK 为 updated to the latest (currently 7.1.0)。

接下来,您需要确保 CocoaPods 已正确安装。这应该会自动发生,但您不妨检查一下。如果你输入pod,你应该会看到一些输出,而不是“command not found”。如果你没有它,你可以随时导航到“Assets>External Dependency Manager>iOS Resolver>Install Cocoapods”来这样做:

您也可以选择在this guide 之后直接安装 CocoaPods。最后,我们确实发现有时 CocoaPods 需要在某些操作系统升级中卸载/重新安装(尤其是迁移到 Catalina)。这可能不适用,但如果您遇到持续的问题,您可以尝试卸载。

Firebase 将适当的 Pod 文件与构建的 Unity 游戏相关联的机制称为 "External Dependency Manager for Unity" (EDM4U)。可能值得打开“iOS Resolver Settings”(在您找到“Install Cocoapods”的同一菜单中)并重置为默认值。为方便起见,我附上了我的设置页面的屏幕截图:

由于您之前遇到过问题,现在是删除之前生成的项目的好时机。然后您可以从“构建设置”窗口中单击“构建并运行”。 Unity应该生成你的xcodeproj,生成一个Podfile,使用Podfile生成一个xcworkspace,然后为你打开xcworkspace。

从这里构建和运行应该可以工作。

有时人们仍然会遇到问题。这里有一些移动部分:Unity 版本、Cocoapods 版本、Firebase 版本和依赖管理器版本,更不用说任何其他库,无论是使用 EDM4U 还是进行自己的自定义工作来集成(值得注意的是,我们已经看到几乎所有工具都可以“制作从 Windows 构建的 iOS”无法正常工作)。

因此,除了确保您的 Podfile 看起来与您对 the iOS getting started guide 的预期大致相同之外,更新 Cocoapods 和更新 Firebase(不要遵循 iOS 指南,Unity 的不同之处在于您应该遵循 Unity guide ),您可能想跟进the public issue tracker。当您这样做时,首先要做的是验证您的设置是否适用于您使用的 Firebase 产品的 quickstart(它看起来像您的错误日志中的 Messaging?)。

【讨论】:

  • 谢谢,这非常有用!问题出在 firebase 版本中,不知道为什么,但现在 pod 已正确安装。不幸的是,MuskGetLocaleRegion 错误仍然存​​在。
猜你喜欢
  • 1970-01-01
  • 2016-01-02
  • 2020-09-22
  • 2021-11-21
  • 2021-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多