2018: Най-голямото разтърсване в годините за издаване на iOS и CI / CD процес. Как да се подготвим за 2019 г.

Оригинални връзки:

През 2018 г. Mobile DevOps и CI / CD свят бяха разтърсени от някои големи съобщения и новини. Тези съобщения са или от Apple, или от общностите с отворен код, но това ще промени традиционните начини за правене на CI / CD за iOS приложения. В тази публикация ще погледнем назад през 2018 г., за да гледаме напред през 2019 г. Ще видим какво е променено през 2018 г. в Mobile DevOps и непрекъсната доставка за приложения за iOS и как това ще повлияе потенциално на пускането на iOS и процеса на CI / CD през 2019.

1. Apple + BuddyBuild

В деня на новите години на 2018 г. Apple придоби BuddyBuild и нещата в Mobile DevOps се променят драстично. BuddyBuild е една от големите облачни CI / CD услуги за мобилни приложения. Тъй като BuddyBuild става част от Apple, те преустановиха поддръжката за приложения за Android. Също така спряхте да получавате новите клиенти за iOS приложения. Тази новина беше един от големите шокове за компаниите, използващи услугата BuddyBuild, както за Android, така и за iOS. Тези компании трябва да търсят друга CI / CD услуга за приложенията за Android, което води до скъпа работа по миграцията. Това също беше голям урок за компаниите, които използват услугите на CI / CD, базирани в облак, кара ги да мислят дали да управляват вътрешната мобилна инфраструктура или да я възлагат на други компании. Ние покрихме плюсовете и минусите на управлението на мобилната DevOps инфраструктура тук. Сливането на Apple и BuddyBuild също поставя под въпрос бъдещето на Xcode Serve. Това е и алармена сигнализация за компаниите, които използват Xcode Server в момента.

Очакваме напред към 2019:

  • Търсите общи кросплатформени мобилни CI / CD решения както за Android, така и за iOS? Време е да потърсите други специфични за мобилните CI / CD услуги като Travis CI, Nevercode, Bitrise, Circle CI и т.н., каквото е подходящо за вашата инфраструктура на проекта. Или управлявайте вътрешната мобилна инфраструктура, използвайки Jenkins, TeamCity и т.н., ако имате специални ресурси с умения.
  • Търсите решение само за iOS? Изчакайте до WWDC какво предлага Apple + BuddyBuild, преди да преминете към всякакви други услуги.
  • Съществуващите потребители на Xcode Server могат да продължат да използват такива, каквито са, докато не получим новини за бъдещето на Xcode Server.

2. App Store Connect API

Друга преломна новина през 2018 г. беше обявяването на Apple от AppStore Connect API. На WWDC 2018 беше обявен официален API за разговор както с портала на Apple Developer, така и с iTunes Connect. Apple също е комбинирала Портала за разработчици и iTunes Connect и го пребрандира като „App Store Connect“. Има страхотни сесии на WWDC за това, което е новото в App Store Connect и Автоматизиране на App Store Connect

API на Store Store Connect е стандартен API за RESTful, базиран на JWT (JSON Web Tokens) за удостоверяване и може да бъде достъпен от всички платформи. С App Store Connect API можем да автоматизираме почти всичко, свързано с App Store, включително

  • Управление на сертификати, профили за осигуряване, управление на идентификационния номер на устройството и идентификатор на пакет
  • Управление на потребители, роли и достъп до приложения на App Store Connect
  • Управление на TestFlight и бета тестери и обществени връзки
  • Изтегляне на финансови отчети и отчети за продажбите

XCBlog покрива API на App Store Connect подробно в по-ранната публикация. Приложният API на App Store ще премахне много инструменти на трети страни от текущия процес на CI / CD. Не е чудно, че на пазара ще има стотици инструменти с отворен код, които използват App Store Connect API под капака.

Очакваме напред към 2019:

Приложният API на App Store ще премахне много инструменти на трети страни от текущия процес на CI / CD. Не е чудно, че на пазара ще има стотици инструменти с отворен код, които използват App Store Connect API под капака. Бъдете готови да използвате тези лъскави нови инструменти или да напишете свой собствен персонализиран инструмент, за да съответствате на вашите проектни изисквания с помощта на App Store Connect API.

3. Пенсиониране на Fastlane

Fastlane е използван за автоматизиране на тръбопроводи за внедряване на iOS за много приложения на iOS и до този момент служи добре. Тъй като Apple драстично подобри процеса на автоматизация в Xcode Server и услугите на CI / CD на трети страни се справят с повечето от основните автоматизации, използването на Fastlane инструменти става излишно. Apple никога не е предоставяла API за свързване с портала на Apple Developer или iTunes Connect. Ето защо повечето от iOS Developer са избрали Fastlane за автоматизиране на тръбопроводите за внедряване на iOS. Въпреки това, с обявяването на Apple за AppStore Connect API, повечето от инструментите на Fastlane ще станат излишни и рано или късно ще трябва да бъдат заменени с родните инструменти за разработчици на Apple. Общността Fastlane също затихне в Twitter и Github, а проектът за Fastlane CI също е оттеглен. Това показва, че Fastlane трябва да бъде пенсиониран рано или късно. Бъдете подготвени за лъскавите инструменти и App Store Connect API.

Очакваме напред към 2019:

Битовете на Fastlane инструменти като сканиране, фитнес ще продължат да работят добре за изграждане и тестване на приложение за iOS, но рано или късно ще трябва да приемете новия поток на базата на API на App Store Connect. Пригответе се за извеждане от експлоатация на Fastlane инструменти, които вече не са необходими, например качване.

Рано или късно трябва да мигрирате към новия работен процес, така че би било чудесна идея да започнете подготовка за нови инструменти и да се пенсионирате с Fastlane и Ruby нещо от iOS проекти.

4. Подобрения на TestFlight + Поетапни съобщения

Apple стартира поддръжка за обществени връзки на TestFlight, където можем да споделим връзката и да накараме хората да тестват бета приложението. Публичните връзки могат да бъдат изпращани до 10K тестери, но можем да зададем лимита. Връзките могат да бъдат деактивирани или активирани по всяко време за контрол на тестерите за номера. Повечето от функциите на TestFlight като създаване на групи, присвояване на компилации на групата, управление на обществени връзки, управление на тестери и тестова информация могат да бъдат автоматизирани с помощта на App Store Connect API. Поетапните версии за непрекъсната доставка + подобренията на TestFlight могат да работят заедно по-добре за безстрашни версии.

Очакваме напред към 2019:

Започнете да използвате публичните връзки за изграждането на TestFlight, но внимавайте, докато споделяте. Съществува риск от изтичане на функциите пред обществеността, преди да пуснем. Започнете да автоматизирате процеса на управление на тестерите, групирайте с помощта на App Store Connect API. Възползвайте се от фазовата версия, за да тествате специфични характеристики в производството без риск.

5. App Store Connect - Приложение за iOS

Apple също така стартира „App Store Connect“ iOS приложение, така че да можем да извършваме почти всички дейности от iOS устройствата, без да е необходимо да посещаваме уебсайта. В приложението за iOS можем

  • Вижте тенденциите, продажбите и актуализациите, покупките в приложения, пакетите с приложения
  • Всички наши приложения и възможност за преминаване към екипа за разработка.
  • Подробна информация за приложенията, освобождаване / отхвърляне на приложения, управление на потребителски прегледи и настройване на известия

Има много неща за предварителни поръчки, покупки в приложение и т.н. от iOS App.

Очакваме напред към 2019:

Използвайте приложението iOS, за да управлявате всички функции на App Store Connect от вашия мобилен телефон.

6. Нова система за изграждане на Xcode

Xcode New Build System е активирана по подразбиране в Xcode 10. Можете да прочетете пълната бележка за издаването на новата система за изграждане тук. Разкрихме вътрешните детайли на новата система за изграждане в предишната ни публикация в блога. Новата настройка за изграждане може да се активира от Xcode Files-> Project / Workspace Settings и можем да превключваме между наследена и нова система за изграждане. На CI сървъра, от командния ред, използващ xcodebuild, тогава трябва да преминем допълнителен параметър -UseModernBuildSystem = YES, също така ще принуди новата система за изграждане. Можете да прочетете повече за системата за ново изграждане на Xcode, която можете да използвате в предишния XCBlog тук. Използвайки съвременната система за изграждане, можем да подобрим драстично времето за изграждане на Swift, като следваме някои основни съвети, споменати тук.

Очакваме напред към 2019:

Xcode new build system е проектирана да намери проблемите, които не могат да бъдат определени с обичайния поток. Може да се наложи да адаптираме нашите приложения за iOS, за да помогнем за правилното изграждане на системата. Може да получим някои грешки, когато новата система за изграждане е активирана, трябва да поправим тези в движение.

7. Тестване на базата на AI и паралел

На пазара се появяват много базирани на AI без кодове инструменти за тестване, които вземат приложение за iOS, генерират тестови сценарии и ги изпълняват в облака. Тези инструменти също отчитат основни проблеми в приложенията без никаква конфигурация. Понастоящем на пазара има малко инструменти за мобилни тестове, базирани на AI / ML, например test.ai за тестване на мобилни устройства. AI Applitoolsuses за визуална регресия. Bitbar обяви AI-тестваното решение за тестване на приложения, известно още като AI Testbot за тестване на мобилни приложения, използващи изкуствен интелект. Тези инструменти могат да променят начина, по който QA дейностите се извършват в бъдеще и как AI-базирани инструменти могат да бъдат използвани за подкрепа на усилията за тестване на iOS.

Apple също така подобрява технологиите за тестване всяка година. През 2018 г. е обявена поддръжка за паралелно тестване на следващото ниво чрез паралелизиране на тестови пакети в рамките на един симулатор чрез създаване на клонове на симулаторите. Xcode създава различен бегач процес под капака и всеки процес получава конкретни тестове. Това намалява драстично изпълнението на теста. Повече за теста за паралелни Xcode тук.

Очакваме напред към 2019:

Използвайте базирани на AI инструменти за тестване за тестване на приложения за iOS и приемете поддръжката за паралелно тестване за XCTest.

8. Лесни начини за внедряване на IPA файлове

Към настоящия момент имаше ограничена опция за разполагане на IPA файловете в App Store Connect. Най-често срещаните опции са локален Xcode, Application loader, Fastlane, ITMSTrasporter или altool. Можете да прочетете подробно за тези опции подробно тук. Въпреки това, през 2018 г. имаме още няколко опции за разгръщане на IPA файловете

  • Използване на ITMSTrasporter от Linux Server. Подробности тук
  • Използване на xcodebuild за качване на IPA файл директно в App Store. Подробности тук

Това ще позволи на CI / CD сървърите да качват предварително генерираните IPA файлове в App Store по-гладко или дори от Linux сървърите.

Очакваме напред към 2019:

Разгръщане на приложения за iOS от командния ред с помощта на инструмента xcodebuild, използвайки exportOptionsPlist. Опитайте се да прехвърлите IPA файлове на Linux сървъри и да използвате ITMSTransporter, за да разгърнете приложенията в App Store.

9. CI за мобилни SDK и бързи библиотеки

Тъй като популярността на мобилните приложения расте, повечето компании се нуждаят от архитектура, за да изграждат мобилни приложения по-бързо. Следователно, за да гарантират качеството и да използват повторно съществуващия код в множество приложения, компаниите започнаха да изграждат комплекти за разработка на софтуер за многократна употреба (SDKs) и библиотеки, така че кодът да бъде лесно използван отново в множество приложения. Тъй като библиотечният код може да засегне множество клиенти, важно е да се гарантира, че качеството на кода на SDK отговаря на изискванията на всички клиенти. В повечето компании има настройка на CI / CD инфраструктура за основните приложения, но няма такива за библиотеките и SDK. В действителност непрекъснатата интеграция за библиотеки и SDK е много важна, дори повече, важна от CI за основните приложения.

Непрекъснатата интеграция за мобилни SDK може да бъде постигната от различни CI услуги, базирани в облак, един от примерите ми в блога Nevercode тук как може да се направи с Nevercode, но може да се направи и с други CI услуги, които използвате в момента.

Очакваме напред към 2019:

Тенденцията за добавяне на CI за iOS SDK и библиотеки определено ще се увеличи в близко бъдеще, така че вземете всичките си мобилни SDK и библиотеки на CI сървъра.

10. Действия на GitHub

GitHub стартира услугата GitHub Action, която може да се използва за CI / CD на пакетите Swift от докер контейнерите, базирани на Linux. Подробната публикация в блога как да настроите CI / CD с Github Action за Swift пакети тук. Действията на Github могат да се считат за собствено CI / CD решение на GitHub, вградено в самия Github. Разработчиците могат да създават работни потоци с помощта на редактора на графичния интерфейс или от кода.

Понастоящем тази услуга е ограничена до базирани на Linux Docker версии, но кой знае, че можем да получим изображенията на macOS, за да използваме действията на GitHub. Можем да чакаме и да гледаме какво GitHub Actions довежда до развитието на iOS в близко бъдеще.

Очакваме напред към 2019:

Следете пътната карта на GitHub Actions за iOS CI / CD.

заключение

През 2018 г. се случиха толкова много добри неща, за да се пуснат гладко приложенията на iOS. Имайки предвид всички тези новини, можем да се подготвим за 2019 г. и да видим какво предстои за издаването на iOS и процеса на CI / CD. Надявам се, че съм обхванал най-много от историите от 2018 г., моля да ме уведомите какво мислите и също да ме пинг, ако съм пропуснал нещо

====================================

Харесва ли ви тази публикация от XCBlog От XCTEQ? Може също да харесате някои от нашите проекти с отворен код в Github или да ни последвате в Twitter и LinkedIn