IOSプロジェクトでCarthage依存関係マネージャーを使用しています。リポジトリにCarthage/build
フォルダーがあり、リポジトリをチェックアウトするときにいつでもフレームワークを構築する準備ができています。
ビルドフォルダ内のbcsymbolmap
ファイルは何のためにあるのか疑問に思います。それらのかなりの数がすべてのcarthage update
で作成されます。
これらのファイルを保持する必要がありますか?それらをリポジトリに含める必要がありますか?
いいえ、これらのファイルは必要ありません。 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
プロジェクトを指定せずに
carthage build
を使用する場合は、すべての.bcsymbolmapsを削除する必要がありますが、たとえば、carthage build Alamofire
対応する.bcsymbolmapを削除するだけです
から githubの問題の議論 。デフォルトの動作では、新しいビルドをビルドするときにファイルを削除するため、これらのファイルは必要ないようです。
一般に、ローカルビルド中に生成されたファイルをリポジトリにコミットしないでください。ビルドはデバイス固有である可能性があり、リポジトリにクローンを作成したり、リポジトリからプルしたりするすべての人が自分でビルドを実行できる必要があります。