Я хотел бы иметь возможность вносить изменения в проект Xcode (изменять исходный код, перемещать файлы в файловой системе, добавлять зависимости или библиотеки и т. Д.), А затем собирать его и сравнивать продукт сборки с тем перед внесением изменений, чтобы подтвердить, что они идентичны. Как мне это сделать?
Разбрасывание продуктов сборки не работает; Они разные каждый раз
Я пробовал использовать два разных продукта, построенных одинаково в разное время, и они различаются. А? Хм .. время сборки должно влиять на продукт сборки. Вот что я сделал:
В Xcode, после сборки продукта (Command + B
), нажмите Command + 7
, чтобы отобразить навигатор журнала. Затем нажмите «Build $ {PRODUCT_NAME}» в навигаторе. Затем в нижней части редактора разверните расшифровку стенограммы «Touch ...», щелкнув пузырь справа. Скопируйте последний путь к каталогу в стенограмме. Он должен выглядеть примерно так: /Users/${USER}/Library/Developer/Xcode/DerivedData/${PRODUCT_NAME}-abomilaxrsffqkeasoiwbfisjghq/Build/Products/Debug-iphonesimulator/${PRODUCT_NAME}.app
Это путь к вашему продукту сборки. Затем откройте терминал и выполните что-то вроде:
# Change to the build product's directory.
cd /Users/${USER}/Library/Developer/Xcode/DerivedData/${PRODUCT_NAME}-abomilaxrsffqkeasoiwbfisjghq/Build/Products/Debug-iphonesimulator/
# Copy the build product to another directory, like your Desktop.
open . # if you prefer Finder
cp -R ${PRODUCT_NAME}.app ~/Desktop/ # or use Terminal
# Confirm the bundles are identical.
diff -r ${PRODUCT_NAME}.app ~/Desktop/${PRODUCT_NAME}.app
Теперь, сделайте Command + Shift + K
в Xcode для очистки. Затем, соберите снова и запустите тот же diff выше. Они разные!
Как получить сборку, сгенерированную Xcode?
Итак, есть ли способ сравнить сборку, чтобы увидеть, отличаются ли они? Я нашел способ сделать это в ответе на вопрос здесь, но я забыл, где он находится, и не смог его найти.
Если сборка одинаковая, значит ли это, что продукты сборки тоже будут одинаковыми? Я так не думаю, потому что я думаю, что определенные настройки сборки влияют на то, как сборка компилируется в машинный код. Если да, то какие настройки сборки влияют на то, как сборка компилируется в машинный код. Таким образом, я могу просто подтвердить, что они идентичны до и после, и быть уверенным, что продукты идентичны (кроме их временных меток сборки).