質問: flutterアプリをfirebaseに登録してfirebaseを使った基本的な機能を勉強しているのですが、 iOSでまず最初にアプリをfirebaseに登録する際、構成ファイル(GoogleService-Info.plistファイル)を ダウンロードしてRunner>>Runnerディレクトリにドラッグアンドドロップで追加する作業があると思います。 それをやってとりあえずfirebaseのデータベースに書き込んだりはできているのですが、 そのドラッグアンドドロップについて、疑問があります。 というのが、特に何も考えずに、ダウンロードディレクトリにあるGoogleService-Info.plist ファイルをドラッグアンドドロップをしてRunner>>Runnerディレクトリに構成ファイルを追加し、 その後の作業も終わればその時はアプリとfirebaseが繋がるのですが、 その後何かのきっかけでダウンロードディレクトリにあるGoogleService-Info.plistファイルを削除してしまうと、 削除後はアプリを実行した際エラーが出て動かなくなってしまいました。 初めはなぜ動かなくなるのか分からず苦労したのですが、何となくそれが原因とわかりました。 というか自分でも意識していなかったのですが、ドラッグアンドドロップした後も ダウンロードディレクトリにGoogleService-Info.plistファイルが存在する、ということは 移動ではなくコピーをしているようなのですが、これでいいんでしょうか? というのが開発時はダウンロードディレクトリにあるGoogleService-Info.plistファイルを 消さないように気をつければ、それによるエラーは出ない、ということになると思うのですが、 アプリをapp storeに公開する時、問題は起きないのでしょうか? まあそれは実際公開してみればわかることだとは思うのですが、 開発時も、別のところにあるファイルを消したらエラーが出る、というのは何かおかしいような気がするのですが、 こういうものなのでしょうか? ドラッグアンドドロップの方法を間違っているのでしょうか? androidの方も意識せずにドラッグアンドドロップしていたのですが、ドラッグアンドドロップ後はダウンロードディレクトリにgoogle-services.jsonファイルは存在してないので、「移動させた」ということになるのでしょうか。 なのでこちらは間違って削除してエラー、みたいなことは起こりようがない、という感じです。
回答: プロジェクトにファイルを追加する時、Copy items if needed にチェックを入れないとそうなります。 参考: 【Xcode】ファイル追加削除するときの注意|新卒エンジニアの開発日記 例えば GoogleService-Info.plist をプロジェクトのソースコードとは別に管理したい場合があるのでそうなってます。ビルド時には必要なファイルはコピーされるので、元のファイルが存在する限りは問題ないはずですけどね。