在这个项目的早期,我犯了错误,即包标识符中没有前缀com
。现在我准备测试航班了,我的捆绑标识符无效。
目前,我的包标识符为mycompany.myProject
,但我希望它为com.mycompany.myproject
。我没有问题切换到所需的软件包ID以存档应用程序并上传到应用程序商店。
我将应用切换到相应的包标识符所采取的步骤:
但是,该应用程序因此错误导致死机崩溃。
*** Terminating app due to uncaught exception 'InvalidPathValidation', reason: '(child:) Must be a non-empty string and not contain '.' '#' '$' '[' or ']''
出现此错误的时间点是调用Firebase方法时
- (NSString *) getUid {
return [FIRAuth auth].currentUser.uid;
}
此方法返回nil
,该方法提供从Firebase检索数据的方法。此方法的nil
返回会导致InvalidPathValidation
错误。
我正在通过Facebook进行身份验证。我想也许回归nil
的原因是该应用程序不知道谁登录,因为我从未被提示登录(我的应用程序检查您是否通过Facebook登录{{1}在打开ViewController上)。然而,这没有任何意义,因为我所做的唯一改变就是更改捆绑ID。我已经坚持这个问题差不多一个星期了。
我特别想知道如何更改Firebase以接受捆绑标识符更改。
答案 0 :(得分:10)
解决方案是在同一个firebase项目中创建一个新的应用程序
答案 1 :(得分:3)
以上答案在发布时可能是正确的,但对我有所帮助的是在Target的Signing and Capabilities设置中更改了捆绑包标识符。然后,我转到GoogleService-Info.plist
文件,并更改了BUNDLE_ID
的值。然后,我按Command +B
来构建应用程序,然后运行了该应用程序。对我来说一切正常,我没有任何错误。