使用FirebaseApp时无法找到配置文件GoogleService-Info.plist,configure(选项:)

ou6hu8tu  于 2023-02-13  发布在  Go
关注(0)|答案(5)|浏览(278)

在我的项目中,同一个应用有不同的目标,但配置不同(生产/暂存/ QA)。根据Firebase文档的建议,我为每个目标添加了一个plist文件,并通过以下方式传递正确的配置文件来初始化FirebaseApp:

let configPath = Bundle.main.path(forResource: NAME_OF_PLIST_FOR_CURRENT_TARGET ofType: ".plist")!
let options = FirebaseOptions(contentsOfFile: configPath)!
FirebaseApp.configure(options: options)

我还从我的项目中删除了GoogleService-Info.plist文件,如这里的文档中所建议的,以确保可靠的分析报告。
当我在控制台中运行应用程序时,我看到这些消息。

[Firebase/Core][I-COR000012] Could not locate configuration file: 'GoogleService-Info.plist'.
[Firebase/Analytics][I-ACS020006] Google App ID from GoogleService-Info.plist is empty. Please, define GOOGLE_APP_ID in GoogleService-Info.plist for Analytics to work reliably. See
[Firebase/Analytics][I-ACS025020] Analytics requires Google App ID from GoogleService-Info.plist. Your data may be lost. Google App ID has been changed. Original, new ID: (nil), MYAPPID

我是否做错了什么?此配置是否会导致丢失分析?(如控制台消息所示)

0wi1tuuw

0wi1tuuw1#

也许你必须将这个需要的文件(GoogleService-Info.plist)添加到你的项目资源中。在Xcode中打开你的项目. xc工作区,然后在项目导航器中右键单击资源文件夹并选择“将文件添加到...”。

rur96b6h

rur96b6h2#

在左窗格中选择GoogleService-Info.plist,然后取消选中/重新选中项目的Target Membership复选框。

6jygbczu

6jygbczu3#

当使用Flutter时:
我使用flutterfire configure命令运行flutter cli将Firebase添加到我的项目中,这将GoogleService_Info.plist添加到我的项目中,但没有在.xcworpspace文件中注册该文件。
因此,我必须右键单击Xcode中的Runner-文件夹,选择Add Files to "Runner"...,然后选择文件GoogleService_Info.plist

gtlvzcf8

gtlvzcf84#

经过几次尝试,尽管控制台中出现错误消息,但Firebase似乎配置正确。
尽管如此,我还是决定采用@Micgal提出的解决方案,在不同的文件系统目录中有多个名为GoogleService-Info.plist的文件,并将每个文件添加到相应的目标中。然后,我可以使用FirebaseApp.configure()初始化Firebase,它按预期工作,不会生成错误消息。

rqqzpn5f

rqqzpn5f5#

GoogleService-Info.plist提供单独文件夹的替代解决方案是在生成阶段中添加额外步骤,以复制相应文件。只需转到“目标/生成阶段”,然后单击“新建运行脚本阶段”添加新脚本。脚本可能类似于:

cp "${SRCROOT}/${PROJECT}/${FIREBASE_CONFIG_FILE}.plist" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/GoogleService-Info.plist"

其中FIREBASE_CONFIG_FILE在构建设置中定义为用户定义的设置,对于不同的配置具有不同的值。然后调用FirebaseApp.configure()
Firebase github上还有一个专用票证

相关问题