在您的项目中找不到有效的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个回答

2
我知道这个问题已经有很多答案了,但也许这个解决方案能帮助一些没有使用Xcode构建配置的人。
如果你正在将iOS应用转换为Catalyst(就像我一样),那么我发现一个微小但晦涩的区别是Catalyst应用程序使用“Content/Resources”文件夹结构创建包,这个结构会在一段时间内干扰我的构建。我的构建阶段会为我复制发布/调试Plist文件,并且从iOS到Catalyst的路径差异会引起此错误。
你可以通过多种方式解决这个问题,例如上面同名Plist文件的多个文件夹。我使用一个自定义的bash脚本通过构建阶段,并手动复制文件,如下所示:
if [ $CONFIGURATION == "Debug" ]; then
echo using DEBUG firebase!

# Mac Catalyst appends a "Contents" folder so we need to handle that explicitly here
if [ $IS_MACCATALYST ]; then
    #echo "MAC CATALYST BUILD"
    cp ${SRCROOT}/${PROJECT-DIR}/your-custom-paths-here/GoogleService-Info.plist ${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app/Contents/Resources/GoogleService-Info.plist
else
 cp ${SRCROOT}/${PROJECT-DIR}/firebase/debug/GoogleService-Info.plist ${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app
fi 
fi

2
我们必须确保在Xcode中完整路径是正确的。最好从一开始就添加它。如果您已经这样做了,请跳到第5步。
  1. 退出Xcode。
  2. 确保文件名正确,即“GoogleService-Info.plist”。
  3. 将.plist文件添加到项目文件夹中。与Podfile、.xcworkspace等级别相同。
  4. 打开Xcode,在项目导航器中找到.plist文件。如果没有,请右键单击并单击添加新文件到“[项目名称]”。确保在添加到目标选项下单击项目名称。
  5. 在项目导航器中,单击GoogleService-Info.plist。从右侧导航器中选择文件检查器。确保完整路径是正确的。如果不是,请单击文件夹图标并选择项目文件夹内的.plist文件。
  6. 构建。如果仍然无法工作,请退出Xcode并重新构建。

确保 GoogleService-Info.plist 的目标已选择,并且与您正在构建的目标相同。 - Swati

2
以下设置可以解决我的编译失败问题: 1. 添加到“复制文件”中 2. 不要添加到“复制包资源”中。

enter image description here


2
对于那些使用Ionic的人,请确保首先在Xcode中打开您的.xcworkspace文件,然后将GoogleService-info.plist文件拖放到资源文件夹中。在线教程大多由于某种原因没有很好地解释这一部分。
向Shahzaib Maqbool大声喊出来,因为他的评论帮助我在我的项目中获得了这个。

2
  1. 实际上,当GoogleService-Info.plist文件并不实际位于我们的项目文件夹中,而只是有一个对该文件的引用时,就会出现这个错误。因此,解决方案是删除对该文件的引用,然后通过拖放或使用“添加文件...”选项右键单击您的项目文件夹再次将其添加到您的项目文件夹中。还要重新检查文件是否定位到您的项目文件夹目标位置,否则错误将再次发生。

  2. 不要忘记检查您的“GoogleService-Info.plist”文件与错误中显示的名称相同,否则请将其重命名。


2
以下步骤解决了我的问题,请按照以下步骤操作: 1.您必须将GoogleService-Info.plist文件拖放到项目中的某个位置,例如共享资源。当您成功添加该文件时,还应确保将其包含在项目构建中: 2.仔细检查项目的“Build Phases”部分,确保项目包含GoogleService-Info.plist。 3.仔细检查文件名。文件名必须完全是GoogleService-Info.plist,常见的拼写错误包括GoogleServices-Info.plist和GoogleService-info.plist - 区分大小写并且只能准确命名才能正常工作。

谢谢。我的文件名是GoogleService-info而不是Info。这给我带来了很大的麻烦! - Anish

1

我通过从Firebase中删除项目并从项目中删除GoogleService-Info.plist来解决了这个问题。之后,我再次将项目添加到Firebase中,并添加了新的GoogleService-Info.plist文件,这对我起作用了。


1
这个错误是由于下载 Google 服务超过一次所引起的。当我们第一次从 Firebase 下载时,它的名称为 GoolgeService-Info.Plist。如果再次下载,它将变成 GoogleService-Info(1).Plist。我们需要从 GoogleService-Info(1).Plist 中移除 (1)

1

1- 打开 "GoogleService-Info.plist" 文件,将任何 client_idreverse_client_id 更改为 REVERSED_CLIENT_ID

2- 重新打开 Xamarin 解决方案。 3- 现在应该可以工作了。


1

我进行了几次清理然后重新构建,这对我有用。


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