web-dev-qa-db-ja.com

Carthageによって作成されたbcsymbolmapファイルが必要ですか?

IOSプロジェクトでCarthage依存関係マネージャーを使用しています。リポジトリにCarthage/buildフォルダーがあり、リポジトリをチェックアウトするときにいつでもフレームワークを構築する準備ができています。

ビルドフォルダ内のbcsymbolmapファイルは何のためにあるのか疑問に思います。それらのかなりの数がすべてのcarthage updateで作成されます。

これらのファイルを保持する必要がありますか?それらをリポジトリに含める必要がありますか?

17
codingFriend1

いいえ、これらのファイルは必要ありません。 Carthageを適切に設定すると、バイナリ、.dsym、および.bcsymbolmapファイルがビルドフェーズでコピーされます。 App Storeを使用して配布するためにビルドをアーカイブすると、必要なすべてのファイルがアーカイブに含まれ、ビルドをApp Storeにアップロードした後、いつでもdsymsファイルをアップロードできるようになります(クラッシュレポートをデコードできるようにするため)。実際には、.dsymsファイルと.bcsymbolmapファイルをリポジトリに保存する必要はありません。

フレームワークが構築されているときに何が起こっているのか(そして実際にはCarthageスクリプトが何をしているのか)を説明する良い記事があります https://instabug.com/blog/ios-binary-framework/ 。また、.bcsymbolmapsファイルで何が使用されるかについても説明します-したがって、Appleサーバーはビットコードを使用してコードを再構築でき、クラッシュレポートを非記号化できます。

したがって、これらのファイルを保持する必要はありません。それらをリポジトリに保存する必要はありません。ビルドフォルダのコンテンツを保存しないもう1つの理由は、プロジェクトが別の環境の別​​のマシンでビルドに失敗する可能性があるためです。同じバージョンの依存関係を使用してプロジェクトをビルドする場合は、bootstrapの代わりにCarthageupdateコマンドを使用してください。

P.S.また、何を調査することもできますcopy-frameworksコマンドdo: https://github.com/Carthage/Carthage/blob/fc0166b4827736bac2c804fc928797f1a742c455/Source/carthage/CopyFrameworks.Swift

2
lobstah

プロジェクトを指定せずにcarthage buildを使用する場合は、すべての.bcsymbolmapsを削除する必要がありますが、たとえば、 carthage build Alamofire対応する.bcsymbolmapを削除するだけです

から githubの問題の議論 。デフォルトの動作では、新しいビルドをビルドするときにファイルを削除するため、これらのファイルは必要ないようです。

一般に、ローカルビルド中に生成されたファイルをリポジトリにコミットしないでください。ビルドはデバイス固有である可能性があり、リポジトリにクローンを作成したり、リポジトリからプルしたりするすべての人が自分でビルドを実行できる必要があります。

4
kowsky