web-dev-qa-db-ja.com

FirebaseのバンドルIDを変更する

このプロジェクトの早い段階で、バンドル識別子に接頭辞comが含まれていないというエラーが発生しました。これでフライトをテストする準備ができましたが、バンドルIDが無効です。

現在、バンドルIDはmycompany.myProjectですが、com.mycompany.myprojectにしたいです。アプリをアーカイブしてアプリストアにアップロードするために、目的のバンドルIDに切り替えても問題ありません。

アプリを適切なバンドル識別子に切り替えるために行った手順:

  1. 正しいバンドルIDを使用して、Firebaseコンソールで新しいアプリを作成します。
  2. この新しいアプリのGoogle-Info.plistをダウンロードして、プロジェクトルートに配置し、Xcodeプロジェクトにドラッグします。
  3. FacebookでバンドルIDを変更する
  4. プロジェクト設定でバンドル識別子を変更する

ただし、アプリはこのエラーで致命的にクラッシュします。

*** 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;
}

このメソッドは、Firebaseからデータを取得するためのメソッドをフィードするnilを返します。このメソッドのnilを返すと、InvalidPathValidationエラーが発生します。

Facebookで認証しています。これがnilを返す理由は、ログインを要求されたことがないため、アプリが誰がログインしているかがわからないためだと思いました(私のアプリは、最初のViewControllerのviewWillAppearでFacebookからログインしているかどうかを確認します)。ただし、私が行った唯一の変更はバンドルIDの変更であったため、これは意味がありません。私はほぼ1週間この問題に行き詰まっています。

FirebaseがバンドルIDの変更を受け入れるために何を変更する必要があるのか​​を具体的に考えています。

11
Kyle Griffith

解決策は、同じfirebaseプロジェクト内に新しいアプリを作成することでした

16
Kyle Griffith