在您的项目中找不到有效的GoogleService-Info.plist文件。

150

当我使用Xcode 9 beta 4运行我的Swift 3.2代码时,出现以下错误:

*** Terminating app due to uncaught exception 'com.firebase.core', reason: '[FIRApp configure]; (在Swift中为FirebaseApp.configure())在您的项目中找不到有效的GoogleService-Info.plist文件。请从https://console.firebase.google.com/下载一个.'

我已经有了一个名字完全正确且有效的GoogleService-Info.plist文件。

是否有Firebase的试用或类似的东西?


13
通过在右侧面板上单击 Plist 文件,检查目标是否已选中,并检查物理位置是否在您的项目文件夹中。 - Prashant Tukadiya
请从您的项目中删除 GoogleService-Info.plist 文件,然后尝试重新添加。 - Sanjay Shah
@MikeAlter 这可能与我正在运行的Xcode 9 beta 4有关吗? - adam eliezerov
Betas版本有缺陷,具体来说,它们经常不能自动将项目添加到目标中。无论是图片、脚本还是其他内容都适用。简单地说,只需选择右侧的“信息”并点击“添加至目标”框即可解决问题。这似乎在X9版本中已全部修复。 - Fattie
31个回答

313

从您的项目中删除Google-Info.plist文件,并尝试从项目文件夹的选项菜单中添加它。

编辑: 这是如何删除plist文件的方法 Xcode 10错误:多个命令产生


16
请确保 Google-Info.plist 文件的目标成员资格正确。 - Tom Spee
1
@AndréKuhlmann 看起来拖放文件是个bug。当我将plist文件拖到项目的根目录时,文件位置是从下载文件夹的路径。所以我不得不使用“添加文件”才能使其正常工作。 - govgo
我尝试了这个方法,但是Google-Info.plist文件被创建在根目录下。我手动将Google-Info.plist文件拖放到我的应用程序文件夹中。我是在React-Native项目中完成的。 - Olkunmustafa
截至2021年11月,我拖放文件的功能正常。也许他们已经修复了这个错误。 - Gapton
在Flutter项目中,通过使用Xcode在Runner文件夹中添加了.info文件,解决了问题。 - jagadishlakkurcom jagadishlakk
显示剩余2条评论

38

我也遇到了同样的问题。

在项目中点击Googleservice-info.plist文件,检查检查器中的Target Membership是否为app。这个步骤解决了我的问题。

这是崩溃的原因,删除文件并重新添加是上面答案建议的另一种方法。但实际原因是这个,并且这是正确的解决方法。

请参考下面的图像以进一步澄清:

图片描述


在我的情况下,它被禁用了,我无法检查,我只有一个选项可以检查{projectname}Tests。 - Rahman Haroon

29

一旦您将文件添加到项目中,您可能还需要将其添加到构建阶段编译源代码部分。


这对我有效。在我执行了“清除构建文件夹”的操作后,应用程序仍然崩溃。 - enjoi4life411

10

enter image description here

将GoogleService-Info.plist添加到Build Phases中,如上面的截图所示。

6
如果你有多个环境(生产、开发、预发布),你需要为每个环境准备不同的Google.plist文件。它们都必须具有相同的名称。为了解决这个问题,在每个环境中创建一个文件夹(每个环境一个),并将它们放在对应的文件夹中。当你从Finder拖动文件到Xcode时,确保在目标成员资格下为每个选择正确的环境。这样就可以分别构建各个环境,特别是如果每个环境具有不同的Bundle ID。

此外,在将文件添加到项目时,请确保选择“创建组”,而不是“创建文件夹引用”。如果使用文件夹引用,则文件夹引用将管理目标成员资格,这会导致Firebase找不到plist,在启动时崩溃。您必须直接选择文件上的目标成员资格。 - blwinters

6

确保你的文件名正确为“GoogleService-Info.plist”,其他任何名称都可能会引起问题。重新启动XCode,然后你就可以开始使用了。


2
是的,我也遇到了与“GoogleService-Info2.plist”等副本有关的问题。 - CharlieOxendine

5
  1. 确保文件名正确,即:"GoogleService-info.plist"
  2. 在mac的finder中将其添加到项目名称下,然后将其拖入项目以引用它。
  3. 最后,在plist文件的文件检查器中勾选目标成员资格下的框,将其作为项目的一部分包含进来,就像Silvajee所提到的那样。

我们能否将这个文件名重命名为:GoogleService-info.plist?改成类似于GoogleService-info_myapp.plist的名称。 - shaqir saiyed
问题已解决。文件命名有问题,请检查 service-info.plist 文件的名称。 - Ankit J

4

不管是不幸还是幸运,指定的错误非常准确。目前只有一种可用的选项,即正确地将Google-Info.plist文件放置在您的项目中。尝试删除并重新添加该文件。另外,请检查是否选择了目标。


项目属性在哪里? - adam eliezerov

4

2022 更新

如果您正在从旧版 Firebase 迁移,并且希望仅从 Dart 初始化 Firebase,则必须从 AppDelegate.m 或 Appdelegate.swift 中删除 Firebase 初始化。

在 Swift 中,删除 FirebaseApp.configure()

然后重新开始。


3
重新启动Xcode对我起作用了,以上所有选项都没有起作用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接