Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?

Xcode 8 mit Swift 3 im Mac App Store verfügbar

Mit Veröffentlichung von iOS 10, watchOS 3 sowie tvOS 10 für die Allgemeinheit hat Apple nun auch das zugehörige Xcode in der finalen Version 8.0 im Mac App Store zum Download bereitgestellt. Die Entwicklungsumgebung zur Erstellung von Apps enthält alle neuen Frameworks, um die Funktionen der neuen Systemversionen auch in den eigenen Apps nutzen zu können. Darüber hinaus wurde parallel dazu Swift 3 fertiggestellt und ist als Bestandteil in Xcode 8 enthalten.


Swift hat sich mit Version 3 erheblich verändert, was nach Ansicht der Entwickler vor allem Neueinsteigern zugute komme, die mit Swift ihre erste Programmiersprache erlernen. Viele C-typische Schreibweisen sind in Swift 3 nicht mehr möglich. Objective-C-typische Eigenheiten wurden systematisch aus Swift herausgelöst, grundsätzlich ist aber immer noch die Kombination von Swift 3 und Objective-C in einem Projekt möglich - nur jetzt über eine transparente Formulierung, um Verwirrungen mit anderen Sprachen zu vermeiden. Swift 3 enthält außerdem einen Package Manager, über den sich bei plattformübergreifenden Projekten Abhängigkeiten definieren und auflösen lassen.

Ebenfalls aktualisiert wurde auch Apple Configurator 2, mit dem Konfigurationsprofile vom Mac aus auf Geräte übertragen werden können. Mit diesen lassen sich beispielsweise Beta-Versionen des Systems und von Apps installieren oder aber spezielle Einstellungen für den Einsatz in Bildungseinrichtungen und Unternehmen übertragen.

Sowohl Xcode 8 als auch Apple Configurator 2 erfordern einen Mac mit dem aktuellem OS X 10.11.5 El Capitan. Beide Apps sind von Apple aber auch schon an das kommende Woche erscheinende macOS Sierra angepasst.

Kommentare

sierkb14.09.16 09:46
Was ist mit den zugehörigen Xcode 8 Commandline Tools für OS X 10.11?
Apple bietet nur welche an für OS X 10.12., hat beim Update unter 10.11 nur Xcode.app erneuert und auf Version 8 gehoben, nicht aber die dazu passenden Commandline Tools, da sind die der vorangegangenen Xcode Version stehengelassen und nicht mit aktualisiert worden. Bei mir mit entsprechenden Folgen beim Compilieren (Fehlermeldungen und Abbruch), was sonst glatt durchlief. Zumal Xcode 8.app kein SDK mehr für OS X 10.11 mit sich führt sondern nur eines für OS X 10.12 (steht auch als kurze Info in den 8er-Release Notes drin, welche SDKs mitgeführt sind).
Zudem: wenn man damit unter OS X 10.11 nicht mehr uneingeschränkt arbeiten, für die 10.11er-Plattform nicht mehr Software bauen kann, weshalb wird's dem 10.11er-Nutzer überhaupt angeboten, zumal im allgemeinen Zugriff via AppStore?

Weiß jemand Näheres?
0
forscher14.09.16 15:22
Gib mal auf der Kommandozeile mit Admin Rechten
xcode-select --install
ein. In dem anschließendem Dialog auf "install" drücken.
Wenn es nicht geht, hast Du schon die aktuelle Version installiert.
clang -v liefert bei mir: Apple LLVM version 7.3.0 (clang-703.0.31)
0
sierkb14.09.16 16:55
forscher
Gib mal auf der Kommandozeile mit Admin Rechten
xcode-select --install
ein. In dem anschließendem Dialog auf "install" drücken.
Wenn es nicht geht, hast Du schon die aktuelle Version installiert.
clang -v liefert bei mir: Apple LLVM version 7.3.0 (clang-703.0.31)

Es ist ja nicht so, dass ich das gestern abend nicht schon längst gemacht hätte mit folgendem Ergebnis:

$ sudo xcode-select --install
Password:
xcode-select: error: command line tools are already installed, use "Software Update" to install updates
Wenn es nicht geht, hast Du schon die aktuelle Version installiert.

$ clang -v
Apple LLVM version 8.0.0 (clang-800.0.38)
Target: x86_64-apple-darwin15.6.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

Sprich: Xcode.app selber hat die aktuellen Tools bei sich. Es gibt aber nicht ohne Grund nochmal genau dieselben Tools extra, ohne die Application, und die sind gebündelt in den Commandline Tools, ein extra Package, das man entweder manuell extra installiert oder der AppStore zieht es sich bei Installation von Xcode extra nochmal vom Server runter und installiert es extra. In der Übersicht der anstehenden AppStore-Downloads wird es auch stets dann extra aufgeführt als zweites Update, passend zum Update der Application selber, wenn der AppStore festgestellt hat, dass die Commandline Tools auch noch installiert sind.

Die Commandline Tools sind normalerweise installiert unter: /Library/Developer/CommandLineTools

Und da sitzen bei mir noch jene der Vorgänger-Version und eben nicht jene zugehörig zu Xcode 8.0. Was auch kein Wunder ist, denn die Commandline Tools für Xcode 8 scheint es ausschließlich für Sierra zu geben, so jedenfalls in den Developer Downloads zu finden. Da liegen keine für 10.11. Folglich hat der AppStore auch keine zum Downloaden und installieren.
Die Frage ist: WARUM? Was soll das?
0
Dirk!14.09.16 18:40
Sorry, für meine dumme Frage, aber bist Du sicher, dass hier (siehe Foto) das richte eingestellt ist?
0
sierkb14.09.16 20:12
Dirk!

Ja, ist. Auch keine andere Auswahl möglich bei mir.
Wie gesagt: unter /Library/Developer/CommandLineTools wurde nichts neu geschrieben, da liegen noch die alten Tools. Und bei Apple Developer im Downloadbereich existiert nur ein Commandline-Paket zum Download für 10.12 und nicht für 10.11.
0
forscher15.09.16 00:31
sierkb

ich versteh Dein Problem nicht. Wie Du selbst sagst, gibt es unter /Library/Developer/CommandLineTools
welche für 10.11 wenn Du auf 10.11 arbeitest und welche für 10.12 wenn Du auf der Command line von 10.12 arbeitest. Ist auch nicht weiter verwunderlich, die sind eben gegen das entsprechende System gelinkt.

Ich habe kein XCode installiert, aber wie Du beschreibst hat XCode nochmal extra die Commandline tools, mit einer neueren clang Version usw. Wahrscheinlich dann gegen 10.11 gelinkt.
Wann genau gibt es bei Dir jetzt welche Fehler? Wenn Du mit XCode compilierst oder wenn Du mit auf der Commandline compilierst. Sind das link-Fehler?
0
sierkb15.09.16 12:16
forscher
sierkb

ich versteh Dein Problem nicht. Wie Du selbst sagst, gibt es unter /Library/Developer/CommandLineTools
welche für 10.11 wenn Du auf 10.11 arbeitest und welche für 10.12 wenn Du auf der Command line von 10.12 arbeitest.
Apple
Command Line Tools (macOS 10.12) for Xcode 8
Sep 13, 2016

This package enables UNIX-style development via Terminal by installing command line developer tools, as well as macOS SDK frameworks and headers. Many useful tools are included, such as the Apple LLVM compiler, linker, and Make. If you use Xcode, these tools are also embedded within the Xcode IDE.
Download: ,

Bzgl. 10.11 wird lediglich die Vorgängerversion angeboten (erschienen: May 4, 2016):
Command Line Tools (OS X 10.11) for Xcode 7.3.1: ,

Situation jetzt unter 10.11.6 nach dem Update auf Xcode 8:

/Applications/Xcode.app inklusive betreffender gelinkter Unix-Tools (llvm, gcc, make etc.) für OS X 10.11, 10.12, Xcode 8.0, Stand: 13.09.2016

/Library/Developer/CommandLineTools inklusive betreffender gelinkter Unix-Tools (llvm, gcc, make etc.) für OS X 10.11, Xcode 7.3.1, Stand: 04.05.2016

Normalerweise werden bei jedem Xcode-Update über den AppStore die dazu passenden Commandline Tools automatisch mitaktualisiert. In diesem jetzigen Fall nicht. Wie auch? Auf Apples Server liegen keine vor, die downloadbar wären. Die Frage ist: warum? Welchen Grund hat das, dass die gar nicht erst angeboten werden, wo doch beide Packages zueinander gehören und unbedingt zueinander passen müssen, weil es sonst Reibereien durch Inkonsistenzen gibt (wie ich es bei mir grad' vermute, dass sowas vorliegt).
Ist auch nicht weiter verwunderlich, die sind eben gegen das entsprechende System gelinkt.

Eben. Genau darum geht's. Wer ist gegen was gelinkt, bezieht sich auf was und warum. Sollte normalerweise alles einheitlich sein und in eine Richtung zeigen und zueinander zugehörig sein und wurde und wird auch so gemacht, bzgl. 10.12 und Xcode 8 ja wieder. Warum nicht auch bzgl. 10.11 und Xcode 8?
Ich habe kein XCode installiert

Das ist schade, dann könntest Du es am Objekt selber evtl. besser nachvollziehen und selber mal nachschauen, was und wie ich es ich meine.
aber wie Du beschreibst hat XCode nochmal extra die Commandline tools, mit einer neueren clang Version usw

Ja. Ganz genau. Weil es Entwickler und Programme gibt, die brauchen Xcode.app, die darin mitgelieferten SDKs und die Xcode-IDE nicht, die brauchen nur die Unix-Tools (llvm, gcc, make etc.), um erfolgreich Software bauen zu können. Xcode.app braucht die Commandline Tools nicht, deshalb sind die optional, aber die Commandline Tools brauchen das Vorhandensein einer dazu genau passenden Xcode.app, die Tools darin sollten oder müssen identisch zuenander sein.

Ja, das ist so gesehen doppelt gemoppelt und redundant. Aber diese Redundanz gibt es aus ganz bestimmten Gründen, ich denke, langfristig wird Apple diese Redundanz abbauen wollen, werden die Commandline Tools verschwinden, wird nur noch ausschließlich Xcode.app gebraucht werden, da sind dann alle diese Tools drin (sind ja jetzt schon). Aber noch ist dem wohl noch nicht ganz so, und deshalb wird dieses separaten Commandline Tools auch noch gebraucht, und sie werden ja auch für 10.12 und Xcode 8 betreffend wieder angeboten (was wiederum zeigt: sie werden offenbar auch da noch gebraucht bzw. man kann nicht oder noch nicht drauf verzichten).
Wahrscheinlich dann gegen 10.11 gelinkt.

Genau. Das Eine gegen 10.12 gelinkt, das Andere gegen 10.11. Die Frage ist: warum nicht einheitlich und aufeinander abgestimmt wie sonst auch und wie bei 10.12 wieder?

Xcode 8 wird sowohl für 10.11 als auch für 10.12 angeboten. Das genau dazu passende separat erhältliche Package mit den Xcode 8 Commandline Tools wird jedoch nur und ausschließlich für 10.12 angeboten. Statt sowohl für 10.12 wie auch für 10.11. Die Commandline Tools, die es da bisher gibt, sind passend zu Xcode 7.3.1, OS X 10.11.

Die Frage ist: Aus welchem Grund gibt es keine passenden Commandline Tools für 10.11 passend zu Xcode 8, die ebenfalls neueren Versionen von llvm, gcc beinhalten, sodass unter /Applications/Xcode.app und /Library/Developer/CommandLineTools dieselben Unix-Tools, dieselben Header-Dateien in denselben Versionen vorliegen wie es normalerweise üblich ist und auch bei 10.12 ja auch wieder gemacht wird?
Wann genau gibt es bei Dir jetzt welche Fehler?

Beim Bauen bzw. wenn make arbeitet. Details bzw. betreffender Build-Log-Ausschnitt per PM.
Wenn Du mit XCode compilierst oder wenn Du mit auf der Commandline compilierst.

Commandline.
0
torfdin15.09.16 15:40
sierkb
... Zumal Xcode 8.app kein SDK mehr für OS X 10.11 mit sich führt sondern nur eines für OS X 10.12 (steht auch als kurze Info in den 8er-Release Notes drin, welche SDKs mitgeführt sind).
...
o_O , das hat mich jetzt etwas erschreckt, vielleicht habe ich's auch falsch verstanden.
Hilft da nicht das:

https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/WhatsNewXcode/introduction.html:
developer.apple.com
...
About SDKs and Simulator

A software development kit (SDK) is a collection of frameworks (libraries, headers, and resources) that represent the API for a specific watchOS, iOS, or macOS version. Most of the functionality your app gets from an SDK is actually provided by the host operating system, which makes the right Base SDK and OS Deployment Target settings that are critical for app compatibility. Xcode automatically builds with the latest SDK and targets the latest OS.

If your app doesn’t require the latest OS features, you can configure it to run on a previous version of the platform operating system using the OS Deployment Target option in the Xcode Project settings. If your project was created in an older version of Xcode, you can let Xcode update your project. For details on this feature, see Project Modernization.
...
immer locker bleiben - sag' ich, immer locker bleiben [Fanta 4]
0
sierkb15.09.16 21:59
torfdin:

Danke für den Hinweis. Jedoch:

Die Compiler-Option -mmacosx-version-min ist von mir bereits standardmäßig gesetzt in meinem configure-Skript und nennt bereits 10.11 als Mininum-Version:

CFLAGS="-O3 -march=native -pipe -D_FILE_OFFSET_BITS=64 -mmacosx-version-min=10.11 -arch x86_64 -w -D_LARGEFILE_SOURCE -D_LARGEFILE64

Die Manpage zu Apples gcc Compiler sagt hierzu u.a.:
-mmacosx-version-min=version

The earliest version of MacOS X that this executable will run on is version. Typical values of version include 10.1, 10.2, and 10.3.9.
This value can also be set with the MACOSX_DEPLOYMENT_TARGET environment variable. If both the command-line option is specified and the environment variable is set, the command-line option will take precedence.


If the compiler was built to use the system's headers by default, then the default for
this option is the system version on which the compiler is running, otherwise the default is to make choices which are compatible with as many systems and code bases as possible.

Das Setzen der MACOSX_DEPLOYMENT_TARGET Umgebungsvariable dürfte also maximal denselben Effekt haben wenn überhaupt einen bzw. bei Vorhandensein beider (Umgebungsvariable und Compiler-Option mmacosx-version-min=version, zweitere bei mir ja bereits gesetzt mit dem Wert "10.11", wird die von mir bereits genutzte Compiler-Option gegenüber der entsprechenden Umgebungsvariablen bevorzugt).
0

Kommentieren

Sie müssen sich einloggen, um die News kommentieren zu können.