【发布时间】:2017-02-11 23:28:11
【问题描述】:
在这个项目的早期,我犯了在包标识符中没有前缀com 的错误。现在我已准备好试飞,但我的捆绑包标识符无效。
目前,我的包标识符是 mycompany.myProject,但我希望它是 com.mycompany.myproject。我可以毫无问题地切换到所需的捆绑 ID 以存档应用程序并上传到应用程序商店。
我将应用程序切换到适当的包标识符所采取的步骤:
- 在 Firebase 控制台中使用正确的捆绑包 ID 创建新应用。
- 下载这个新应用程序的 Google-Info.plist 并放置在项目根目录中并拖到 Xcode 项目中。
- 在 Facebook 上更改捆绑包标识符
- 在项目设置中更改包标识符
但是,此错误导致应用程序严重崩溃。
*** 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 在打开的 ViewController 上的 viewWillAppear 登录) .然而,这没有任何意义,因为我所做的唯一更改是更改捆绑 ID。我已经被这个问题困住了将近一个星期。
我特别想知道我需要更改什么才能让 Firebase 接受捆绑标识符更改。
【问题讨论】:
-
您是否删除了旧的 GoogleService-Info.plist?只是想确保那里没有两个,而且它弄错了。
-
我用更新后的替换了旧的 GoogleService-Info.plist。我的根目录下只有一个文件。
标签: ios objective-c firebase firebase-authentication bundle-identifier