Was bedeutet das Bereitstellungsziel?

96

Dies ist eine sehr einfache Frage, die ich annehme. Kann mir jemand sagen, was das Bereitstellungsziel bedeutet? Wenn ich mich für IOS 10 entscheide, bedeutet dies, dass nur Benutzer mit iOS 10 die App herunterladen können. Ist es schlecht, ein niedrigeres Bereitstellungsziel zu wählen? AUCH, wenn Sie das Bereitstellungsziel fortsetzen, wird nicht empfohlen, es auf einem niedrigeren Bereitstellungsziel auszuführen.

Michaelcode
quelle

Antworten:

127

Nehmen wir an, Sie haben ein Mindestbereitstellungsziel für iOS 9 festgelegt. Dies bedeutet, dass Ihre Anwendung für Geräte mit iOS 9 und höher kompatibel ist .

Die Anwendung kann nicht auf Geräten unter 9.0 ausgeführt werden, kann jedoch auf jeder iOS-Version ausgeführt werden, die größer als iOS 9.0 ist.

Manish Pathak
quelle
Kann ein Benutzer mit einer niedrigeren Version die App zumindest im App Store noch sehen?
Sagrian
1
@Sagrian Ja, sie können, aber es wird ihnen zeigen, dass es nicht mit ihrem Gerät Betriebssystem kompatibel ist
FreakyAli
Was ist der Unterschied zwischen Bereitstellungsziel und Informationen? Mit Xcode können Sie an zwei Stellen eine iOS-Version auswählen.
Daniel Springer
@DanielSpringer Durch Einstellen wird Deployment Targetletztendlich die Info.plist geändert. Dies ist eine bequeme Möglichkeit, die (wahrscheinlich) nach Xcode 4.x
Naveed Abbas
@NaveedAbbas Es tut mir leid, aber ich verstehe nicht, wie das antwortet. Warum zwei Orte? Wofür ist jeder?
Daniel Springer
14

Das Bereitstellungsziel bestimmt die Fähigkeit Ihrer App, auf älteren iOS-Versionen ausgeführt zu werden.

App with deployment target set to 10 will work on iOS version 10+ (10, 11, 12, 13 ...) but won't work on 9.x.

Wenn eine neue Version von iOS veröffentlicht wird, machen sich einige Benutzer nicht die Mühe, ihre Geräte auf die neueste iOS-Version zu aktualisieren, und somit auch nicht can't download your app from the App Store.

Beispiel

Wenn Sie ein höheres Bereitstellungsziel auswählen (e.g 12.1), kann Ihre App nicht für Benutzer heruntergeladen werden, die über die neuesten Geräte verfügen, jedoch über eine ältere iOS-Version (iPhone X mit 11.0). Im Gegensatz dazu Wenn Sie das niedrigstmögliche Bereitstellungsziel auswählen (e.g 6.0), versuchen Sie, Ihre App maximal abwärtskompatibel zu machen (selbst wenn jemand sein iOS seit Jahren nicht mehr aktualisiert hat, kann er Ihre App herunterladen).

VORSICHT

Viele (fast alle) neueren Frameworks und Funktionen können auf niedrigeren iOS-Versionen nicht ordnungsgemäß ausgeführt werden (Verhalten wie erwartet), was die Wahrscheinlichkeit von App-Abstürzen erhöht.

Was beeinflusst das Bereitstellungsziel?

Im Folgenden sind einige Faktoren aufgeführt, die ein höheres Bereitstellungsziel erfordern.

1) Verwenden des neuesten iOS SDK (allein)

2) Verwenden der neuesten iOS SDK-spezifischen Funktionen (Einschränkungen, neuere XIB-Dateien usw.).

3) Verwenden Sie schnell anpassbare externe Bibliotheken / Frameworks (z. B. Facebook SDK, Firebase usw.).

4) Eine höhere Swift-Version (5.0) erfordert ein höheres Bereitstellungsziel als das Schreiben Ihrer App in Legacy-Ziel C) !Needs citation.

LÖSUNG

Wir haben Deploymate für maximale Rückwärtsunterstützung verwendet. Es hilft uns hauptsächlich dabei, Folgendes zu warnen:

1) Neuere APIs, die unter niedrigeren iOS-Versionen nicht funktionieren

2) Verwenden veralteter Methoden, die unter neueren iOS-Versionen nicht funktionieren.

Zu diesem Zeitpunkt beginnen Sie mit der Korrektur Ihres Codes, um ihn für niedrigere iOS-Versionen für maximale Kompatibilität verfügbar zu machen.

Hinweis: Xcode informiert auch über verschiedene Fallstricke. Deploymate ist weder mit uns verbunden noch bezahlt er uns in irgendeiner Form. Sie können nach anderen Alternativen suchen.

Naveed Abbas
quelle
0

Deployment Target ist eine Mindestversion von iOS, die Ihr Ziel unterstützt.

Es bedeutet, dass:

  • Als Entwickler unterstützen Sie diese Version und können alle nächsten Kompatibilitäten unterstützen
  • Für einen Benutzer sollten Sie mindestens diese Version von iOS haben

So ändern Sie es in Xcode 11.5

Build Settings -> iOS Deployment Target
yoAlex5
quelle
-2

Wenn Sie Xcode noch nicht kennen, empfehle ich, die Standardeinstellung zu akzeptieren und sie als Einschränkung für Ihr Projekt zu betrachten.

Mit neueren Xcode-Versionen wird die Unterstützung älterer Zielwerte entfernt. Unternehmen mit umfangreichen Kundenstämmen müssen dieses Problem auf ihre eigene Weise lösen.

In den meisten Projekten, an denen ich gearbeitet habe, ist die iOS-Version wichtig, da sie vorschreibt, auf welchen Geräten Ihre Anwendung ausgeführt werden kann.

Beispielsweise hat iOS 10 im Wesentlichen alle iPod-Anschlüsse zurückgelassen.

benc
quelle
1
Downvotes, aber keine Kommentare ... nicht hilfreich ... Ich möchte hinzufügen, dass jetzt, da iOS 13 über Xcode 11 verfügbar ist, viele Standardziele für alte Projekte nach oben verschoben werden mussten.
Benc
Upvoted: nützliche Infos „aus den Gräben“. Wäre eher als Kommentar geeignet, aber trotzdem.
timmi4sa
Ich wäre lieber ein Pragmatiker mit einem etwas niedrigeren Repräsentanten. Xcode neu zu sein ist eine Menge zu verdauen.
Benc