Подтвердить что ты не робот

Мне нужны файлы bcsymbolmap, созданные Carthage

Я использую менеджер зависимости Carthage в моем проекте iOS. У меня есть папка Carthage/build в моем репозитории, чтобы всегда иметь готовые фреймворки при проверке репо.

Мне интересно, для чего нужны файлы bcsymbolmap в папке сборки. Многие из них создаются с каждым carthage update.

Нужно ли хранить эти файлы? Должен ли я иметь их в моем хранилище?

4b9b3361

Ответ 1

Если вы используете carthage build без спецификации проекта, все .bcsymbolmaps следует удалить, но если вы используете, например,. carthage build Alamofire он должен просто удалить соответствующий .bcsymbolmap

Из обсуждение проблемы github. Похоже, что вам не нужны эти файлы, поскольку поведение по умолчанию заключается в их удалении при создании новой сборки.

В общем случае вы не должны передавать файлы, созданные во время локальной сборки, в ваш репозиторий, поскольку сборки могут быть специфичными для устройства, и каждый, кто клонирует или вытаскивает из вашего репозитория, должен иметь возможность самостоятельно выполнять сборку.

Ответ 2

Нет, вам не нужны эти файлы. Если вы правильно настроили Carthage, двоичные файлы,.dsym и .bcsymbolmap будут скопированы на этапе сборки. Когда вы архивируете сборку для распространения через App Store, все необходимые файлы будут включены в архив, и после того, как вы загрузите сборку в App Store, вы сможете загружать файлы dsyms в любое время (чтобы иметь возможность декодировать отчеты о сбоях). На самом деле вам не нужно хранить файлы .dsyms и .bcsymbolmap в вашем хранилище.

Есть хорошая статья, объясняющая, что происходит во время сборки фреймворка (и что на самом деле делают скрипты Карфагена) https://instabug.com/blog/ios-binary-framework/. Также объясняется, для чего используются файлы .bcsymbolmaps - чтобы серверы Apple могли перестраивать ваш код с помощью битового кода, а затем вы можете десимболизировать отчеты о сбоях.

Таким образом, вам не нужно хранить эти файлы. Не нужно хранить их в хранилище. Другая причина не хранить содержимое папки Build заключается в том, что в любом случае ваш проект может не скомпилироваться с ним на другом компьютере с другой средой. Если вы хотите построить свой проект с теми же версиями зависимостей - используйте команду bootstrap Carthage вместо update.

PS Также вы можете узнать, что делает команда copy-frameworks: https://github.com/Carthage/Carthage/blob/fc0166b4827736bac2c804fc928797f1a742c455/Source/carthage/CopyFrameworks.swift