在尝试将Google登录集成到我的应用程序中时,找不到“GoogleService-Info.plist”文件。

14

我已经按照将 Google 登录集成到你的 iOS 应用中 的指南进行了操作。

然而,当我执行该应用时,在我能够看到第一个视图控制器之前,它就在应用委托本身停止运行了。

原因是因为我在 "application didFinishLaunchingWithOptions withOptions" 中编写了下面几行代码:

"NSError* configureError;
[[GGLContext sharedInstance] configureWithError: &configureError];
    NSAssert(!configureError, @"Error configuring Google services: %@", configureError);

 [GIDSignIn sharedInstance].delegate = self;"
在调试中,当它到达这段代码时,会提示:“由于未捕获的异常 'NSInternalInconsistencyException',应用程序终止,原因:配置Google服务错误:错误域=com.google.greenhouse Code=-200,“无法配置GGL。” UserInfo=0x7ff9c2e1d000 {NSLocalizedRecoverySuggestion=检查GoogleService-Info.plist的格式和位置。, NSLocalizedDescription=无法配置GGL., NSLocalizedFailureReason=无法解析提供的 GoogleService-Info.plist。有关详细信息,请参见日志。}'"。我将GoogleService-Info.plist文件放在我的目录中,但仍然不起作用。

1
欢迎来到 Stack,请阅读 http://stackoverflow.com/help/how-to-ask。感到沮丧是可以理解的,但请确保将您的问题保持在主题范围内。 - Linda Lawton - DaImTo
5个回答

40
  1. 您必须将 GoogleService-Info.plist 文件拖放到项目中的位置,例如 共享资源。添加成功后,还应确保将其包含在项目构建中:

显示已添加资源的图像

  1. 请仔细检查您的项目的 "Build Phases" 部分是否包括 GoogleService-Info.plist输入图像描述

  2. 请仔细检查文件名。文件名必须完全是 GoogleService-Info.plist,常见的拼写错误包括 GoogleServices-Info.plistGoogleService-info.plist - 区分大小写,严格命名。


谢谢你的回复,class!但是我的Xcode项目中没有名为“Shared Resources”的文件夹。我已经将“GoogleService-Info.plist”添加到我的目标文件夹中,并且它也在“Copy Bundle Resources”中,但仍然显示该鬼畜错误。 :-( - Karan. S
1
哦,是的 - 我觉得告诉你这个会有用。GoogleService-Info.plist 文件被添加到了我的目标文件夹中,而不是 pods 目标文件夹(我在使用 CocoaPods 后得到的)。 - Karan. S
它是否包含在“复制绑定资源”部分中? - class
谢谢!终于成功了...即使我费尽心思地按照谷歌的指示去做,但仍然崩溃了...谷歌应该把你的信息加入到他们的指南中... - user2052717
嘿,我已经尝试了拖放目标和内置传递,但它仍然给我错误。你能帮我吗?看一下这个问题。我已经彻底按照上述步骤进行了操作,我正在使用Xcode 9.2。 - Leap Hawk
我在构建阶段中找不到 GoogleService-Info.plist 文件,我该如何添加它们? - Rahman Haroon

9

我曾经遇到过同样的问题。实际上,当我在cocoapods文件中放置"pod 'Google/SignIn'"而不是"pod Google"时,问题就得到了解决。希望这也能帮助你。


1
兄弟,是啊 - 那也是我的问题。虽然我两周前就发现了,但我仍然非常感激像你这样的好心人存在。 - Karan. S
希望这个线程能够帮助其他遇到类似问题的人。 - Karan. S
5
关于我的情况,文件没有在“Build Phases”中的“Copy Bundle Resources”列表中列出。尽管我遇到了跟帖中发布的完全相同的错误(我使用的是Swift而不是Obj-C)。 - JustADev

1
如果您只想获取GCM_SENDER_ID,可以尝试以下解决方法:
NSError* configureError;
[[GGLContext sharedInstance] configureWithError:&configureError];
NSString * gcmSenderID = [GGLContext sharedInstance].gcmSenderID;
NSLog(@"%@", gcmSenderID);

0

对我来说,我忘记添加以下的Pods了(因为之前有一些本地问题,所以我全部删除了)。

pod 'FirebaseUI/Auth'

pod 'FirebaseUI/Google'
pod 'FirebaseUI/Facebook'
pod 'FirebaseUI/OAuth' # Used for Sign in with Apple, Twitter, etc
pod 'FirebaseUI/Phone'

https://firebase.google.com/docs/auth/ios/firebaseui


0

当我更新谷歌Pods时,这种情况发生了。他们改变了配置URL方案的方式。最好的方法就是重新配置谷歌登录。


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