Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Распределённая сборка IPA

CocoaHeads
February 13, 2018
110

Распределённая сборка IPA

Дмитрий расскажет как кастомизировать приложение без пересборки. Будут затронуты особенности ручной сборки IPA. Как ускорить сборку приложения при помощи параллельной сборки компонентов.

CocoaHeads

February 13, 2018
Tweet

More Decks by CocoaHeads

Transcript

  1. Полный комплект сборки - 40 минут Тестовые сборки Сборки для

    App Store Alpha-версия Beta-версия AdHoc-версия AppStore-версия 10 мин 10 мин 10 мин 10 мин 20 минут 20 минут
  2. Пропатчим IPA Сборка 15 минут Сборка 15 минут Патч 1

    минута Сборка 15 минут Сборка 15 минут Патч 1 минута Патч 1 минута
  3. Проблемы. SwiftSupport /Payload/my.app/Frameworks/libswift* /SwiftSupport/libswift swift-stdlib-tool --copy --verbose --sign <Identity SHA1>

    --scan-executable <path> --scan-folder <path> --platform iphoneos --toolchain <path to XcodeDefault.xctoolchain> --destination <path to my.app/Frameworks> --unsigned-destination <path to SwiftSupport>
  4. Никогда не было и вот опять! Тестовые сборки Сборки для

    App Store Alpha-версия Beta-версия AdHoc-версия AppStore-версия 20 минут 20 минут
  5. Распределенная сборка Сборка Ruby Thread + Net::SSH Запуск процесса по

    SSH Git pull Брендирование xcodebuild build Загрузка результатов по SCP
  6. Сборка dSym для универсального модуля app.dSym Arch1.dSym Bin2 Bin1 Arch2.dSym

    Share1.dSym Bin2 Bin1 Share2.dSym lipo lipo appex.dSym копия копия
  7. Нюанс <key>UIRequiredDeviceCapabilities</key> <array> <string>armv7</string> </array> • Приложение не запустится на

    других архитектурах • Данные будут вырезаны при “app thinning”
  8. Другое решение. distcc Main node Worker node Worker node Результат

    препроцессора Результат компиляции ( module.o )
  9. Distcc и ccache в сравнении нами Main node Worker node

    Worker node Worker node Worker node distcc icq