当前位置: 首页 > 知识库问答 >
问题:

Unity iOS应用程序生成失败:Firebase插件错误

冷英博
2023-03-14

我正试图通过XCode构建我的Unity游戏,但我在使用Firebase时遇到了很多麻烦。首先,我得到了很多关于缺少引用的错误,因为我的Podfile是由编辑器错误地生成的。它正在搜索插件的错误版本,正如.xml文件中指定的那样。我通过删除Podfile中的版本并启动'pod repo update'和'pod install'来解决这个问题。之后,当我再次尝试构建时,我得到了这样的结果:

体系结构ARMv7的未定义符号:“FireBase::ReferenceCountedFutureImpl::ReleaseMutexandRunCallback(unsigned long)”,r引用自:void FireBase::ReferenceCountedFutureImpl::CompleteInternal(unsigned long,int,char const*)::'lambda'(void*)>(unsigned long,int,char const*,void FireBaseCountedFutureImpl::CompleteInternal(unsigned long,int,char1::allocator>const&)::'lambda'(std::__1::basic_string,std::__1::allocator>*)const&)在libfirebasecpinstanceId.a(instance_id_e6ccc884c5840734a302e2aabfa8925c.o)ld:找不到体系结构armv7的符号clang:error:链接器命令失败,退出代码为1(使用-v查看调用

如果我删除armv7作为体系结构,而只保留arm64,我会得到相同的错误,但会有一个额外的警告:

ld:警告:arm64函数未4字节对齐:_UNWIND_TESTER from/users/user/desktop/unity-xcode/xwapp/libraries/libiphone-lib.a(UNWIND_Test_ARM64.o)

我尽我所能,我不知道该去哪里找了。有人有主意吗?谢谢你。

共有1个答案

岑鸣
2023-03-14

我首先要说的是,通过在GitHub上提交问题或使用Firebase的支持页面,您将获得更好的技术支持。如果您认为可以将其隔离到依赖关系解析器问题,那么GitHub项目也同样有效。在这种情况下,对项目设置进行一个来回比较容易。

现在我将提到一些可能有所帮助的调试步骤:

如果可能,请始终使用Firebase SDK的最新版本(当前为6.11.0)。回归并不是很常见,在每个新版本中几乎总是有bug修复,并且当您开始混合和匹配Unity SDK版本时,您可能会遇到非常奇怪的编译或链接器错误。

单独测试Firebase特性总是很好的,以确保您的OS或Unity编辑器没有任何问题,您可以检查并构建一个quickstart应用程序。由于Firebase在iOS和Android上做了大量的工作来与系统库挂钩,所以可能会遇到另一个插件或更深奥的编辑器设置的问题。如果你真的伸出援助之手,我几乎可以保证他们会要求你这样做无论如何,以帮助获得良好的繁殖步骤。

接下来,您通常应该让Play Services解析器在iOS中为Podfile和工作区/项目管理做它的事情。我对幕后发生的事情做了一个相当详细的记录,但要把它分解一下:

您的第一个错误是缺少ReferenceCountedFuture(请注意,所有C++SDK都是开源的,因此您可以查找该层的任何错误)。由于这是核心部分,所以它可能在libFirebasecppapp(assets/plugins/ios/firebase/lib/firebasecppapp.a)中。您需要确保它包含在Unity端的iOS构建中,并且没有被版本控制系统排除为某种构建工件(这是非常常见的)。

根据你的评论,我想你知道这一点,但我会把它列入为其他读者完整。通过CocoaPods引入其他依赖项(这些是ObjectiveC级依赖项,典型的非游戏SDK)。它们位于与模式*dependencies.xml匹配的文件中,通常位于editor/文件夹中。这些版本与Unity版本(例如:6.11.0)不匹配,并且通常是Firebase主线之后的一个版本。重要的是,在版本中不要太超前,因为如果API发生更改,问题很可能会表现为编译或运行时问题。

我希望这里的一些帮助(如果它确实让我知道),但如果你认为这是可能的,你已经击中了一个bug,肯定在上面链接的频道重新发布。

--帕特里克

 类似资料:
  • 在运行mvn spring-boot:run命令时,我无法找出什么是错误的。mvn clean install使构建成功,但对于mvn spring-boot:run,我得到一个构建失败。这是运行mvn spring-boot时控制台中的错误日志:run-x。 这是我的pom.xml。我还从eclipse ide中的活动maven配置文件中删除了pom.xml,原因是它作为本链接中的解决方案之一给

  • 应用程序构建错误:'app:checkDebug重复类' 我知道通过删除一个类可以解决此错误,但我不知道如何删除它,或者有任何其他方法可以解决此问题。 谢啦 失败:生成失败,出现异常。问题:任务“:app:checkDebugDuplicateClasss”的执行失败。执行com.android.build.gradle.internal.tasks时出错。检查DuplicatesRunnable

  • 我正在Android Studio中使用Appium WebDriver为Android Emulator运行一个简单的计算器测试。我已经手动启动了Appium服务器和Android Emulator,然后使用TestNG.xml运行测试。 这是我的示例WebDriver代码- 当我在Android Studio上运行这个程序时,我得到了下面的Appium错误。 使用以下命令启动Appium服务器

  • 错误:任务“:app:checkdebugaarmadata”的执行失败 发生多个任务操作失败:执行com.android.build.gradle.internal.tasks.CheckAarMetadataWorkAction时发生失败

  • 我正在使用最新的android studio build 1.5,因为我想导入一个需要NDK的eclipse项目。我的项目正在进行中。我尝试导入组织。阿帕奇。工具。蚂蚁taskdefs。条件操作系统,但在我构建APK时,它正在工作,它会出错: 我的build.gradle: 我的local.properties: 请帮我修复错误。非常感谢你!

  • 我最近升级了我的项目。 我的项目生成失败并出现错误: 任务:检查样式主失败 . gradle\daemon\4.10.2\etc\check style\checkstyle-suppressions.xml(系统找不到指定路径) 这是我的gradle构建文件: