Was ist neu mit Git-Unterstützung in Xcode 9?

Was Sie erstellen werden

Xcodes 9, die neueste IDE-Version von Apple, wird im September zusammen mit iOS 11 veröffentlicht. Und es ist ein riesiges Update! Fans von Git für Source Control Management (SCM) sind große Gewinner in dieser kommenden Version.

In früheren Versionen von Xcode wurde SCM unterstützt, aber es wurde nie als erstklassiger Bürger betrachtet. Die Git-Unterstützung von Xcode war fehlerhaft und unauffällig, verglichen mit Spezialwerkzeugen wie SourceTree, was dazu führte, dass Entwickler zwischen den Tools wechseln mussten, um erweiterte Git-Repository-Verwaltungsaufgaben ausführen zu können. 

All dies hat sich in Xcode 9 geändert. Apple betrachtet SCM nicht mehr als sekundär, sondern hat sich für eine enge Integration mit GitHub entschieden und hat für Xcode 9 eng mit GitHub zusammengearbeitet. 

Das Endergebnis ist, dass Sie sich jetzt direkt von Xcode aus bei Ihrem GitHub-Konto anmelden können, um Ihre GitHub-Repos zu durchsuchen, zu navigieren und zu klonen. Sie können auch nach anderen Repositorys suchen, ohne zu einem Browserfenster wechseln zu müssen. Wenn Sie dagegen ein GitHub-Repo in Ihrem Browser geöffnet haben, können Sie auf die Schaltfläche Klonen klicken und Xcode automatisch klonen und das Projekt öffnen. 

Laut Apple heißt es: "Support für Git steht jetzt im Mittelpunkt", und Apple hat einen neuen Navigator für die Quellcodeverwaltung eingeführt, so dass Sie kein neues Fenster öffnen müssen, das visuell vom Rest von Xcode getrennt ist. Entwickler können jetzt Verzweigungen, Tags und Fernbedienungen über eine klare und intuitive Zeitleiste anzeigen, Commits genauer untersuchen und Änderungen eleganter und attraktiver betrachten. 

Ziele dieses Tutorials

In diesem Tutorial gehe ich Ihnen durch die Liste der neuen SCM-Funktionen, die mit Xcode 9 eingeführt wurden. Wir werden drei Hauptbereiche betrachten:

  • begeht
  • Geäst
  • Stichworte

Angenommenes Wissen

Um mit diesem Tutorial fortzufahren, sollten Sie über einige Vorkenntnisse mit Xcode verfügen und über gute Kenntnisse in der Quellcodeverwaltung durch Git verfügen. 

Erste Schritte mit Xcode 9 SCM

Umgebung einrichten

Um die neuen SCM-Funktionen von Xcode nutzen zu können, müssen Sie: 

  • Laden Sie Xcode 9 herunter.
  • Haben Sie ein kostenloses oder bezahltes GitHub-Konto.

Wenn Sie den neuesten Xcode-Build heruntergeladen und installiert haben und ein aktuelles GitHub-Konto besitzen, können Sie Ihr GitHub-Konto mit Xcode 9 verbinden. Starten Sie Xcode und gehen Sie zu Einstellungen > Konten. Wählen Sie dann das aus + Schaltfläche unten links, um ein neues Konto hinzuzufügen. 

Wählen GitHub aus dem modalen Fenster und geben Sie Ihre GitHub-Anmeldeinformationen ein. Wenn Sie die Zwei-Faktor-Authentifizierung verwenden, werden Sie von Xcode aufgefordert, Ihren Code einzugeben. 

Durchsuchen und Durchsuchen von GitHub-Repositorys

Lassen Sie uns sehen, wie Sie nahtlos durch bestehende öffentliche GitHub-Repositorys direkt von Xcode aus navigieren können. Öffnen Sie den Xcode-Willkommensbildschirm, wenn er nicht bereits angezeigt wird Fenster > Willkommen bei Xcode

Dann wählen Sie Klonen Sie ein bestehendes Projekt, Daraufhin wird die Liste der Repositorys auf GitHub angezeigt, die Sie derzeit besitzen, bearbeiten oder mit einem Sternchen versehen haben. 

Neben der Liste, die es präsentiert hat, können Sie auch nach einem öffentlichen Repo (oder einem privaten Repo, auf das Sie Zugriff haben) nach Namen oder durch Eingabe der GitHub-URL suchen. Geben Sie für unser Tutorial ein RealmDo und klicken Sie auf Klon, Wählen Sie dann ein lokales Verzeichnis aus, in das Sie das Projekt kopieren möchten. 

Sie werden dann nach einem Verzeichnis gefragt, in das das Projekt eingecheckt werden kann:

Anstatt das Projekt-Repo aus Xcode zu ziehen, können Sie ein GitHub-Repo in Ihrem Browser öffnen und auswählen Klonen oder herunterladen und Sie sehen eine neue Schaltfläche mit der Bezeichnung In Xcode öffnen

Das ist richtig: Wenn Sie darauf klicken, wird das Projekt automatisch in Xcode geöffnet, geklont und heruntergeladen. 

Zurück zu unserem Projekt. Da wir CocoaPods zum Verwalten von Abhängigkeiten verwenden, müssen wir zurück zum Befehlsterminal springen und ausführen pod installieren:

19:06 $ pod install Abhängigkeiten analysieren Abhängigkeiten herunterladen Verwenden von Realm (2.7.0) Verwenden von RealmSwift (2.7.0) Erstellen des Pod-Projekts Integrieren des Client-Projekts Senden von Statistiken Pod-Installation abgeschlossen! Es gibt 1 Abhängigkeit von der Poddatei und insgesamt 2 installierte Pods.

Unser Projekt sollte jetzt lokal eingerichtet werden .xcworkspace sollte in Xcode mit allen Dateien in Ihrem Projekt geöffnet sein. 

Xcode SCM-Einstellungen

Navigieren Sie zu den Voreinstellungen von Xcode und wählen Sie dann aus Quellcodeverwaltung, Sie können verschiedene Aspekte des Verhaltens direkt im Einstellungsbereich ändern, einschließlich Name und E-Mail-Adresse des Git-Autors, und interessanterweise sogar aktualisieren .Gitignore Einstellungen auch. 

Ein neues Projekt mit GitHub verknüpfen

Wenn Sie dagegen ein neues Xcode-Projekt erstellt haben und das Projekt noch nicht auf GitHub erstellt haben, können Sie ein neues GitHub-Projekt direkt aus Xcode erstellen. Klicken Sie mit der rechten Maustaste auf Fernbedienungen und dann auswählen Erstellen Sie "RealmDo" Remote auf GitHub

Xcode fordert Sie dann auf, dem Repository einen Namen zu geben und ein Konto für die Zuordnung auszuwählen.

Erkundung der neuen SCM-Schnittstelle

Lassen Sie uns die einzelnen Abschnitte der neuen Benutzeroberfläche näher untersuchen. 


  1. Im linken Fensterbereich finden Sie Ihre vertraute Liste von Symbolen für den Zugriff auf die Eigenschaften des Projekts. Die zweite Registerkarte ist brandneu: Es ist der Source Control Navigator.
  2. Das Commit History Der Bereich ist der prominenteste Teil des Navigators. Er zeigt Ihnen eine historische Liste der Commits für das Projekt und den Zweig.
  3. Im rechten Bereich werden zusätzliche Kontextinformationen zum Zweig und zu den ausgewählten Commits angezeigt.
  4. Neben den kontextabhängigen Verzweigungs- und Commit-Informationen zeigt Ihnen dieser Unterabschnitt auf der rechten Seite, welche Dateien Teil des ausgewählten Commits waren.
  5. Im linken Bereich können Sie aus einer SCM-Perspektive eine hierarchische Ansicht Ihres Projekts anzeigen. Dabei werden Ihnen der aktuelle Zweig, alle anderen Zweige (lokal oder remote) und Tags angezeigt. Es zeigt auch an, ob es neue Commits gibt, die gedrückt oder gezogen werden müssen, wie Sie später sehen werden.

Der Source Control Navigator

Eines der ersten Dinge, die wir in Xcode 9 untersuchen werden, ist der in Xcode 9 brandneue Source Control Navigator. Die Quellansicht ist nicht länger ein Bürger der zweiten Klasse - er ist jetzt vollständig in Xcode eingebettet. Wählen Sie das zweite Symbol im linken Fensterbereich aus (1), um den Source Control Navigator zu öffnen. 

Commit History

Werfen wir einen Blick auf die Commit-Historie-Perspektive, die die Liste der Commits für das Projekt zeigt, einschließlich Name, Datum und Beschreibung des Commit-Autors, sowie den Avatar des Autors aus GitHub, aus dem sich der Projektverlauf zusammensetzt. 

Dies ist eine sehr klare und schön organisierte Perspektive. Während dieses Beispielprojekt im Hinblick auf die Geschichte eher spärlich ist (wir werden das in Kürze ändern), ist dieser Bereich täuschend mächtig. 

Neben dem einfachen Blättern und dem Abrufen nützlicher historischer Informationen können Sie auch intuitiv nach Revision, Nachricht oder Autor filtern und suchen. Tatsächlich können Sie mehrere Filter verketten oder zusammenfügen, um nicht nur nach Autor, sondern auch nach Revision zu suchen. Sie können auch mithilfe der Scope-Leiste nach bestimmten Datumsperioden wie dem suchen Letzte 24 StundenLetzten 7 Tage, oder Letzte 30 Tage.

Wenn Sie ein bestimmtes Commit auswählen, werden im rechten Bereich einige zusätzliche Informationen angezeigt. Neben den Zweiginformationen erhalten Sie Commit-Informationen, den vollständigen SHA, den Autor, die Nachricht und das Datum. Sie sehen auch die Liste der Dateien, die während dieses Commits erstellt wurden. Dies ist äußerst hilfreich, um das Commit zu ermitteln, das beim Debuggen ein Problem verursacht hat. 

Durch Doppelklicken auf ein Commit wird eine Liste der Dateien angezeigt, die sich in diesem Commit im linken Fensterbereich geändert haben. Ein Versionsvergleich wird vorne und in der Mitte angezeigt. Dies ist die bekannte Diff-Perspektive, die jedoch dieses Mal erheblich verbessert wurde. 

Wenn Sie den Assistenten-Editor oben rechts auswählen, können Sie auf eine wirklich gute Diff-Ansicht zugreifen, mit der Sie nicht nur einen Unterschied der Datei anzeigen, sondern auch die vorherigen Commits problemlos durchlaufen und die Commit-Informationen sowie die eigentlichen Commits sehen können Dateiänderungen. 

Wenn Sie mit der rechten Maustaste auf ein Commit klicken, können Sie auch ein Menü anzeigen, in dem Sie mit dem Autor Kontakt aufnehmen, die Commit-Informationen kopieren, von diesem Commit aus verzweigen oder sogar das Commit für GitHub im Browser öffnen können. 

Sie können auch ein Tag erstellen. Dies ist das, was wir tun werden. Wähle aus Etikett Taste beim ersten Commit und benennen Sie es Freigabe / 0,1

Die Benennung Ihrer Tags in diesem Format durch Festlegen einer übergeordneten Gruppe (Release, Beta usw.) dient einem interessanten Zweck, den wir in Kürze erfahren werden. Nachdem wir jetzt ein Commit markiert haben, gehen wir zu unserem nächsten Thema über: Verzweigung. 

Verzweigung

Wir entwickeln derzeit in der Master-Niederlassung, aber während des normalen Entwicklungsworkflows arbeiten wir normalerweise in einer separaten Niederlassung. Wir würden einen Zweig erstellen, um ein Feature zu entwickeln und zu testen, und es dann wieder mit dem Hauptzweig zusammenführen, wenn es richtig funktioniert. Erstellen Sie einen neuen Zweig, indem Sie mit der rechten Maustaste klicken Meister und auswählen Verzweigung vom Meister. Rufen Sie den neuen Zweig an readme_changes

Ich möchte zeigen, wie das Zusammenführen funktioniert, also lassen Sie uns im neuen Zweig unsere Änderungen festschreiben, indem Sie auswählen Quellcodeverwaltung > Verpflichten. Dies bringt uns zurück zu der Vergleichssicht und gibt uns die Möglichkeit, alle Änderungen, die wir in diesem Commit vorgenommen haben, zu bestätigen und die Änderungen Zeile für Zeile zu vergleichen.

Wenn Sie die Änderungen überprüft haben, geben Sie eine Bestätigungsnachricht ähnlich der folgenden ein. Und überprüfen Sie unbedingt die Zur Fernbedienung drücken Box.

Wenn unser Feature-Zweig abgeschlossen ist, möchten wir ihn wieder mit dem Master-Zweig zusammenführen. Klicken Sie mit der rechten Maustaste auf den Master-Zweig und wählen Sie die zweite Zusammenführungsoption aus: Zusammenführen von "readme_changes" in "master"

Xcode fügt sich dann zusammen und wechselt automatisch zum Hauptzweig. Wenn Sie zum Hauptzweig zurückkehren, sehen Sie einen kleinen Aufwärtspfeil mit der Ziffer 1 rechts neben dem aktuellen Zweig. 

Dies lässt uns wissen, dass wir ein Commit haben, das an das Remote-Repository weitergeleitet werden muss. Wenn der Graf war 2, Wir wären zwei Commits vor dem Remote-Master. 

Wenn im Master neue Updates vorhanden sind, die Sie noch nicht gezogen haben, wird Xcode Sie darüber informieren. Xcode holt Sie von der Fernbedienung ab und informiert Sie mit einem Pfeil nach unten und zählt, dass Sie sich hinter dem Remote-Master befinden. 

Tagging

Zu einem früheren Zeitpunkt haben wir ein Tag für ein Commit erstellt. Wenn Sie den primären Bereich beobachten, sehen Sie ein anderes Commit, das mit einem Tag versehen wurde. Im linken Fensterbereich können Sie unter allen Verzweigungen eine übersichtliche Liste aller Tags anzeigen. 

Denken Sie an die Namenskonvention, die wir für unser Tag verwendet haben, Freigabe / 0,1. Wir haben das aus einem bestimmten Grund getan. Durch das Erstellen von Tags mit einem hierarchischen übergeordneten Element kann Xcode Tags zusammenfassen. 

In unserem Fall haben wir zwei Tags, die zum gehören Veröffentlichung übergeordnetes Tag. Wir können aus verschiedenen Gründen mehrere logische Gruppen für unsere Tags erstellen, und Xcode vereinfacht die Organisation unserer Tags. 

Durch die Auswahl eines bestimmten Tags werden in unserem Commit-Verlauf nur Commits angezeigt, die sich auf dieses Tag beziehen. Dies bedeutet, dass wir ein vollständiges Codierungsmanifest für alle während einer Veröffentlichung vorgenommenen Änderungen haben. Dies wird uns dabei helfen, problematischen Code für diese Version einzugrenzen.

Fazit

Xcode 9 ist eine riesige Veröffentlichung und eine der größten Neuerungen ist, dass Apple SCM als erstklassigen IDE-Bürger integriert hat. Dies beseitigt ein seit langem bestehendes Problem, das viele Entwickler darüber geäußert haben, wie Xcode die kollaborative Entwicklung und Versionierung verwaltet hat. 

In Xcode 9 wird GitHub nicht nur nahtlos in die Plattform integriert, sondern die Entwickler werden jetzt mit einer schönen Code-Verwaltungsschnittstelle in einer neuen SCM-Registerkarte belohnt. Entwickler erhalten eine definitive Sicht auf den Codeverlauf, Commits, Merges, Markierungen und Verzweigungen sowie erweiterte Perspektiven zum Debuggen und Identifizieren von Commits, die Fehler eingeführt haben. Git-Liebhaber und SCM-Fans werden Apples Initiative zur Konsolidierung eines wirklich leistungsfähigen Git-Management-Tools innerhalb der IDE zu schätzen wissen.

Während Sie hier sind, lesen Sie einige unserer anderen Beiträge zur Entwicklung von Xcode, Swift und iOS-Apps!