在我的项目中,同一个应用有不同的目标,但配置不同(生产/暂存/ 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
我是否做错了什么?此配置是否会导致丢失分析?(如控制台消息所示)
5条答案
按热度按时间0wi1tuuw1#
也许你必须将这个需要的文件(GoogleService-Info.plist)添加到你的项目资源中。在Xcode中打开你的项目. xc工作区,然后在项目导航器中右键单击资源文件夹并选择“将文件添加到...”。
rur96b6h2#
在左窗格中选择GoogleService-Info.plist,然后取消选中/重新选中项目的Target Membership复选框。
6jygbczu3#
当使用Flutter时:
我使用
flutterfire configure
命令运行flutter cli将Firebase添加到我的项目中,这将GoogleService_Info.plist
添加到我的项目中,但没有在.xcworpspace
文件中注册该文件。因此,我必须右键单击Xcode中的
Runner
-文件夹,选择Add Files to "Runner"...
,然后选择文件GoogleService_Info.plist
gtlvzcf84#
经过几次尝试,尽管控制台中出现错误消息,但Firebase似乎配置正确。
尽管如此,我还是决定采用@Micgal提出的解决方案,在不同的文件系统目录中有多个名为
GoogleService-Info.plist
的文件,并将每个文件添加到相应的目标中。然后,我可以使用FirebaseApp.configure()
初始化Firebase,它按预期工作,不会生成错误消息。rqqzpn5f5#
为
GoogleService-Info.plist
提供单独文件夹的替代解决方案是在生成阶段中添加额外步骤,以复制相应文件。只需转到“目标/生成阶段”,然后单击“新建运行脚本阶段”添加新脚本。脚本可能类似于:其中
FIREBASE_CONFIG_FILE
在构建设置中定义为用户定义的设置,对于不同的配置具有不同的值。然后调用FirebaseApp.configure()
。Firebase github上还有一个专用票证