Und ignorierst die Fakten, die dafür sprechen. Und wenn mal ein Fakt kommt, dem Du nichts entgegenzusetzen hast, fängst Du mit Wortspielchen an a la "ja das meine ich nicht, ich meine das"...
... wenn du meine Postings als Wortspielchen empfindest, solltest du sie nochmals lesen. Vielleicht werden dir dann die darin erwähnten konkreten Punkte klarer.
Und wenn ich nicht auf jede dahin geworfene Behauptung antworte, bedeutet das noch lange nicht, das ich nichts "entgegenzusetzen" habe. Warum sollte ich auch etwas entgegensetzen? Geht es hier um einen Wettstreit im "Recht haben" oder um Lösungen, wenn offensichtlich ein Feature von Xcode nicht bekannt ist?
Dennoch, um deinen Seelenfrieden zu erhalten, werde ich ein paar Zeilen schreiben, und die kleinen aber bedeutsamen Unterschiede zwischen meinen Ausführungen und deine "Fakten" darstellen.
Zur Auffrischung: Es ging um die Aussage, dass es mit aktuellem Xcode komplex sei, für ältere Systeme zu entwickeln. Dem ist nicht so. Durch die Angabe des deployment target wird genau das ermöglicht. Das deployment target kannst du im aktuellen Xcode bis runter zu 10.6 setzen. Es ist also ohne weiters möglich, mit dem nun unter 10.15 laufenden, aktuellen Xcode, Software zu erstellen, die auch auf Versionen von 10.6 an läuft.
Selbstredend dabei ist, dass du dann auch nur solche APIs nutzen kannst, die in den im deployment target gewählten Versionen vorhanden sind. Damit du da nicht bei jedem API-call die doku durchforsten musst, wenn du es nicht so bereits weist, gibt es ein entsprechendes Compiler-Flag, welches dir eine Warnung ausgibt, wenn eben eine API nicht in allen Versionen durchgängig vorhanden ist.
Compilen ist eine Sache, debuggen eine andere.
Wenn du mit aktuellem Xcode Software erstellst und dabei das deployment target auf eine altere Version setzt, kannst du natürlich diese Software auch mit dem aktuellen Xcode debuggen. Die Software ist ja sowohl auf den älteren, als auch auf dem aktuellen 10.15 lauffähig.
Warum also soll es nicht möglich sein, derartige Software mit aktuellem Xcode zu debuggen?
Du kannst ja oft nicht mal mehr eine 1-2 Jahre alte Codeversion Deiner Software kompilieren ohne ein altes Xcode zu nutzen
Hier sprichst du offensichtlich einen komplett anderen Fall an.
Wie oben dargestellt, ist es mithilfe des deployment targets möglich mit aktuellem Xcode Software für altere Systeme zu erstellen.
Hier redest du aber nun von alter, bereits vor 1-2 Jahren erstellter Software. Das ist eben ein komplett anderer Fall, als der in meinem Posting.
Alter Code _kann_ nun, so wie du richtig schreibst, manchmal nicht mehr gegen ein aktuelles SDK kompiliert, besser gesagt, gelinkt werden, wenn API-Calls in den aktuellen Frameworks nicht mehr vorhanden sind. APIs verschwinden aber nicht von heute auf morgen, sondern werden regelmäßig eine ganze Zeit lang als "deprecated" gekennzeichnet. Wenn der Entwickler dann halt diese veralteten APIs nutzt, darf er sich auch nicht wundern, wenn die dann eines Tages eben nicht mehr unterstützt werden. Eine große Gefahr, deprecated APIs zu nutzen, ist copy&paste von Code-Schnipseln aus dem Netz. stackoverflow ist eine super Seite, mit oft sehr hochkarätigen Infos. Dennoch ist man auch dort nicht gefeit, veraltete APIs in Code-Schnipseln zu finden.
Es bietet sich daher an, bereits bei der Erstellung von Code auf veraltete Funktionen zu verzichten. Xcode unterstütz dich auch hier mit entsprechenden warnings.
Es ist aber dennoch möglich, ein aktuelles Xcode zu verwenden um den alten Code, natürlich nach Anpassung hinsichtlich der deprecated APIs, zu kompilieren.
Warum soll es deiner Aussage nach nun erforderlich sein, dafür ein altes Xcode zu verwenden? Nur weil du gegen ein altes SDK linken willst ohne die veralteten APIs anzupassen?
Übrigens, es dauert regelmäßig einiges länger als 1-2 Jahre, bis eine als deprecated gekennzeichnete API dann gestrichen wird.
Es gibt einen Grund, warum es so viele Software gibt, die nicht mehr auf alten macOS Versionen laufen und keiner davon ist, dass die Leute zu blöd sind, dieses Dropdown zu finden.
Und welcher wäre das deiner Ansicht nach? deployment target und deprecated APIs anpassen? Oder vielleicht eher neue Funktionen und Möglichkeiten nutzen, die es bisher nicht gab? Werde mal konkret.
3/4 aller Swift Codebeispiele auf stackoverflow kannst Du gerade in die Tonne werfen weil sie nicht mehr funktionieren und Swift ist keine 6 Jahre alt...
Welche Swift-Sprachkonstrukte sind denn in der Zwischenzeit entfallen? Ich bin erst bei Swift 4 eingestiegen und kenne bislang keine derartigen Dinge. Hast du da konkrete Beispiele an Sprachkonstrukten, die es nun nicht mehr gibt? Oder meinst du auch hier eher veraltete APIs?