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

CodeFest 2012. Бусыгин Р. Автосборки iOS-проектов в Яндексе

CodeFest
April 20, 2012
670

CodeFest 2012. Бусыгин Р. Автосборки iOS-проектов в Яндексе

CodeFest

April 20, 2012
Tweet

More Decks by CodeFest

Transcript

  1. Зачем мне автосборка? 4 Ничто не является более тягостным для

    мудрого человека и ничто не доставляет ему большего беспокойства, чем необходимость тратить на пустяки и бесполезные вещи больше времени, чем они того заслуживают. — Платон, промо-ролик Яндекс.Навигатора
  2. Зачем мне автосборка? 5 Если что-то делаешь вручную третий раз,

    то это повод задуматься об автоматизации этого — Андрей Субботин, курилка в Яндексе
  3. Some people, when confronted with a problem, think “I know,

    I’ll use regular expressions.” Now they have two problems. 13 — Jamie Zawinski
  4. 16

  5. 16

  6. 16

  7. 16

  8. 16

  9. 16

  10. Этапы сборки 1. Установка версии 2. Компиляция 3. Проверка подписи

    4. Генерация артефактов 4.a. Переподписывание 5. Публикация артефактов 25
  11. 4. Артефакты Отладочная информация YourApp.app + YourApp.app.dSYM → zip Приложение

    YourApp.app → YourApp.ipa (InHouse) YourApp.app → YourApp.zip (AppStore) 36
  12. 4a. Переподписывание 40 xcrun -sdk iphoneos --sign "iPhone Distribution: InHouse"

    --embed inhouse.mobileprovision PackageApplication YourApp.app -o YourApp.ipa
  13. 6. Публикация артефактов YourApp.ipa для Over-The-Air распространения (в том числе

    и для App Store) YourApp.zip для iTunes Connect (только для App Store сборок) 45
  14. Интеграция с YXBuildKit 1. Добавить в проект две build con

    guration: InHouse и AppStore 2. Положить в папку с проектом конфиг 48
  15. Настройка YXBuildKit 49 PREBUILD_SCRIPT = yxbuildkit-prebuild.sh POSTBUILD_SCRIPT = yxbuildkit-postbuild.sh IPA_TITLE

    = "Яндекс.Карты" IPA_FILE = yandexmaps-iphoneos.ipa CODE_SIGN_IDENTITY_InHouse = "iPhone Distribution: Yandex LLC" CODE_SIGN_IDENTITY_AppStore = "iPhone Distribution: Yandex, LLC" APP_VERSION = 451 RESIGN_APPSTORE_BUILD_FOR_ADHOC_TESTING = 1 MOBILEPROVISION = "Resources/inhouse.mobileprovision"