Apple veröffentlicht Update für Entwicklungsumgebung Xcode

02. Sep 2020 10:00 Uhr - Redaktion

Apple hat die kostenlose Entwicklungsumgebung Xcode in der Version 11.7 vorgelegt. Das Update ergänzt nach Herstellerangaben neue Programmierschnittstellen (APIs) für das COVID-19-Benachrichtigungssystem. Außerdem wurden mehrere Fehler behoben, unter anderem im Zusammenhang mit dem kommenden Betriebssystem macOS Big Sur. In einigen Wochen erfolgt bereits die Ablösung durch Xcode 12.

Das ab macOS Catalina lauffähige Xcode 11.7 enthält Entwicklerkits (SDKs) für macOS 10.15.6, iOS/iPadOS 13.7, watchOS 6.2.8 und tvOS 13.4.8. Die Version 11.7 von Xcode kann über das Apple-Entwicklerportal und über den Mac-App-Store heruntergeladen werden. Sicherheitsrelevante Änderungen gab es laut Apple nicht.

 

 
Xcode
 
Xcode: Version 11.7 mit kleineren Verbesserungen und Bug-Fixes erschienen.
Bild: Apple.

 

Xcode ermöglicht die Entwicklung von Software für Mac, iOS-Hardware, Apple TV und Apple Watch. Die Entwicklungsumgebung ist für Programmiersprachen wie Swift, Objective-C, C oder C++ ausgelegt. Die offizielle Swift-Dokumentation kann im Apple-Books-Store heruntergeladen werden.

In wenigen Wochen wird Xcode 11.7 durch die Version 12 abgelöst. Mehr dazu in "Apple stellt Xcode 12 vor und erläutert Catalyst-Verbesserungen".

Kommentare

Ich benutze für einige Projekte gemischten Source-Code. Die Projekte sind meistens Swift-Projekte, die Open Source Objective-C Bibliotheken benutzen. Das geht vergleichsweise einfach und unkompliziert. Wenn mann dann aber zusätzlich innerhalb des Objective-C Codes auf Swift-Objekte zugreifen möchte, wird es kompliziert.

Seit Swift 3 ist es sowieso nicht mehr möglich, von C aus auf Swift-Funktionen zurückzugreifen. Mann kann aber über ein Objekt mit GET und SET quasi eine Funktion ersetzen. Dazu muss man in den Projekt-Settings unter "Objective-C Generated Interface Header Name" als Namen den Projektnamen (keine Leerzeichen), gefolgt von "-Swift.h" einsetzen. Diese Header-Datei wird dann vom Linker erzeugt und taucht nicht in der Seitenleiste oder im Source-Ordner des Projekts auf.

Hat man das gemacht, kamen bei Xcode 10.6 jede Menge Linker-Fehler, die u.a. besagten, dass NSString nicht definiert sei, sowie weitere undefinierbare Fehler die aus der Foundation.h stammen, was ja objektiv gar nicht sein darf.

Dieser Fehler war dann mit Xcode 10.7 ganz plötzlich verschwunden und das Projekt ließ sich einwandfrei kompilieren und starten. Obwohl man gemeinhin annimmt, dass durch diese Objekt-Brücke durch das Swift-Objekt erhebliche Performance-Einbußen stattfinden ist das nicht der Fall. Die Geschwindigkeit ist vergleichbar mit der, als wenn man direkt aus Swift auf die benötigten Ressourcen zugreift.