Mit der Firebase Dynamic Links Builder API können Sie kurze oder lange Dynamic Links erstellen. Diese API akzeptiert entweder einen langen Dynamic Link oder ein Objekt mit Dynamic Link Parametern und gibt URLs wie in den folgenden Beispielen zurück:
https://example.com/link/WXYZ https://example.page.link/WXYZ
Vorbereitung
Bevor Sie beginnen, müssen Sie Ihrem iOS -Projekt Firebase hinzufügen.
Firebase und das Dynamic Links SDK einrichten
Verwenden Sie Swift Package Manager, um Firebase-Abhängigkeiten zu installieren und zu verwalten.
- Öffnen Sie Ihr App-Projekt und gehen Sie in Xcode zu File > Add Packages (Datei > Pakete hinzufügen).
- Fügen Sie bei entsprechender Aufforderung das Firebase Apple Platforms SDK-Repository hinzu:
- Wählen Sie die Dynamic Links-Bibliothek aus.
- Fügen Sie den Flag
-ObjCim Bereich Other Linker Flags (Weitere Verknüpfungsmerker) der Build-Einstellungen Ihres Ziels hinzu. - Für eine optimale Nutzung von Dynamic Links empfehlen wir die Aktivierung von Google Analytics in Ihrem Firebase-Projekt und das Hinzufügen des Firebase SDK für Google Analytics zu Ihrer App. Sie können entweder die Bibliothek ohne IDFA-Erfassung oder mit IDFA-Erfassung auswählen. Weitere Informationen finden Sie in unseren FAQs zur aktuellen Organisation von Modulen im Google Analytics for Firebase SDK.
- Wenn Sie fertig, beginnt Xcode automatisch, Ihre Abhängigkeiten im Hintergrund aufzulösen und herunterzuladen.
https://github.com/firebase/firebase-ios-sdk.git
Führen Sie nun einige Konfigurationsschritte aus:
- Öffnen Sie in der Firebase Console den Dynamic Links Bereich.
-
Wenn Sie die Nutzungsbedingungen noch nicht akzeptiert und kein URI-Präfix für Ihre Dynamic Links festgelegt haben, tun Sie dies, wenn Sie dazu aufgefordert werden.
Notieren Sie sich das Dynamic Links URI-Präfix, falls Sie bereits eines haben. Sie müssen es angeben, wenn Sie Dynamic Links programmatisch erstellen.

- Empfohlen: Geben Sie die in Ihren Deeplinks und Fallback-Links zulässigen URL-Muster an. So verhindern Sie, dass unbefugte Dritte Dynamic Links erstellen, die von Ihrer Domain zu Websites weiterleiten, die Sie nicht kontrollieren. Weitere Informationen finden Sie unter Bestimmte URL-Muster zulassen.
-
Achten Sie darauf, dass die App Store-ID und das App-ID-Präfix Ihrer App in den Einstellungen der App angegeben sind. Wenn Sie die Einstellungen Ihrer App aufrufen und bearbeiten möchten, rufen Sie die Seite Einstellungen Ihres Firebase-Projekts auf und wählen Sie Ihre iOS-App aus.
Öffnen Sie die Datei
apple-app-site-association, die auf Ihrer Dynamic Links Domain gehostet wird, um zu bestätigen, dass Ihr Firebase-Projekt richtig konfiguriert ist, um Dynamic Links in Ihrer iOS-App zu verwenden. Firebase stellt dieapple-app-site-associationDatei sowohl im Stammverzeichnis der Domain als auch im.well-knownUnterverzeichnis bereit. Beispiel:https://example.com/apple-app-site-association https://example.com/.well-known/apple-app-site-associationWenn Ihre App verbunden ist, enthält die
apple-app-site-associationDatei einen Verweis auf das App-ID-Präfix und die Paket-ID Ihrer App. Beispiel:{"applinks":{"apps":[],"details":[{"appID":"1234567890.com.example.ios","paths":["/*"]}]}}Wenn die Eigenschaft
detailsleer ist, prüfen Sie noch einmal, ob Sie das App-ID-Präfix angegeben haben. Beachten Sie, dass Ihr App-ID-Präfix möglicherweise nicht mit Ihrer Team-ID identisch ist.
Firebase zu Ihrer Anwendung hinzufügen
- Importieren Sie das
FirebaseCoreModul in IhrUIApplicationDelegate, sowie alle anderen Firebase-Module, die Ihr App-Delegat verwendet. Beispiel: Cloud Firestore und Authentication verwenden:SwiftUI
import SwiftUI import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Swift
import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Objective-C
@import FirebaseCore; @import FirebaseFirestore; @import FirebaseAuth; // ...
- Konfigurieren Sie eine
FirebaseAppfreigegebene Instanz in derapplication(_:didFinishLaunchingWithOptions:)Methode Ihres App-Delegaten:SwiftUI
// Use Firebase library to configure APIs FirebaseApp.configure()
Swift
// Use Firebase library to configure APIs FirebaseApp.configure()
Objective-C
// Use Firebase library to configure APIs [FIRApp configure];
- Wenn Sie SwiftUI verwenden, müssen Sie einen App-Delegaten erstellen und ihn
an Ihre
AppStruktur überUIApplicationDelegateAdaptoroderNSApplicationDelegateAdaptoranhängen. Außerdem müssen Sie das Swizzling des App-Delegaten deaktivieren. Weitere Informationen finden Sie in der SwiftUI-Anleitung.SwiftUI
@main struct YourApp: App { // register app delegate for Firebase setup @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate var body: some Scene { WindowGroup { NavigationView { ContentView() } } } }
Firebase Console verwenden
Wenn Sie einen einzelnen Dynamic Link generieren möchten, entweder zu Testzwecken oder damit Ihr Marketingteam ganz einfach einen Link erstellen kann, der beispielsweise in einem Social-Media-Post verwendet werden kann, ist es am einfachsten, die Firebase console aufzurufen und einen Link manuell über das Schritt-für-Schritt-Formular zu erstellen.
iOS Builder API verwenden
Mit der iOS Builder API können Sie Dynamic Links aus Parametern erstellen oder einen langen Dynamic Link kürzen.
Ein Dynamic Link aus Parametern erstellen
Erstellen Sie ein neues DynamicLinkComponents-Objekt
, um ein Dynamic Link zu erstellen, und geben Sie die Dynamic Link-Parameter an, indem Sie die entsprechenden
Eigenschaften des Objekts festlegen. Rufen Sie dann den langen Link über die Eigenschaft url
des Objekts ab oder rufen Sie shorten() auf, um den kurzen Link zu erhalten.
Im folgenden Minimalbeispiel wird ein langer Dynamic Link zu
https://www.example.com/my-page erstellt, der unter iOS mit Ihrer iOS-App und unter Android mit der App com.example.android geöffnet wird:
Swift
guard let link = URL(string: "https://www.example.com/my-page") else { return } let dynamicLinksDomainURIPrefix = "https://example.com/link" let linkBuilder = DynamicLinkComponents(link: link, domainURIPrefix: dynamicLinksDomainURIPRefix) linkBuilder.iOSParameters = DynamicLinkIOSParameters(bundleID: "com.example.ios") linkBuilder.androidParameters = DynamicLinkAndroidParameters(packageName: "com.example.android") guard let longDynamicLink = linkBuilder.url else { return } print("The long URL is: \(longDynamicLink)")
Objective-C
NSURL *link = [[NSURL alloc] initWithString:@"https://www.example.com/my-page"]; NSString *dynamicLinksDomainURIPrefix = @"https://example.com/link"; FIRDynamicLinkComponents *linkBuilder = [[FIRDynamicLinkComponents alloc] initWithLink:link domainURIPrefix:dynamicLinksDomainURIPrefix]; linkBuilder.iOSParameters = [[FIRDynamicLinkIOSParameters alloc] initWithBundleID:@"com.example.ios"]; linkBuilder.androidParameters = [[FIRDynamicLinkAndroidParameters alloc] initWithPackageName:@"com.example.android"]; NSLog(@"The long URL is: %@", linkBuilder.url);
Erstellen Sie auf dieselbe Weise ein DynamicLinkComponents-Objekt, um einen kurzen Dynamic Link zu erstellen, und rufen Sie dann shorten() auf.
Für die Erstellung eines kurzen Links ist ein Netzwerkaufruf erforderlich. Daher wird der Link nicht direkt
zurückgegeben, sondern shorten() akzeptiert einen Completion-Handler, der
aufgerufen wird, wenn die Anfrage abgeschlossen ist. Beispiel:
Swift
linkBuilder.shorten() { url, warnings, error in guard let url = url, error != nil else { return } print("The short URL is: \(url)") }
Objective-C
[linkBuilder shortenWithCompletion:^(NSURL * _Nullable shortURL, NSArray<NSString *> * _Nullable warnings, NSError * _Nullable error) { if (error || shortURL == nil) { return; } NSLog(@"The short URL is: %@", shortURL); }];
Standardmäßig werden kurze Dynamic Links mit 17-stelligen Link-Suffixen generiert, wodurch es äußerst unwahrscheinlich ist, dass jemand einen gültigen Dynamic Link erraten kann. Wenn es für Ihren Anwendungsfall kein Problem darstellt, wenn jemand einen kurzen Link errät, können Sie Suffixe generieren, die nur so lang sind, wie für die Eindeutigkeit erforderlich. Dazu legen Sie die dynamicLinkComponentsOptions Eigenschaft fest:
Swift
linkBuilder.options = DynamicLinkComponentsOptions() linkBuilder.options.pathLength = .short linkBuilder.shorten() { url, warnings, error in guard let url = url, error != nil else { return } print("The short URL is: \(url)") }
Objective-C
linkBuilder.dynamicLinkComponentsOptions = [[FIRDynamicLinkComponentsOptions alloc] init]; linkBuilder.dynamicLinkComponentsOptions.pathLength = FIRShortDynamicLinkPathLengthShort; [linkBuilder shortenWithCompletion:^(NSURL * _Nullable shortURL, NSArray<NSString *> * _Nullable warnings, NSError * _Nullable error) { if (error || shortURL == nil) { return; } NSLog(@"The short URL is: %@", shortURL); }];
Dynamic Link Parameter
Mit der Dynamic Link Builder API können Sie Dynamic Links mit allen unterstützten Parametern erstellen. Weitere Informationen finden Sie in der API-Referenz.
Im folgenden Beispiel wird ein Dynamic Link mit mehreren gängigen Parametern erstellt:
Swift
guard let link = URL(string: "https://www.example.com/my-page") else { return } let dynamicLinksDomainURIPrefix = "https://example.com/link" let linkBuilder = DynamicLinkComponents(link: link, domainURIPRefix: dynamicLinksDomainURIPrefix) linkBuilder.iOSParameters = DynamicLinkIOSParameters(bundleID: "com.example.ios") linkBuilder.iOSParameters.appStoreID = "123456789" linkBuilder.iOSParameters.minimumAppVersion = "1.2.3" linkBuilder.androidParameters = DynamicLinkAndroidParameters(packageName: "com.example.android") linkBuilder.androidParameters.minimumVersion = 123 linkBuilder.analyticsParameters = DynamicLinkGoogleAnalyticsParameters(source: "orkut", medium: "social", campaign: "example-promo") linkBuilder.iTunesConnectParameters = DynamicLinkItunesConnectAnalyticsParameters() linkBuilder.iTunesConnectParameters.providerToken = "123456" linkBuilder.iTunesConnectParameters.campaignToken = "example-promo" linkBuilder.socialMetaTagParameters = DynamicLinkSocialMetaTagParameters() linkBuilder.socialMetaTagParameters.title = "Example of a Dynamic Link" linkBuilder.socialMetaTagParameters.descriptionText = "This link works whether the app is installed or not!" linkBuilder.socialMetaTagParameters.imageURL = "https://www.example.com/my-image.jpg" guard let longDynamicLink = linkBuilder.url else { return } print("The long URL is: \(longDynamicLink)")
Objective-C
NSURL *link = [[NSURL alloc] initWithString:@"https://www.example.com/my-page"]; NSString *dynamicLinksDomainURIPrefix = @"https://example.com/link"; FIRDynamicLinkComponents *linkBuilder = [[FIRDynamicLinkComponents alloc] initWithLink:link domainURIPrefix:dynamicLinksDomainURIPrefix]; linkBuilder.iOSParameters = [[FIRDynamicLinkIOSParameters alloc] initWithBundleID:@"com.example.ios"]; linkBuilder.iOSParameters.appStoreID = @"123456789"; linkBuilder.iOSParameters.minimumAppVersion = @"1.2.3"; linkBuilder.androidParameters = [[FIRDynamicLinkAndroidParameters alloc] initWithPackageName:@"com.example.android"]; linkBuilder.androidParameters.minimumVersion = 123; linkBuilder.analyticsParameters = [[FIRDynamicLinkGoogleAnalyticsParameters alloc] initWithSource:@"orkut" medium:@"social" campaign:@"example-promo"]; linkBuilder.iTunesConnectParameters = [[FIRDynamicLinkItunesConnectAnalyticsParameters alloc] init]; linkBuilder.iTunesConnectParameters.providerToken = @"123456"; linkBuilder.iTunesConnectParameters.campaignToken = @"example-promo"; linkBuilder.socialMetaTagParameters = [[FIRDynamicLinkSocialMetaTagParameters alloc] init]; linkBuilder.socialMetaTagParameters.title = @"Example of a Dynamic Link"; linkBuilder.socialMetaTagParameters.descriptionText = @"This link works whether the app is installed or not!"; linkBuilder.socialMetaTagParameters.imageURL = @"https://www.example.com/my-image.jpg"; NSLog(@"The long URL is: %@", linkBuilder.url);
Sie können Dynamic Link Parameter mit den folgenden Objekten und Eigenschaften festlegen:
| DynamicLinkComponents | |
|---|---|
| Link |
Der Link, den Ihre App öffnet. Geben Sie eine URL an, die von Ihrer App verarbeitet werden kann, in der Regel die Inhalte oder Nutzlast der App, die eine appspezifische Logik initiiert (z. B. dem Nutzer einen Gutschein gutschreiben oder einen Begrüßungsbildschirm anzeigen). Dieser Link muss eine korrekt formatierte URL sein, ordnungsgemäß URL-codiert sein, entweder HTTP oder HTTPS verwenden und darf kein anderer Dynamic Link sein. |
| domainURIPrefix | Ihr Dynamic Link URL-Präfix, das Sie in der Firebase Konsole finden. Eine
Dynamic Link Domain sieht so aus:
https://example.com/link https://example.page.link |
| DynamicLinkAndroidParameters | |
|---|---|
| fallbackURL | Der Link, der geöffnet werden soll, wenn die App nicht installiert ist. Geben Sie dies an, um etwas anderes zu tun, als die App aus dem Google Play Store zu installieren, wenn sie nicht installiert ist, z. B. die mobile Webversion der Inhalte zu öffnen oder eine Werbeseite für Ihre App anzuzeigen. |
| minimumVersion | Der versionCode der Mindestversion Ihrer App, mit der der Link geöffnet werden kann. Wenn die installierte App eine ältere Version ist, wird der Nutzer zum Google Play Store weitergeleitet, um die App zu aktualisieren. |
| DynamicLinkIOSParameters | |
|---|---|
| appStoreID | Die App Store-ID Ihrer App, die verwendet wird, um Nutzer zum App Store weiterzuleiten, wenn die App nicht installiert ist. |
| fallbackURL | Der Link, der geöffnet werden soll, wenn die App nicht installiert ist. Geben Sie dies an, um etwas anderes zu tun, als die App aus dem App Store zu installieren, wenn sie nicht installiert ist, z. B. die mobile Webversion der Inhalte zu öffnen oder eine Werbeseite für Ihre App anzuzeigen. |
| customScheme | Das benutzerdefinierte URL-Schema Ihrer App, falls es sich von der Paket-ID Ihrer App unterscheidet. |
| iPadFallbackURL | Der Link, der auf iPads geöffnet werden soll, wenn die App nicht installiert ist. Geben Sie dies an, um etwas anderes zu tun, als die App aus dem App Store zu installieren, wenn sie nicht installiert ist, z. B. die Webversion der Inhalte zu öffnen oder eine Werbeseite für Ihre App anzuzeigen. |
| iPadBundleID | Die Paket-ID der iOS-App, die auf iPads verwendet werden soll, um den Link zu öffnen. Die App muss auf der Übersichtsseite der Firebase Console mit Ihrem Projekt verbunden sein. |
| minimumAppVersion | Die Versionsnummer der Mindestversion Ihrer App, mit der der Link geöffnet werden kann. Dieser Flag wird an Ihre App übergeben, wenn sie geöffnet wird, und Ihre App muss entscheiden, was damit geschehen soll. |
| DynamicLinkNavigationInfoParameters | |
|---|---|
| forcedRedirectEnabled | Wenn dieser Parameter auf „1“ gesetzt ist, wird die App-Vorschauseite übersprungen, wenn der Dynamic Link geöffnet wird, und stattdessen wird zur App oder zum Store weitergeleitet. Die App-Vorschauseite (standardmäßig aktiviert) kann Nutzer zuverlässiger zum am besten geeigneten Ziel weiterleiten, wenn sie Dynamic Links in Apps öffnen. Wenn Sie jedoch davon ausgehen, dass ein Dynamic Link nur in Apps geöffnet wird, die Dynamic Links zuverlässig ohne diese Seite öffnen können, können Sie sie mit diesem Parameter deaktivieren. Dieser Parameter wirkt sich nur auf das Verhalten des Dynamic Link unter iOS aus. |
| DynamicLinkSocialMetaTagParameters | |
|---|---|
| Titel | Der Titel, der verwendet werden soll, wenn der Dynamic Link in einem Social-Media-Post geteilt wird. |
| descriptionText | Die Beschreibung, die verwendet werden soll, wenn der Dynamic Link in einem Social-Media-Post geteilt wird. |
| imageURL | Die URL zu einem Bild, das mit diesem Link verknüpft ist. Das Bild sollte mindestens 300 × 200 Pixel groß und kleiner als 300 KB sein. |
| DynamicLinkGoogleAnalyticsParameters | |
|---|---|
| Quelle Medium Kampagne Begriff Inhalt |
Google Play-Analytics-Parameter. Diese Parameter
(utm_source, utm_medium,
utm_campaign, utm_term, utm_content)
werden an den Google Play Store übergeben und an die Link-Nutzlast angehängt.
|
| DynamicLinkItunesConnectAnalyticsParameters | |
|---|---|
| providerToken affiliateToken campaignToken |
iTunes Connect-Analytics-Parameter. Diese Parameter (pt,
at, ct) werden an den App Store übergeben. |
Langen Dynamic Link kürzen
Wenn Sie einen langen Dynamic Link kürzen möchten, übergeben Sie den langen Dynamic Link zusammen mit einem DynamicLinkComponentsOptions Objekt an
shortenURL(url:options:), wenn Sie einen Link mit einem kurzen Suffix generieren möchten:
Swift
DynamicLinkComponents.shortenURL(url: longLinkUrl, options: nil) { url, warnings, error in guard let url = url, error != nil else { return } print("The short URL is: \(url)") }
Objective-C
[FIRDynamicLinkComponents shortenURL:longLinkUrl options:nil completion:^(NSURL * _Nullable shortURL, NSArray<NSString *> * _Nullable warnings, NSError * _Nullable error) { if (error || shortURL == nil) { return; } NSLog(@"The short URL is: %@", shortURL); }];
Benutzerdefiniertes URL-Schema für Dynamic Links angeben
Standardmäßig verwendet Dynamic Links den Paket-Identifikator Ihrer App als URL-Schema, das zum Öffnen Ihrer Anwendung erforderlich ist. Wir empfehlen, diesen Standardwert beizubehalten, um die Implementierung zu vereinfachen.
Entwickler, die bereits ein benutzerdefiniertes URL-Schema für andere Zwecke verwenden, möchten dieses benutzerdefinierte URL-Schema möglicherweise auch für ihre Dynamic Links verwenden. In diesem Fall können Sie ein anderes URL-Schema für Ihre Firebase Dynamic Links angeben. Gehen Sie dazu so vor:
- Wenn Sie Ihre App einrichten, geben Sie das Standard-URL-Schema an, das von Ihrer Anwendung verwendet werden soll
bevor Sie die
FirebaseAppfreigegebene Instanz konfigurieren:Swift
Hinweis:Dieses Firebase-Produkt ist nicht für macOS-, Mac Catalyst-, tvOS- oder watchOS-Ziele verfügbar.func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication .LaunchOptionsKey: Any]?) -> Bool { // Set deepLinkURLScheme to the custom URL scheme you defined in your // Xcode project. FirebaseOptions.defaultOptions()?.deepLinkURLScheme = customURLScheme FirebaseApp.configure() return true }
Objective-C
Hinweis:Dieses Firebase-Produkt ist nicht für macOS-, Mac Catalyst-, tvOS- oder watchOS-Ziele verfügbar.- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Set deepLinkURLScheme to the custom URL scheme you defined in your // Xcode project. [FIROptions defaultOptions].deepLinkURLScheme = CUSTOM_URL_SCHEME; [FIRApp configure]; return YES; }
- Wenn Sie einen Dynamic Link erstellen, müssen Sie das benutzerdefinierte URL-Schema angeben, das von Ihrer
App verwendet wird. Sie können dies über die Firebase Console tun, indem Sie
customSchemein der Builder API festlegen, den Parameteriusin Ihrer URL angeben oder den ParameteriosCustomSchemean die REST API senden.
Nächste Schritte
Nachdem Sie Dynamic Links erstellt haben, müssen Sie Ihre App so einrichten, dass sie Dynamic Links empfangen kann und Nutzer nach dem Öffnen an die richtige Stelle in Ihrer App weitergeleitet werden.
Informationen zum Empfangen von Dynamic Links in Ihrer App finden Sie in der Dokumentation für iOS, Android, C++ und Unity.