iOS项目中Google Sign-In与Firebase通知的.plist文件选择问题
解决Google Sign-In与Firebase通知的Plist冲突及URL Schema崩溃问题
别纠结二选一啦!你只需要保留Firebase提供的GoogleService-Info.plist(你提到的googleinfo.plist应该是文件名打错了,标准命名是这个),因为这份文件已经包含了Google Sign-In和Firebase通知所需的所有配置项,原来单独用于Sign-In的那份plist完全可以删除。
崩溃的核心问题是URL Schema没配置对,按下面的步骤修复就行:
第一步:清理冗余文件
删除原来Google Sign-In对应的.plist,只保留Firebase的GoogleService-Info.plist,确保它已经正确添加到Xcode项目中(勾选了对应的Target)。第二步:补全URL Schema配置
- 打开Firebase的
GoogleService-Info.plist,找到REVERSED_CLIENT_ID这个键,复制它对应的字符串值。 - 回到Xcode,选中你的项目Target,进入
Info标签页,找到URL Types区域。 - 点击
+号新增一个URL Type,把刚才复制的REVERSED_CLIENT_ID值粘贴到URL Schemes输入框里,其余字段保持默认即可。
- 打开Firebase的
第三步:调整初始化代码
确保你的Google Sign-In初始化代码是基于Firebase配置的,比如在AppDelegate的application(_:didFinishLaunchingWithOptions:)里:FirebaseApp.configure() guard let clientID = FirebaseApp.app()?.options.clientID else { return true } let signInConfig = GIDConfiguration(clientID: clientID) GIDSignIn.sharedInstance.configuration = signInConfig这样就不需要手动单独设置Sign-In的clientID,直接复用Firebase配置里的信息,避免配置不一致。
这么操作之后,Google Sign-In和Firebase通知就能正常共存了——Firebase的plist本身就是为整合Google服务设计的,只要补全URL Schema这个关键配置,就不会再崩溃啦。
内容的提问来源于stack exchange,提问作者Jasmine Chaniara




