VisionOS 2 Beta 4 Versionshinweise: Was gibt es Neues?
Apple hat kürzlich die vierte Beta-Version von visionOS 2 veröffentlicht, dem Betriebssystem, das die Zukunft des räumlichen Computings auf Apple Vision Pro definiert. Diese neue Beta bringt eine Vielzahl von Verbesserungen,Fehlerbehebungen und neuen Funktionen mit sich. In diesem Blog-Artikel werden wir uns einige der wichtigsten Änderungen ansehen, die Entwickler und Nutzer gleichermaßen interessieren dürften.
Allgemeine Hinweise
- Entwicklung für visionOS: Um Apps für visionOS zu entwickeln, benötigen Sie einen Mac mit Apple Silicon.
Barrierefreiheit
Fehlerbehebungen:
- Volle Tastaturbedienung: Die volle Tastaturbedienung kann jetzt mit modalen Popups interagieren, einschließlich der Aufforderung zum Deaktivieren der Funktion.
- Switch Control und VoiceOver: Nutzer von Switch Control und VoiceOver können jetzt Elemente im Menü “Bedienungshilfen” auf dem OpticID-Bildschirm der Einrichtung auswählen.
App-Platzierung
Neue Funktionen:
- Maximale Platzierungsentfernung erhöht: Benutzer haben jetzt mehr Flexibilität beim Platzieren von Apps, ohne sich näher an die gewünschte Position bewegen zu müssen.
- Automatische Neigung volumetrischer Fenster: Volumetrische Fenster-Apps, die mit dem visionOS 2 SDK aktualisiert wurden, neigen sich jetzt automatisch zum Benutzer, wenn ein Volume nach oben bewegt wird.Entwickler können dieses Verhalten für bestimmte Fenster deaktivieren.
App Store
Neue Funktionen:
- Erhöhte On-Demand-Ressourcen-Limits: Die Limits für On-Demand-Ressourcen wurden für iOS 18, iPadOS 18, tvOS 18 und visionOS 2 erhöht.
Apps
Fehlerbehebungen:
- Neupositionierung von Apps: Apps werden jetzt korrekt neu positioniert, wenn sie neu gestartet oder neu zentriert werden.
- Pages: Das Dokumentmanager-Fenster wird nicht mehr über dem Erste Schritte-Fenster angezeigt.
- Kompatible Apps: Kompatible iPhone- und iPad-Apps mit einem niedrigeren Deployment-Target als iOS 18 bestehen jetzt die Verfügbarkeitsprüfungen für iOS 18.
- Abdunkelung: Wenn Apps .ultraDark-Abdunkelung anfordern und sich in einer nicht-immersiven Szene befinden,wird die Abdunkelung auf .dark begrenzt. .ultraDark ist weiterhin in immersiven Apps verfügbar.
ARKit
Fehlerbehebungen:
- QR-Code-Erkennung verbessert: QR-Codes der Versionen 25 und 40 können jetzt besser erkannt werden.
- Barcode-Erkennung: Die BarcodeAnchor-Ausdehnung enthält jetzt die richtigen Werte und ändert sich nicht mehr unerwartet zwischen Updates.
- Objekterkennung: Die Objekterkennung funktioniert jetzt auch beim ersten Mal nach der Autorisierung.
- RoomAnchors: RoomAnchors werden jetzt aktualisiert, nachdem der Benutzer den Reisemodus beendet hat.
- Stabilität: Abstürze im Zusammenhang mit der Objekterkennung und der Verwendung mehrerer ARKit-Sitzungen wurden behoben.
- Aztec-Code-Erkennung: Die Ankerpunkt- und Begrenzungsrahmenberechnung bei der Erkennung von Aztec-Codes wurde korrigiert.
Weitere wichtige Änderungen
- Audio: Der Hall passt sich jetzt nach jedem Neustart des Geräts automatisch an den Raum an.
- AVKit: AVPlayerViewControllers werden nicht mehr automatisch stummgeschaltet, wenn der Benutzer die Lautstärke über die Systemsteuerung anpasst.
- CFNetwork: Änderungen an CFNetworkExecuteProxyAutoConfigurationScript und CFNetworkExecuteProxyAutoConfigurationURL könnten zu Quellcodeänderungen führen.
- Kompatible Apps: Apps können jetzt aus dem Ordner “Kompatible Apps” heraus verschoben und neben Apps platziert werden, die für visionOS entwickelt wurden.
- Kontakte: Die Liste der blockierten Kontakte wird nach einer Neuinstallation möglicherweise erst nach einiger Zeit heruntergeladen.
- Entwicklereinstellungen: Die Hängerkennung zur Identifizierung von Leistungsproblemen in Apps ist jetzt auch auf visionOS verfügbar.
- Umgebungen: Umgebungen werden jetzt nach dem Aufsetzen des Geräts bei schwachem Licht oder nach einem Trackingverlust sofort angezeigt.
- Dateien: Das Erstellen lokaler Dateien in der Dateien-App schlägt im visionOS 2- und iOS 18-Simulator fehl,wenn der Host nicht auf macOS Sequoia Beta aktualisiert wurde.
- Foundation: JSONEncoder.OutputFormatting.sortedKeys sortiert Schlüssel jetzt lexikografisch basierend auf dem UTF-8-Inhalt der Schlüssel.
- Game Controller: Gamecontroller können jetzt zur Interaktion mit der Systemoberfläche auf visionOS verwendet werden. Apps, die das Game Controller Framework verwenden, müssen eine Instanz von GCEventInteraction hinzufügen oder einen handlesGameControllerEvents-Modifikator anwenden.
- HealthKit: Der Zugriff auf HealthKit ist jetzt auch für iPhone- oder iPad-Anwendungen verfügbar, die mit iOS 17- und visionOS 1-ausgerichteten SDKs erstellt wurden.
- Home View: App-Symbole können jetzt neu angeordnet werden, Umgebungssymbole werden in Stereo gerendert,und Umgebungen können aus der Home View entfernt werden.
- iCloud Drive: iCloud Drive wurde aktualisiert und ist im Simulator möglicherweise nicht verfügbar, wenn der Host nicht das neueste macOS Sequoia verwendet.
- ImmersiveSpace: Der immersionStyle kann jetzt direkt von .mixed zu .progressive wechseln, wenn die App Animationen für die umgebende Transaktion deaktiviert.
- Tastatur: Die Tastatur wechselt jetzt automatisch zur Standardsprache zurück, wenn sie zuvor in einem englischsprachigen Textfeld verwendet wurde.
- Mac Virtual Display: Entwickler können jetzt Mac Virtual Display in Anwendungen mit ImmersiveSpaces verwenden.
- Mail: Der Mail-Badge-Zähler wird jetzt aktualisiert, ohne dass Mail gestartet werden muss.
- Karten: Einführung der Place ID, neuer resultTypes für MKLocalSearch.Request, zusätzlicher PointofInterestCategory-Werte und der Place Card API.
- MarketplaceKit: Ein Problem wurde behoben, bei dem iPhone- und iPad-Apps auf Apple Silicon Mac und Apple Vision Pro unerwartet beendet wurden, wenn MarketplaceKit verknüpft ist.
- Medienwiedergabe: Beim Ansehen von Vollbildvideos in einer Umgebung können Benutzer jetzt die Digital Crown gedrückt halten oder das Video in den gewünschten Winkel heben, bevor sie die Umgebung über die Videosteuerung aktivieren.
- Menüs: Bearbeitungsmenüs und die PencilKit-Palette werden jetzt in UI-Erweiterungen korrekt angezeigt, wenn die Fenstergröße auf Klein oder Mittel eingestellt ist.
- Mobile Geräteverwaltung: Die MDM-Einschränkung allowFingerprintModification verhindert nicht mehr, dass Benutzer ihre Optic ID-Einstellungen ändern.
- Multiview: Eine Reihe von Symbolen in der AVExperienceController-API wurde umbenannt und es wurden weitere Änderungen an Multiview-bezogenen Symbolen vorgenommen.
- Netzwerk: Der Standardwert für den User-Agent-Anforderungsheader enthält jetzt den nicht lokalisierten Bundle-Namen anstelle des lokalisierten Bundle-Namens.
- Objekterkennung: Referenzobjekte sollten auf macOS Beta 2.0 oder höher neu trainiert werden, um sicherzustellen, dass sie den Fix für ein bekanntes Problem mit persistenten Objektankern übernehmen.
- Fotos SharePlay: SharePlay-Teilnehmer bleiben nicht mehr im Ladebildschirm hängen, wenn sie Videos in nachfolgenden SharePlay-Sitzungen teilen.
- Plattform: Das Firmware-Image für iBoot wird jetzt im Klartext im PCC-Image bereitgestellt.
- Vorschauen: Das Auslösen einer On-Device-Vorschau funktioniert jetzt zuverlässig.
- Reality Composer Pro: Die Anzahl der Textkoordinaten wurde von 2 auf 8 erweitert.
- RealityKit: USD-Dateien, die Blend-Shapes oder Catmull-Clark-Unterteilung verwenden, werden jetzt in RealityKit gerendert. Es wurden außerdem zahlreiche Fehler behoben und einige Änderungen vorgenommen.
- Szenen: Anwendungsszenen werden jetzt nach dem Neustart von Apple Vision Pro in ihrem vorherigen Zustand und ihrer relativen Platzierung wieder geöffnet.
- Bildschirmzeit: Eltern können jetzt aus der Ferne 15-minütige, 1-stündige oder ganztägige Ausnahmen für Apps oder Websites genehmigen.
- Einstellungen: Es wurden mehrere Fehler in den Einstellungen behoben, darunter die Anzeige falscher Verschreibungswerte, Speicherkapazitäten und Abstürze beim Navigieren zu den Speichereinstellungen.
- Kurzbefehle: Es wurden Fehler behoben, die dazu führten, dass Aktionen nicht im Aktionsbereich angezeigt wurden oder neue Aktionen angeboten wurden, die noch nicht einsatzbereit waren.
- StoreKit: Das SubscriptionStoreView unterstützt jetzt benutzerdefinierte Steuerungsstile und bietet neue Standardstile für die Anordnung von Steuerelementen mit kompakter Höhe.
- Swift: Ein Problem wurde behoben, bei dem vorkompilierte Apps mit benutzerdefinierten Typen, die dem AsyncSequence-Protokoll entsprechen, zu einer Endlosrekursion in der swift_getAssociatedTypeWitness()-Funktion in der Swift-Laufzeit auf neuen Betriebssystemversionen führen konnten.
- Swift Charts: Plotten Sie mathematische Funktionen mit LinePlot und AreaPlot und visualisieren Sie große Datensätze effizienter mit vektorisierten Plot-APIs.
Behobene Probleme
- Animation von Outline Lists: Outline Lists werden nun korrekt animiert.
- Ausgabe von
View._printChanges
:View._printChanges
gibt nun den Schlüsselpfad mutierter beobachtbarer Eigenschaften anstelle von “@dependencies” aus. - Assertion für App-Protokoll: SwiftUI stellt nun sicher, dass Typen, die das
App
-Protokoll erfüllen, Werttypen sind. - Batterieverbrauch von Text: Das automatische Aktualisieren von
Text
, das überText(_:style:)
oderText(timerInterval:pauseTime:countsDown:showsHours:)
erstellt wurde, führte zu einem erhöhten Batterieverbrauch, wenn es in lang laufenden Live-Aktivitäten verwendet wurde. Dieses Problem wurde behoben. - upperLimbVisibility-Modifikator: In Apps, die gegen das visionOS 2 SDK erstellt wurden, unterscheidet der
upperLimbVisibility
-Modifikator nun korrekt zwischen den drei möglichenVisibility
-Wertenautomatic
,visible
undhidden
, sowohl wenn er alsView
-Modifikator als auch alsScene
-Modifikator angewendet wird. - Berichterstattung von app scenePhase:
app scenePhase
meldet nun als aktiv, wenn mindestens eine Szene aktiv ist. - Interaktion in Scroll-Ansichten: Scroll-Ansichten können nun Interaktionen in ihren Inhalts-Insets akzeptieren.
- navigationDestination-Modifikatoren in Lazy-Containern:
.navigationDestination(for:destination)
-Modifikatoren innerhalb von Lazy-Containern werden nicht mehr ausgewertet. - Erkennung von Gesten: Gesten erkennen nun möglicherweise eine modifizierte Inhaltsform, z. B. wenn der tippbare Bereich einer Schaltfläche vergrößert wird.
- TextField-Ausrichtung in visionOS 2: Wenn das visionOS 2 SDK verwendet wird, um ein
TextField
entlang der vertikalen Achse auszurichten, verfügt es nun über einen vertikalen Rand von 2,0 pt und einen horizontalen Rand von 16,0 pt, wenn der Stil auf.roundedRect
gesetzt ist. - Vergleich von NavigationPath-Elementen: Elemente entlang eines
NavigationPath
oder die an denpath
-Parameter vonNavigationStack(path:root:)
übergebene Datenstruktur werden nun effizienter verglichen. - Zurücksetzen des Root-View-Status: Der Status der Root-Ansicht von
UIHostingConfiguration
wird nun zurückgesetzt, bevor die zugehörige Zelle angezeigt wird. - Kompilierzeitdiagnose:
SceneBuilder
,WidgetBundleBuilder
,TableColumnBuilder
,TableRowBuilder
,CommandsBuilder
undToolbarContentBuilder
diagnostizieren nun nicht unterstützteif #available
-Bedingungen zur Kompilierzeit, anstatt zur Laufzeit abzustürzen. - Layer-Erstellung:
UIViewRepresentable
,NSViewRepresentable
und ihre View-Controller-Varianten erstellen keine Layer mehr mitallowsGroupOpacity
, das auftrue
gesetzt ist. - Optimierte Textausgabe: In bestimmten Szenarien erzeugte
Text(_:style:)
eine suboptimale Ausgabe, z. B. die Wahl einer unnötig kleinen Kalendereinheit, das Anzeigen von Nullwerten für große Kalendereinheiten, anstatt sie wegzulassen, oder das Anzeigen von Sekunden im Always-On-Display. Dieses Problem wurde behoben. - Reduzierung von Sekundenwerten:
Text(timerInterval:pauseTime:countsDown:showsHours:)
reduzierte den Sekundenwert, auch wenn der Timer pausiert war, noch nicht gestartet war oder bereits sein Ende erreicht hatte.Dieses Problem wurde behoben. - Berührungsempfang von Scroll-Ansichten: Scroll-Ansichten empfingen keine Berührungen, wenn sie sich in der Nähe eines tippbaren Steuerelements befanden. Dieses Problem wurde behoben.
- Programmgesteuerte Größenänderung von Volumes oder Fenstern: Beim programmgesteuerten Ändern der Größe eines Volumes oder Fensters können Inhalte während des Übergangs vorübergehend falsch ausgerichtet und zugeschnitten werden, und die Übergangsanimation kann nicht geändert werden. Dieses Problem wurde behoben.
- Öffnen von Volumes außerhalb des Haupt-Threads: Das Öffnen von Volumes außerhalb des Haupt-Threads löst nun korrekt einen Fehler aus.
- Anfängliche Immersion in progressiven Apps: Apps, die den progressiven Immersionsmodus verwenden,beginnen mit einer geringeren anfänglichen Immersion als unter visionOS 1. Dieses Problem wurde behoben.
- Standardmäßige Präsentationsgröße für Sheets: Sheets, die mit dem
.sheet
-Modifikator präsentiert werden,haben standardmäßigFittedPresentationSizing
. Dies kann dazu führen, dass Sheets je nach Inhalt zu schmal oder zu groß erscheinen. Dieses Problem wurde behoben. - @Entry-Makro im Swift 6-Modus: Im Swift 6-Sprachmodus funktioniert das
@Entry
-Makro nun mit Nicht-Sendable-Typen, wenn der Typ des Eintrags explizit deklariert wird. - Positionierung von Szeneninhalten in Volumes: In Volumes können Szeneninhalte höher und weiter entfernt positioniert sein, und die App kann möglicherweise schwierig neu positioniert werden. Dieses Problem wurde behoben.
- Absturz von SwiftUI-Apps auf dem visionOS 1.2-Simulator: SwiftUI-Apps, die mit Xcode 16 Beta erstellt wurden, stürzten beim Ausführen auf dem visionOS 1.2-Simulator ab. Dieses Problem wurde behoben.
- Fehlerhafte Immersionsberichterstattung: Die gemeldete Immersion konnte falsch sein, nachdem vor dem Öffnen des immersiven Raums zwischen verschiedenen Immersionsmodi gewechselt wurde. Dieses Problem wurde behoben.
Fazit
Das visionOS 2 SDK bringt eine Reihe von Verbesserungen und Fehlerbehebungen für SwiftUI-Entwickler. Mit diesen Änderungen können Sie noch bessere und zuverlässigere Apps für visionOS erstellen.
Hinweis: Einige der oben genannten Änderungen gelten möglicherweise nur für bestimmte Plattformen oder erfordern spezifische SDK-Versionen. Lesen Sie die offizielle Dokumentation für weitere Details.
Haftungsausschluss: Dieser Blog-Artikel dient nur zu Informationszwecken. Die Informationen können sich ändern und es wird keine Gewähr für die Richtigkeit oder Vollständigkeit übernommen.
Keywords: SwiftUI, visionOS 2, Neue Funktionen, Fehlerbehebungen, Apple, SDK, App-Entwicklung
Bleiben Sie auf dem Laufenden!