在项目中找不到有效的 GoogleService-Info. plist

当我用 Xcode 9 beta 4运行我的 Swift 3.2代码时,我得到了这样一个错误:

*** Terminating app due to uncaught exception 'com.firebase.core', reason: '[FIRApp configure]; (FirebaseApp.configure() in Swift) could not find a valid GoogleService-Info.plist in your project. Please download one from https://console.firebase.google.com/.'

我已经有了一个 GoogleService-Info. plist 文件,它的名字和它应该的名字一模一样,而且是有效的。

有没有类似“消防基地”这样的案子?

130879 次浏览

不幸或幸运的是,指定的错误非常准确。现在只有一个选择。正确地将 Google-Info.plist文件放置在您的项目中。尝试删除并再次添加。此外,检查是否选择了目标。

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

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

  1. 确保文件名正确,即: “ GoogleService-info.plist
  2. 将其添加到 mac finder中项目名称下的项目,然后将其拖动到项目中以引用它。
  3. 最后,正如 Silvajee 提到的,转到 file inspector获取 plist 文件,并在 target membership下打勾,将其作为 project的一部分。

将该文件添加到项目后,可能还需要将其添加到 编译源部分中的 构建阶段

我也有同样的问题。

点击 Googleservice-info。列表在您的项目和检查应用程序的目标成员。这就解决了我的问题。

这就是这次崩溃的原因,删除文件并重新添加是另一种方法,正如上面的答案所建议的那样。但真正的原因是这个,这是解决问题的正确方法。

请参阅下面的图片以便进一步澄清:

enter image description here

重新启动 Xcode 对我来说很管用,但是上面的选项都不管用。

进入构建阶段,在拷贝包资源中添加文件。

这些步骤解决了我的问题。按照这些。 1.您必须拖放 GoogleService-Info。将 plist 文件放到项目中的一个位置,如共享资源。成功添加文件后,还应确保在项目构建中包含该文件:

2.在项目的“构建阶段”部分再次检查您的项目是否包含 GoogleService-Info. plist。

3.再次检查文件名。文件名必须正好是 GoogleService-Info。Plist 常见的拼写错误包括 GoogleServices-Info。Plist 和 GoogleService-info。对 plist 大小写敏感并且只能精确命名的命令将会起作用。

  1. 实际上,当 GoogleService-Info。Plist 文件实际上不在我们的项目文件夹中,但是它只有一个对下载该文件的引用。因此,解决方案是,删除这个文件的引用,并再次添加到您的项目文件夹,通过拖放或使用“添加文件...”选项,通过右键单击您的项目文件夹。还要重新检查文件是否正在定位项目文件夹目标,否则将再次发生错误。

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

做一个清洁,然后建立了几次为我工作。

1-打开“ GoogleService-Info. plist”并更改 any 或 to 和

2-重新打开 Xamarin 溶液 3-现在应该可以了

如果您有多个环境(生产、开发、分段) ,那么每个环境都需要不同的 Google.plist。

他们都必须有相同的名字。

为了解决这个问题,为每个文件(每个环境一个)创建文件夹,并将它们放在相应的文件夹中。

将文件从 Finder 拖动到 Xcode 时,请确保为每个文件选择适当的环境

这样可以解决这个问题,并允许您单独构建环境。特别是如果每个环境具有不同的 Bundle ID。

对于那些与爱奥尼亚共事的人,请务必打开你们的。先把 xcworkspace 文件放到 Xcode,然后拖动 googleService-info。将 plist 文件放入 Resources 文件夹。

由于某些原因,大多数在线教程不能很好地解释这一部分。

向 Shahzaib Maqbool 喊出来,因为他的评论帮助我得到了我的项目。

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

此错误发生下载谷歌服务超过1次。当我们第一次从 Firebase 下载的时候,它就像 GoolgeService-Info.Plist。如果你再次下载,那将来到 GoogleService-Info(1).Plist。我们需要从 GoogleService-Info(1).Plist中移除 (1)

下面的设置可以修复我的编译器失败 1. 添加到“复制文件” 2. 不添加到“复制包资源”

enter image description here

删除任何其他“ GoogleService-Info”。“ plist”文件。对我来说,当我安装它的时候,它的名字是“ GoogleService-Info”。Plist-2”,因为我在同一个文件夹中安装了另一个文件。看来这会给消防队带来混乱。我删除了所有旧文件,并将当前文件的名称更改为“ GoogleService-Info”。完全正确。成功了。

我们必须确保 ABc0在 Xcode 是正确的。最好从一开始就加进去。如果您已经做了,请跳到第5步。

  1. 退出 Xcode。
  2. 确保文件名是正确的,“ GoogleService-Info. plist”。
  3. 将. plist 文件添加到项目文件夹。与 Podfile、 . xcworkspace 等相同级别。
  4. 打开 X 代码,确认身份。项目导航器上的 plist 文件。如果没有,按 右击然后按 向“[项目名称]”添加新文件。确保单击 增加目标选项下面的项目名称。
  5. 在 ProjectNavigator 上,单击 GoogleService-Info。普利斯特。从右导航器中选择 档案督察。确保“完整路径”是正确的。如果没有,请单击文件夹图标并选择。在项目文件中的 plist 文件。
  6. 如果仍然不能工作,退出 Xcode 并重新构建。

enter image description here

在构建阶段添加 GoogleService-Info. plist,截图如下:

在我的例子中,当我在 project.pbxproj 中合并冲突时,出现了一些错误

GoogleService-信息。Plist-> 没有在右窗格中选择 Target 成员资格,我无法选择它,因为 project.pbxproj 已损坏(即使 build 是成功的)

我必须回滚 project.pbxproj,然后 GoogleService-Info. plist 选择了 Target 成员。

确保 project.pbxproj 在合并冲突后没有损坏(它与 attempted to initialize an object with an unknown UUID有关)

确保您的文件名正确为“ GoogleService-Info”。普利斯特”。任何其他名字都会引起麻烦。重新启动 XCode 就可以了。

对于那些误用 Xamarin 的人(你应该尽量避免使用这个工具) : 以代码的形式打开项目文件,并检查该文件是否具有 import 标记 BundleResource,而不是 Nothing (红色的是正确的) : < img src = “ https://i.stack.imgur.com/p7oxc.png”alt = “ enter image description here”/> < img src = “ https://i.stack.imgur.com/p7oxc.png”alt = “在这里输入图像描述”

我使用的是 FirebaseUI,在使用 Google 登录时收到了一个稍微不同的错误:

终止应用程序由于未捕获的异常“ NSInternalInConcerencyException”,原因: “ OAuth 客户端 ID 未找到。请确保在 Firebase 控制台中启用了 Google 登录。您可能需要下载一个新的 GoogleService-Info。启用 Google 登录后的 plist 文件。'

对我来说,解决这个问题的方法就是改变这一行(这似乎是不被赞成的)

[[FUIGoogleAuth alloc] init]]

[[FUIGoogleAuth alloc] initWithAuthUI:[FUIAuth defaultAuthUI]]

当构建提供程序列表

NSArray<id<FUIAuthProvider>> *providers = @[
[[FUIGoogleAuth alloc] initWithAuthUI:[FUIAuth defaultAuthUI]],
[[FUIPhoneAuth alloc] initWithAuthUI:[FUIAuth defaultAuthUI]]
];

另一个容易被忽视的问题是,当您下载了多个 PLIST 文件时,这个文件并不完全命名为 'GoogleService-Info.plist'

我有多个副本,所以我试图使用 'GoogleService-Info.plist(2)'抛出相同的错误,所以请确保文件本身的名称,因为它的意思是!

如果你的 Mac 默认添加一些数字到你的谷歌文件,你必须删除它,并写的文件像“谷歌服务-信息。“ plist”并将其拖动到 xcode 项目中 我希望这将是有用的:)

请试试这个。 点击 GoogleService-Info。 检查了右侧的目标成员。 清洁和建设。它将工作。

我的问题和这个案子一样,解决了那个-> 添加 Xcode 运行器打开 Xcode,然后右键单击 Runner 目录并选择 Add Files to“ Runner”。 最重要的是; 终端: Cd ios-“ pod install” 还有信息列表,没问题。 希望你的问题解决了

我也遇到了和你一样的问题和错误。我从 Firebase 下载了多个 info.plist文件,这就是为什么我的 MacBook 保存这些文件的原因 GoogleService-Info.plistGoogleService-Info-2.plistGoogleService-Info-3.plist

然后我在我的项目 GoogleService-Info-3.plist错误复制,然后我采取了同样的错误。然后我复制了 GoogleService-Info.plist,问题就解决了。

但是要小心捆绑标识符。你必须复制正确的项目表。

2022年最新情况

如果您正在从旧的 Firebase 版本迁移,并且希望仅从 Dart 初始化 Firebase,那么您必须从 AppRegiate.m 或 Appregiate.swift 中删除 Firebase Initialization

迅速移除 FirebaseApp.configure()

重新开始。

我知道这个问题已经有一百万个答案了,但是也许这个解决方案可以帮助那些不像上面的许多答案那样使用 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