/ / Sind ältere Versionen von iOS Simulator mit dem iOS SDK identisch? - iOS, iOS-Simulator

Sind ältere Versionen von iOS Simulator identisch mit dem iOS SDK? - iOS, iOS-Simulator

Wie viele andere muss ich Anwendungen mit älteren Versionen des iOS SDK erstellen.

Wenn ich eine ältere Version des iOS-Simulators über die XCode-Voreinstellungen herunterlade, entspricht dies dem Herunterladen einer früheren Version des SDK?

Zum Beispiel, wenn ich heute XCode 6 herunterlade (iOS 8wurde gerade veröffentlicht), bekomme ich das iOS 8 SDK und einen Simulator. Wenn ich Apps für iOS 7 kompilieren und die Downloads-Funktion in den XCode-Einstellungen verwenden muss, um iOS 7.0 Simulator zu erhalten, ist das mit dem iOS 7.0 SDK geliefert?

In meinem Kopf ist der iOS 7.0 Simulator eine App. Wird das iOS 7 SDK mitgeliefert, damit Sie Ihre App für iOS 7-Kompatibilität erstellen können?

Antworten:

1 für die Antwort № 1

Ich glaube, ich verstehe, was Sie fragen, da die Antwort "Nein" lautet: Die iOS-Simulatoren sind nach der von ihnen simulierten Hardware und der von ihnen ausgeführten iOS-Version benannt iPhone 5s (7.1).

Xcode 6 wird nur mit iOS 8 SDK ausgeliefert. Dies ist das "Base SDK" (SDKROOT). Sie können es sich als "bestes Kompilierungsziel" oder "am besten unterstützte Version" vorstellen - es ist die SDK-Version, mit der Sie kompilieren. Das "Bereitstellungsziel" (IPHONEOS_DEPLOYMENT_TARGET) definiert die niedrigste unterstützte Version von iOS, die Sie unterstützen. Je älter Ihre App wird und je größer der Bereich zwischen den beiden ist, desto mehr müssen Sie die unterstützten Funktionen zur Laufzeit erkennen oder API-Unterschiede behandeln, z. B. wenn ein neuerer Aufruf auf neueren Plattformen bevorzugt wird und auf älteren Plattformen nicht mehr vorhanden ist.

Eine App, die mit (Base SDK) 7 kompiliert wurde.1 läuft auf iOS 8.0 Geräten. Sie können sich dies als "iOS 7-Modus" vorstellen. Ein besseres Beispiel war die Umstellung von iOS6 auf 7 - Apps, die mit iOS6.1 "Base SDK" kompiliert wurden, liefen auf iOS7-Geräten, sahen aber wie die alte Benutzeroberfläche aus. In dem Moment, als sie mit iOS7.x "Base SDK" kompiliert wurden, sahen sie für iOS6 oder 7 angemessen aus.

Ich habe eine App, die ich als "Base SDK" 7 unterstütze.Ich habe es gerade geschafft, das alte 7.1 SDK zu kopieren und dagegen zu kompilieren. Ehrlich gesagt, es ist mehr Ärger als es wert ist, IMHO. Wenn Sie noch über Xcode 5 verfügen und derzeit nur bis zu 7.1 benötigen, möchten Sie dies möglicherweise nur verwenden. Vorausgesetzt, dass iOS 8.0 nicht verfügbar ist und Ihre App neu ist, müssen Sie sich darüber wahrscheinlich keine Gedanken machen - Sie möchten wahrscheinlich nur sicherstellen, dass Sie iOS 7.x unterstützen, und das ist AOK.

Bei einer App, die (z.) hat ein Bereitstellungsziel von 7,0 und ein Basis-SDK von 8,0, alle Kompatibilitätsprobleme können von Ihnen gelöst werden. Einige Methoden verhalten sich möglicherweise anders (obwohl Apple sich bemüht, die API-Kompatibilität aufrechtzuerhalten), und andere Methoden sind veraltet oder nur anders. Die Dokumente machen einen ziemlich guten Job darin, Unterschiede und Abwertungen auszudrücken.


1 für die Antwort № 2

Nein, beim Herunterladen eines Simulators werden keine neuen hinzugefügtSDKs. Es gibt keine Notwendigkeit. Mit Xcode 6 sollten Ihre Apps ein Basis-SDK für iOS 8 haben. Sie können das Bereitstellungsziel auf 4.3 zurücksetzen (obwohl es jetzt irgendwie sinnlos ist, über 7.0 hinauszugehen). Auf diese Weise ist Ihre App unterstützt sowohl iOS 8 als auch iOS 7. Das iOS 7 SDK wird nicht benötigt.


1 für die Antwort № 3

Was ist dein brauchen für die älteren SDKs? Neuere SDKs enthalten Markups, mit denen Sie mit einem älteren Bereitstellungsziel auf das neuere SDK aufbauen können. Es wird mit größter Sorgfalt darauf geachtet, dass Sie kein älteres SDK benötigen. Wenn Sie aufgrund eines Problems kein neueres SDK verwenden können, stellen Sie sicher, dass Sie ein Radar auf ablegen http://bugreport.apple.com

Wenn Sie Apps kompilieren müssen, die unter iOS 7 ausgeführt werden, sollten Sie ein Bereitstellungsziel von 7.0 (oder 7.1, je nachdem, was Sie beabsichtigen) festlegen und nur das iOS 8.0 SDK verwenden.

--

Die iOS Simulator SDKs sind doppelt so groß wie die SDKsDas basiert auf und der Laufzeit (fast ein völlig separates Betriebssystem), mit der Ihre Simulator-Apps ausgeführt werden. Die iOS Simulator.app ist eine kleine Anwendung, die im Grunde das simulierte Gerät (über CoreSimulator.framework) startet und die E / A-Vorgänge verarbeitet.