Zum Beispiel wird der Name des Benutzers an die vollständige App übergeben und in der Hauptaktivität angezeigt. Dazu fügen Sie diese Informationen in die freigegebenen Benutzerstandards im App-Clip ein und extrahieren diese Informationen aus den freigegebenen Benutzerstandards in der vollständigen App.
Ich habe den App-Clip mit diesen Funktionen erstellt und möchte nun den Übergang vom App-Clip zur vollständigen App testen.
Ich habe drei verschiedene Ansätze ausprobiert, aber keiner davon hat es mir ermöglicht, das vollständige App-Clip-zur vollständigen App-Erlebnis zu simulieren:
- Ausführen des App-Clips in Xcode und Testen mit der Umgebungsvariablen _XCAppClipURL. Das SKOverlay wurde angezeigt, aber es ermöglicht mir nicht, den App Store zu öffnen.
- Beim Einrichten einer lokalen Erfahrung auf meinem Testgerät (wie hier erklärt) wurde auch das SKOverlay angezeigt, aber ich konnte den App Store nicht tatsächlich öffnen.
- Test Flight: Ich habe den Build in den App Store hochgeladen, um Test Flight zu verwenden, und eine App-Clip-Aufruf-URL zum internen und externen Testen hinzugefügt. Beim Öffnen des App-Clips mit Test Flight wurde ich über die Schaltfläche „Vollständige App herunterladen“ tatsächlich zum App Store weitergeleitet, allerdings zur alten Version der App. Es erübrigt sich zu erwähnen, dass die alte Version der App für den Test irrelevant ist, da sie nicht über den Code verfügt, der zum Extrahieren des Benutzernamens aus den gemeinsamen Benutzerstandards erforderlich ist.
BEARBEITEN: Ich verwende die UserDefaults mit einer App-Gruppe. Ich habe im Abschnitt „Signatur und Funktionen“ sowohl der vollständigen App als auch des App-Clips eine App-Gruppe mit demselben Namen definiert. Und den folgenden Code hinzugefügt:
Im Szenendelegierten des App-Clips:
Code: Select all
let username = "Oded"
guard let sharedUserDefaults = UserDefaults(suiteName: "group.fruitapp.appClipToFullApp") else {
return true
}
if sharedUserDefaults.string(forKey: "username") == nil {
sharedUserDefaults.set(username, forKey: "username")
}
return true
Code: Select all
guard let sharedUserDefaults = UserDefaults(suiteName: "group.fruitapp.appClipToFullApp"),
let username = sharedUserDefaults.url(forKey: "username")
else {
print("Could not find the App Group or the usename from the app clip")
return
}
print("username is \(username)")
//Do more stuff
Mobile version