2018: Größter Shakeup seit Jahren für iOS-Release und CI / CD-Prozess. So bereiten Sie sich auf 2019 vor

Ursprüngliche Links:

Im Jahr 2018 wurden Mobile DevOps und die CI / CD-Welt von einigen großen Ankündigungen und Neuigkeiten erschüttert. Diese Ankündigungen stammen entweder von Apple oder von den Open-Source-Communities, sie werden jedoch mit Sicherheit die herkömmlichen Vorgehensweisen für CI / CD für iOS-Apps ändern. In diesem Beitrag blicken wir auf das Jahr 2018 und auf das Jahr 2019 zurück. Wir werden sehen, was sich im Jahr 2018 in Mobile DevOps und Continuous Delivery für iOS-Apps geändert hat und wie sich dies möglicherweise auf die iOS-Version und den CI / CD-Prozess in auswirken wird 2019.

1. Apple + BuddyBuild

Am Neujahrstag 2018 erwarb Apple BuddyBuild und die Dinge in Mobile DevOps änderten sich drastisch. BuddyBuild ist einer der besten Cloud-CI / CD-Dienste für mobile Apps. Da BuddyBuild Teil von Apple wird, wurde die Unterstützung für Android-Apps eingestellt. Auch aufgehört, die neuen Kunden für iOS-Apps zu erhalten. Diese Nachricht war einer der größten Schocks für die Unternehmen, die den BuddyBuild-Dienst sowohl für Android als auch für iOS nutzen. Diese Unternehmen müssen nach einem anderen CI- / CD-Service für die Android-Apps suchen, was kostspielige Migrationsarbeiten zur Folge hat. Dies war auch eine große Lektion für die Unternehmen, die die Cloud-basierten CI / CD-Dienste nutzen. Sie überlegen, ob sie die mobile Infrastruktur intern verwalten oder an andere Unternehmen auslagern sollen. Wir haben die Vor- und Nachteile der internen Verwaltung der mobilen DevOps-Infrastruktur behandelt. Die Fusion von Apple und BuddyBuild stellt auch die Zukunft von Xcode Serve in Frage. Dies ist auch eine Alarmglocke für die Unternehmen, die derzeit den Xcode Server verwenden.

Wir freuen uns auf 2019:

  • Suchen Sie nach gemeinsamen plattformübergreifenden mobilen CI / CD-Lösungen für Android und iOS? Es ist an der Zeit, nach anderen mobilspezifischen CI / CD-Diensten wie Travis CI, Nevercode, Bitrise, Circle CI usw. zu suchen, die für Ihre Projektinfrastruktur geeignet sind. Oder verwalten Sie die mobile Infrastruktur intern mit Jenkins, TeamCity usw., wenn Sie über dedizierte Ressourcen mit Fachkenntnissen verfügen.
  • Suchen Sie nach einer Lösung nur für iOS? Warten Sie bis WWDC, was Apple + BuddyBuild zu bieten hat, bevor Sie zu anderen Diensten wechseln.
  • Bestehende Xcode Server-Benutzer können so weitermachen, bis wir Neuigkeiten über die Zukunft von Xcode Server erhalten.

2. App Store Connect API

Eine weitere Neuigkeit im Jahr 2018 war Apples Ankündigung der AppStore Connect API. Auf der WWDC 2018 wurde eine offizielle API angekündigt, um sowohl mit dem Apple Developer Portal als auch mit iTunes Connect zu kommunizieren. Apple hat außerdem Developer Portal und iTunes Connect kombiniert und in „App Store Connect“ umbenannt. Es gibt großartige WWDC-Sitzungen zu den Neuerungen in App Store Connect und zur Automatisierung von App Store Connect

Die App Store Connect-API ist eine Standard-RESTful-API, die auf JWT (JSON Web Tokens) zur Authentifizierung basiert und auf allen Plattformen verfügbar ist. Mit der App Store Connect API können wir fast alles automatisieren, was mit dem App Store zu tun hat, einschließlich

  • Verwalten von Zertifikaten, Bereitstellungsprofilen, Verwalten der Geräte-ID und der Bundle-ID
  • Verwalten von Benutzern, Rollen und App-Zugriff von App Store Connect
  • Verwalten von TestFlight- und Beta-Testern und öffentlichen Links
  • Herunterladen von Finanzberichten und Verkaufsberichten

XCBlog hat die App Store Connect-API in den Details im vorherigen Beitrag behandelt. Die App Store Connect-API entfernt viele Tools von Drittanbietern aus dem aktuellen CI / CD-Prozess. Kein Wunder, dass es Hunderte von Open-Source-Tools auf dem Markt geben wird, die die App Store Connect API unter der Haube verwenden.

Wir freuen uns auf 2019:

Die App Store Connect-API entfernt viele Tools von Drittanbietern aus dem aktuellen CI / CD-Prozess. Kein Wunder, dass es Hunderte von Open-Source-Tools auf dem Markt geben wird, die die App Store Connect API unter der Haube verwenden. Bereiten Sie sich auf die Verwendung dieser neuen Tools vor, oder schreiben Sie mithilfe der App Store Connect-API ein eigenes benutzerdefiniertes Tool, das Ihren Projektanforderungen entspricht.

3. Rückzug von Fastlane

Fastlane wurde für die Automatisierung von iOS-Bereitstellungs-Pipelines für viele iOS-Apps verwendet und hat sich bisher bewährt. Da Apple den Automatisierungsworkflow in Xcode Server drastisch verbessert hat und CI / CD-Dienste von Drittanbietern den größten Teil der zugrunde liegenden Automatisierung übernehmen, wird die Verwendung von Fastlane-Tools überflüssig. Apple hat niemals eine API bereitgestellt, um eine Verbindung zum Apple Developer Portal oder zu iTunes Connect herzustellen. Aus diesem Grund haben sich die meisten iOS-Entwickler für Fastlane entschieden, um iOS-Bereitstellungs-Pipelines zu automatisieren. Mit der Ankündigung von AppStore Connect API durch Apple werden die meisten Fastlane-Tools jedoch überflüssig und müssen früher oder später durch native Apple-Entwicklertools ersetzt werden. Die Fastlane-Community wird auch auf Twitter und Github still. Das Projekt auf Fastlane CI ist ebenfalls veraltet. Dies weist darauf hin, dass Fastlane früher oder später in den Ruhestand versetzt werden muss. Seien Sie auf die glänzenden Tools und die App Store Connect-API vorbereitet.

Wir freuen uns auf 2019:

Die Teile der Fastlane-Tools wie Scan, Fitness funktionieren zwar noch einwandfrei, um eine iOS-App zu erstellen und zu testen, aber früher oder später müssen Sie den neuen Flow basierend auf der App Store Connect-API übernehmen. Bereiten Sie sich auf die Außerbetriebnahme von Fastlane-Werkzeugen vor, die nicht mehr benötigt werden, z. B. das Einsteigen.

Früher oder später müssen Sie auf den neuen Workflow migrieren, sodass es eine gute Idee wäre, sich auf neue Tools vorzubereiten und Fastlane- und Ruby-Dingsbums von iOS-Projekten zu entfernen.

4. TestFlight-Verbesserungen + schrittweise Versionen

Apple hat die Unterstützung für öffentliche TestFlight-Links gestartet, mit der wir den Link teilen und die Leute dazu bringen können, die Beta-App zu testen. Öffentliche Links können an bis zu 10K-Tester gesendet werden, aber wir können das Limit festlegen. Die Links können jederzeit deaktiviert oder aktiviert werden, um die Zahlentester zu steuern. Die meisten TestFlight-Funktionen wie das Erstellen von Gruppen, das Zuweisen von Builds zu der Gruppe, das Verwalten öffentlicher Links, das Verwalten von Testern und Testinformationen können mithilfe einer App Store Connect-API automatisiert werden. Die Phased Releases für Continuous Delivery + TestFlight-Verbesserungen können für furchtlose Releases besser zusammenarbeiten.

Wir freuen uns auf 2019:

Beginnen Sie mit der Verwendung der öffentlichen Links für die TestFlight-Builds, seien Sie jedoch beim Teilen vorsichtig. Es besteht die Gefahr, dass die Features der Öffentlichkeit zugänglich gemacht werden, bevor wir sie veröffentlichen. Starten Sie die Automatisierung der Testerverwaltung und gruppieren Sie mithilfe der App Store Connect-API. Profitieren Sie von der schrittweisen Freigabe, um bestimmte Funktionen in der Produktion ohne Risiko zu testen.

5. App Store Connect - iOS-App

Apple hat außerdem die iOS-App „App Store Connect“ auf den Markt gebracht, mit der wir fast alle Aktivitäten auf den iOS-Geräten ausführen können, ohne die Website aufrufen zu müssen. In der iOS-App können wir

  • Siehe Trends, Verkäufe und Updates, In-App-Käufe, App-Bundles
  • Alle unsere Apps und die Möglichkeit, zum Entwicklungsteam zu wechseln.
  • Detaillierte App-Informationen, Apps freigeben / ablehnen, Benutzer-Reviews verwalten und Benachrichtigungen einrichten

Es gibt viele Dinge über Vorbestellungen, In-App-Käufe usw. von der iOS-App.

Wir freuen uns auf 2019:

Nutzen Sie die iOS-App, um alle App Store Connect-Funktionen von Ihrem Handy aus zu verwalten.

6. Neues Xcode Build System

Xcode New Build System wurde in Xcode 10 standardmäßig aktiviert. Die vollständige Release-Information zum neuen Build-System finden Sie hier. Wir haben die internen Details des neuen Build-Systems in unserem vorherigen Blog-Beitrag behandelt. Die neue Build-Einstellung kann über Xcode Files-> Project / Workspace Settings aktiviert werden, und wir können zwischen Legacy- und New Build-System wechseln. Auf dem CI-Server müssen wir über die Befehlszeile mit xcodebuild den zusätzlichen Parameter -UseModernBuildSystem = YES übergeben, um das neue Build-System zu erzwingen. Weitere Informationen zum Xcode-New-Build-System, das im vorherigen XCBlog verwendet werden kann, finden Sie hier. Mit dem modernen Build-System können wir die Swift-Build-Zeit drastisch verbessern, indem wir einige grundlegende Tipps befolgen, die hier erwähnt werden.

Wir freuen uns auf 2019:

Xcode New Build System wurde entwickelt, um Probleme zu finden, die mit dem üblichen Ablauf nicht festgestellt werden können. Möglicherweise müssen wir unsere iOS-Apps anpassen, damit das System ordnungsgemäß funktioniert. Wir könnten einige Fehler bekommen, wenn das neue Build-System aktiviert ist. Wir sollten diese sofort beheben.

7. AI-basiertes und paralleles Testen

Es gibt viele AI-basierte, codelose mobile Testtools auf dem Markt, die eine iOS-App verwenden, Testszenarien generieren und in der Cloud ausführen. Diese Tools melden auch grundlegende Probleme in den Apps ohne Konfiguration. Derzeit gibt es auf dem Markt nur wenige AI / ML-basierte mobile Testtools, z. B. test.ai für das mobile Testen. Die Applitools verwenden AI für visuelle Regressionstests. Bitbar kündigte die AI-gesteuerte App-Testlösung AI Testbot zum Testen mobiler Apps mit künstlicher Intelligenz an. Diese Tools können die zukünftige Durchführung von QA-Aktivitäten und die Verwendung von AI-basierten Tools zur Unterstützung der iOS-Testbemühungen ändern.

Apple verbessert auch die Testtechnologien jedes Jahr. 2018 wurde die Unterstützung für das parallele Testen angekündigt, indem Testsuiten innerhalb eines einzelnen Simulators durch Erstellen von Klonen der Simulatoren parallelisiert wurden. Xcode erstellt unter der Haube einen anderen Runner-Prozess und jedem Prozess werden spezifische Tests zugewiesen. Dies reduziert die Testausführung drastisch. Weitere Informationen zum Testen von Xcode Parallel finden Sie hier.

Wir freuen uns auf 2019:

Nutzen Sie AI-basierte Testtools zum Testen von iOS-Apps und nutzen Sie die Unterstützung für parallele Tests für XCTest.

8. Einfache Möglichkeiten zum Bereitstellen von IPA-Dateien

Ab sofort gab es eine eingeschränkte Möglichkeit, die IPA-Dateien im App Store Connect bereitzustellen. Die gängigsten Optionen sind lokaler Xcode, Application Loader, Fastlane, ITMSTrasporter oder Altool. Einzelheiten zu diesen Optionen finden Sie hier. Ab 2018 haben wir jedoch einige weitere Optionen zum Bereitstellen der IPA-Dateien

  • Verwenden von ITMSTrasporter unter Linux Server. Details hier
  • Verwenden von xcodebuild, um IPA-Dateien direkt in den App Store hochzuladen. Details hier

Auf diese Weise können CI / CD-Server die vorgenerierten IPA-Dateien reibungsloser oder sogar von den Linux-Servern in den App Store hochladen.

Wir freuen uns auf 2019:

Bereitstellen von iOS-Apps über die Befehlszeile mit dem Tool xcodebuild mithilfe von exportOptionsPlist. Versuchen Sie, IPA-Dateien auf Linux-Server zu übertragen, und verwenden Sie ITMSTransporter, um die Apps im App Store bereitzustellen.

9. CI für Mobile SDK und Swift Libraries

Da die Popularität mobiler Apps zunimmt, benötigen die meisten Unternehmen Architektur, um mobile Apps schneller zu erstellen. Um die Qualität des Codes zu gewährleisten und ihn in mehreren Apps wiederzuverwenden, haben Unternehmen daher damit begonnen, wiederverwendbare Software Development Kits (SDKs) und Bibliotheken zu erstellen, damit der Code problemlos in mehreren Apps wiederverwendet werden kann. Da der Bibliothekscode mehrere Clients betreffen kann, muss unbedingt sichergestellt werden, dass die Codequalität des SDK den Anforderungen aller Clients entspricht. In den meisten Unternehmen gibt es eine CI / CD-Infrastruktur für die Hauptanwendungen, jedoch keine für die Bibliotheken und SDKs. In der Realität ist die kontinuierliche Integration von Bibliotheken und SDKs für die Hauptanwendungen sehr wichtig, noch wichtiger als CI.

Die kontinuierliche Integration für Mobile SDK kann durch verschiedene cloudbasierte CI-Dienste erreicht werden. Ein Beispielbeitrag von mir auf dem Nevercode-Blog hier zeigt, wie dies mit Nevercode möglich ist, aber auch mit anderen CI-Diensten, die Sie derzeit verwenden.

Wir freuen uns auf 2019:

Der Trend, das CI für iOS-SDKs und -Bibliotheken hinzuzufügen, wird in naher Zukunft definitiv zunehmen. Holen Sie sich also alle Ihre mobilen SDKs und Bibliotheken auf den CI-Server.

10. GitHub-Aktionen

GitHub hat den Dienst GitHub Action gestartet, der für CI / CD der Swift-Pakete aus den Linux-basierten Docker-Containern verwendet werden kann. Den ausführlichen Blog-Beitrag zum Einrichten von CI / CD mit Github Action for Swift-Paketen finden Sie hier. Die Github-Aktionen können als GitHubs eigene CI / CD-Lösung betrachtet werden, die in Github selbst eingebaut ist. Die Entwickler können Workflows mit dem GUI-Editor oder aus dem Code erstellen.

Derzeit ist dieser Dienst auf Linux Docker-basierte Builds beschränkt, aber wer weiß, dass wir die macOS-Images zur Verwendung der GitHub-Aktionen abrufen können. Wir können abwarten, was GitHub Actions in naher Zukunft für die iOS-Entwicklung bringt.

Wir freuen uns auf 2019:

Behalten Sie die GitHub Actions-Roadmap für iOS CI / CD im Auge.

Fazit

Im Jahr 2018 sind so viele gute Dinge geschehen, um die iOS-Apps reibungslos zu veröffentlichen. Unter Berücksichtigung all dieser Neuigkeiten können wir uns auf 2019 vorbereiten und sehen, was als nächstes für die iOS-Version und den CI / CD-Prozess ansteht. Ich hoffe, ich habe die meisten Geschichten aus dem Jahr 2018 behandelt. Bitte lassen Sie mich wissen, was Sie denken und rufen Sie mich an, wenn ich etwas verpasst habe

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

Gefällt dir dieser Beitrag von XCBlog By XCTEQ? Vielleicht gefallen Ihnen auch einige unserer Open-Source-Projekte auf Github oder folgen Sie uns auf Twitter und LinkedIn