Firebase Dynamic Links Builder API ile kısa veya uzun Dynamic Links oluşturabilirsiniz. Bu API, uzun bir Dynamic Link veya Dynamic Link parametrelerini içeren bir nesneyi kabul eder ve aşağıdaki örneklerdeki gibi URL'ler döndürür:
https://example.com/link/WXYZ https://example.page.link/WXYZ
Ön koşullar
Başlamadan önce Firebase'i iOS projenize eklediğinizden emin olun.
Firebase'i ve Dynamic Links SDK'sını kurma
Firebase bağımlılıklarını yüklemek ve yönetmek için Swift Package Manager'ı kullanın.
Firebase SDK'larını Apple projenize eklemenin farklı yollarını öğrenmek için- Xcode'da uygulama projeniz açıkken File > Add Packages'a (Dosya > Paket Ekle) gidin.
- İstendiğinde Firebase Apple platformları SDK deposunu ekleyin:
- Dynamic Links kitaplığını seçin.
- Hedefinizin derleme ayarlarının Other Linker Flags (Diğer Bağlayıcı İşaretleri) bölümüne
-ObjCişaretini ekleyin. - Dynamic Links ile en iyi deneyimi yaşamak için Firebase projenizde Google Analytics etkinleştirmenizi ve Google Analytics için Firebase SDK'sını uygulamanıza eklemenizi öneririz. IDFA toplama özelliği olan veya olmayan kitaplığı seçebilirsiniz. Firebase SDK'sı için Google Analytics'daki en son modül organizasyonu ile ilgili SSS sayfamıza göz atın.
- İşlem tamamlandığında Xcode, arka planda bağımlılıklarınızı otomatik olarak çözmeye ve indirmeye başlar.
https://github.com/firebase/firebase-ios-sdk.git
Şimdi bazı yapılandırma adımlarını uygulayın:
- Firebase konsolunda Dynamic Links bölümünü açın.
-
Hizmet şartlarını henüz kabul etmediyseniz ve Dynamic Links için bir URI ön eki ayarlamadıysanız istendiğinde bunu yapın.
Zaten bir Dynamic Links URI ön ekiniz varsa bunu not edin. Dynamic Links öğesini programatik olarak oluştururken bu değeri sağlamanız gerekir.

- Önerilen: Derin bağlantılarınızda ve yedek bağlantılarınızda izin verilen URL kalıplarını belirtin. Böylece, yetkisiz tarafların alanınızdan kontrolünüz dışındaki sitelere yönlendirme yapan Dynamic Links oluşturmasını engellersiniz. Belirli URL kalıplarına izin verme başlıklı makaleyi inceleyin.
-
Uygulamanızın uygulama mağazası kimliğinin ve uygulama kimliği önekinizin uygulamanızın ayarlarında belirtildiğinden emin olun. Uygulamanızın ayarlarını görüntülemek ve düzenlemek için Firebase projenizin Ayarlar sayfasına gidip iOS uygulamanızı seçin.
Dynamic Links alanınızda barındırılan
apple-app-site-associationdosyasını açarak Firebase projenizin iOS uygulamanızda Dynamic Links kullanacak şekilde doğru yapılandırıldığını onaylayın. Firebase,apple-app-site-associationdosyasını alan adının kökünden ve.well-knownalt dizininden sunar. Örneğin:https://example.com/apple-app-site-association https://example.com/.well-known/apple-app-site-associationUygulamanız bağlıysa
apple-app-site-associationdosyası, uygulamanızın uygulama kimliği ön ekine ve paket kimliğine referans içerir. Örneğin:{"applinks":{"apps":[],"details":[{"appID":"1234567890.com.example.ios","paths":["/*"]}]}}detailsözelliği boşsa uygulama kimliği ön ekinizi belirttiğinizden emin olun. Uygulama kimliği önekinizin, ekip kimliğinizle aynı olmayabileceğini unutmayın.
Firebase'i uygulamanıza ekleyin
FirebaseCoremodülünüUIApplicationDelegatedosyanıza ve uygulama temsilcinizin kullandığı diğer Firebase modüllerine aktarın. Örneğin, Cloud Firestore ve Authentication kullanmak için:SwiftUI
import SwiftUI import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Swift
import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Objective-C
@import FirebaseCore; @import FirebaseFirestore; @import FirebaseAuth; // ...
- Uygulama temsilcinizin
application(_:didFinishLaunchingWithOptions:)yönteminde paylaşılan birFirebaseAppörneği yapılandırın: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];
- SwiftUI kullanıyorsanız bir uygulama temsilcisi oluşturmanız ve bunu
UIApplicationDelegateAdaptorveyaNSApplicationDelegateAdaptoraracılığıylaAppyapınıza eklemeniz gerekir. Ayrıca, uygulama temsilcisi swizzling'ini de devre dışı bırakmanız gerekir. Daha fazla bilgi için SwiftUI talimatlarını inceleyin.SwiftUI
@main struct YourApp: App { // register app delegate for Firebase setup @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate var body: some Scene { WindowGroup { NavigationView { ContentView() } } } }
Firebase konsolunu kullanma
Test amacıyla veya pazarlama ekibinizin sosyal medya gönderisi gibi bir yerde kullanılabilecek bir bağlantıyı kolayca oluşturması için tek bir Dynamic Link oluşturmak istiyorsanız en basit yöntem, Firebase konsolunu ziyaret etmek ve adım adım formunu takip ederek manuel olarak bir tane oluşturmaktır.
iOS Builder API'yi kullanma
Parametrelerden Dynamic Links oluşturmak veya uzun bir Dynamic Link URL'sini kısaltmak için iOS Builder API'yi kullanabilirsiniz.
Parametrelerden Dynamic Link oluşturma
Dynamic Link oluşturmak için yeni bir DynamicLinkComponents nesnesi oluşturun ve nesnenin ilgili özelliklerini ayarlayarak Dynamic Link parametrelerini belirtin. Ardından, nesnenin url özelliğinden uzun bağlantıyı alın veya shorten() yöntemini çağırarak kısa bağlantıyı alın.
Aşağıdaki minimal örnekte, iOS'te iOS uygulamanızla ve Android'de com.example.android uygulamasıyla açılan, https://www.example.com/my-page için uzun bir Dynamic Link oluşturulmaktadır:
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);
Kısa Dynamic Link oluşturmak için aynı şekilde bir DynamicLinkComponents oluşturun ve ardından shorten() yöntemini çağırın.
Kısa bağlantı oluşturmak için ağ çağrısı gerekir. Bu nedenle, shorten() doğrudan bağlantıyı döndürmek yerine, istek tamamlandığında çağrılan bir tamamlama işleyicisini kabul eder. Örneğin:
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); }];
Varsayılan olarak, kısa Dynamic Links, 17 karakterlik bağlantı son ekleriyle oluşturulur. Bu sayede, birinin geçerli bir Dynamic Link tahmin etmesi son derece düşük bir ihtimaldir. Kullanım alanınızda, birinin kısa bağlantıyı doğru tahmin etmesinin bir sakıncası yoksa yalnızca benzersiz olacak kadar uzunlukta son ekler oluşturmayı tercih edebilirsiniz. Bunu yapmak için dynamicLinkComponentsOptions özelliğini ayarlayabilirsiniz:
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 parametre
Desteklenen parametrelerden herhangi birini kullanarak Dynamic Links oluşturmak için Dynamic Link Builder API'yi kullanabilirsiniz. Ayrıntılar için API referansına bakın.
Aşağıdaki örnekte, birkaç yaygın parametre kümesiyle bir Dynamic Link oluşturulmaktadır:
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);
Dynamic Link parametrelerini aşağıdaki nesneler ve özelliklerle ayarlayabilirsiniz:
| DynamicLinkComponents | |
|---|---|
| bağlantı |
Uygulamanızın açacağı bağlantı. Uygulamanızın işleyebileceği bir URL belirtin. Bu URL genellikle uygulamaya özgü mantığı (ör. kullanıcıya kupon verme veya karşılama ekranı gösterme) başlatan uygulama içeriği veya yüküdür. Bu bağlantı, düzgün biçimlendirilmiş bir URL olmalı, doğru şekilde URL kodlamalı olmalı, HTTP veya HTTPS kullanmalı ve başka bir Dynamic Link olmamalıdır. |
| domainURIPrefix | Firebase konsolunda bulabileceğiniz Dynamic Link URL önekiniz. Dynamic Link alan adı aşağıdaki örneklere benzer:
https://example.com/link https://example.page.link |
| DynamicLinkAndroidParameters | |
|---|---|
| fallbackURL | Uygulama yüklü olmadığında açılacak bağlantı. Uygulama yüklü olmadığında, uygulamanızı Play Store'dan yüklemek dışında bir işlem yapmak (ör. içeriğin mobil web sürümünü açmak veya uygulamanız için bir tanıtım sayfası göstermek) için bunu belirtin. |
| minimumVersion | Bağlantıyı açabilen uygulamanızın minimum sürümünün versionCode. Yüklü uygulama eski bir sürümse kullanıcı, uygulamayı yeni sürüme geçirmek için Play Store'a yönlendirilir. |
| DynamicLinkIOSParameters | |
|---|---|
| appStoreID | Uygulamanız yüklü olmadığında kullanıcıları uygulama mağazasına yönlendirmek için kullanılan uygulama mağazası kimliği |
| fallbackURL | Uygulama yüklü olmadığında açılacak bağlantı. Uygulama yüklü olmadığında, uygulamanızı uygulama mağazasından yüklemek dışında bir işlem yapmak (ör. içeriğin mobil web sürümünü açmak veya uygulamanız için bir tanıtım sayfası göstermek) için bunu belirtin. |
| customScheme | Uygulamanızın paket kimliğinden farklı bir şekilde tanımlanmışsa uygulamanızın özel URL şeması |
| iPadFallbackURL | Uygulama yüklü olmadığında iPad'lerde açılacak bağlantı. Uygulama yüklü olmadığında, uygulamanızı uygulama mağazasından yüklemek dışında bir işlem yapmak (ör. içeriğin web sürümünü açmak veya uygulamanızın tanıtım sayfasını göstermek) için bunu belirtin. |
| iPadBundleID | Bağlantıyı açmak için iPad'lerde kullanılacak iOS uygulamasının paket kimliği. Uygulama, Firebase Console'un Genel Bakış sayfasından projenize bağlanmalıdır. |
| minimumAppVersion | Uygulamanızın bağlantıyı açabilen minimum sürümünün sürüm numarası. Bu işaret, açıldığında uygulamanıza iletilir ve uygulamanız bu işaretle ne yapacağına karar vermelidir. |
| DynamicLinkNavigationInfoParameters | |
|---|---|
| forcedRedirectEnabled | "1" olarak ayarlanırsa Dynamic Link açıldığında uygulama önizleme sayfası atlanır ve uygulama veya mağazaya yönlendirilir. Uygulama önizleme sayfası (varsayılan olarak etkindir), kullanıcılar uygulamalarda Dynamic Links açtığında onları en uygun hedefe daha güvenilir bir şekilde gönderebilir. Ancak bir Dynamic Link bağlantısının yalnızca bu sayfa olmadan Dynamic Links bağlantısını güvenilir bir şekilde açabilen uygulamalarda açılmasını bekliyorsanız bu parametreyle sayfayı devre dışı bırakabilirsiniz. Bu parametre, Dynamic Link davranışını yalnızca iOS'te etkiler. |
| DynamicLinkSocialMetaTagParameters | |
|---|---|
| ünvan | Dynamic Link bir sosyal medya gönderisinde paylaşıldığında kullanılacak başlık. |
| descriptionText | Dynamic Link bir sosyal medya gönderisinde paylaşıldığında kullanılacak açıklama. |
| imageURL | Bu bağlantıyla ilgili bir resmin URL'si. Resim en az 300x200 piksel ve 300 KB'tan küçük olmalıdır. |
| DynamicLinkGoogleAnalyticsParameters | |
|---|---|
| source medium campaign term content |
Google Play analiz parametreleri. Bu parametreler (utm_source, utm_medium, utm_campaign, utm_term, utm_content) Play Store'a iletilir ve bağlantı yüküne eklenir.
|
| DynamicLinkItunesConnectAnalyticsParameters | |
|---|---|
| providerToken affiliateToken campaignToken |
iTunes Connect analiz parametreleri. Bu parametreler (pt,
at, ct) uygulama mağazasına iletilir. |
Uzun bir Dynamic Link kısaltın
Uzun bir Dynamic Link kısaltmak için uzun Dynamic Link, shortenURL(url:options:) öğesine iletin. Kısa bir son ek içeren bağlantı oluşturmak istiyorsanız DynamicLinkComponentsOptions nesnesiyle birlikte iletin:
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); }];
Dynamic Links için özel URL şeması belirtme
Dynamic Links, varsayılan olarak uygulamanızı açmak için gereken URL şeması olarak uygulamanızın paket kimliğini kullanır. Uygulamanızı basit tutmak için bu varsayılan değeri kullanmaya devam etmenizi öneririz.
Ancak başka amaçlar için özel bir URL şeması kullanan geliştiriciler, Dynamic Links için de aynı özel URL şemasını kullanmak isteyebilir. Bu durumdaysanız aşağıdaki adımları uygulayarak Firebase Dynamic Links için farklı bir URL şeması belirtebilirsiniz:
- Uygulamanızı ayarlarken
FirebaseApppaylaşılan örneğinizi yapılandırmadan önce uygulamanız tarafından kullanılacak varsayılan URL şemasını belirttiğinizden emin olun:Swift
Not: Bu Firebase ürünü macOS, Mac Catalyst, tvOS veya watchOS hedeflerinde kullanılamaz.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
Not: Bu Firebase ürünü macOS, Mac Catalyst, tvOS veya watchOS hedeflerinde kullanılamaz.- (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; }
- Dynamic Link oluşturduğunuzda uygulamanızın kullandığı özel URL şemasını belirtmeniz gerekir. Bunu Firebase konsolu üzerinden, Builder API'de
customSchemedeğerini ayarlayarak, URL'nizdeiusparametresini belirterek veya REST API'yeiosCustomSchemeparametresini göndererek yapabilirsiniz.
Sonraki adımlar
Dynamic Links oluşturduğunuza göre, uygulamanızı Dynamic Links alacak ve kullanıcılar bunları açtıktan sonra uygulamanızda doğru yere yönlendirecek şekilde ayarlamanız gerekir.
Uygulamanızda Dynamic Links almak için iOS, Android, C++ ve Unity belgelerine bakın.