Ücretsiz geliştirici aracı
Universal Link Doğrulayıcı
Linklerinizin uygulamayı açtığından emin olun. Alan adını girin; iOS Universal Links ve Android App Links kurulumunuzu kontrol edip net bir durum özeti ve düzeltme adımları alın.
Nasıl çalışır
Biri linkinize dokunduğunda ne olur
İki platform da alan adınıza dokunma anında bakmaz. Kontrolü uygulama yüklendiğinde yapar, sonucu saklar ve bir linke dokunulduğunda bu sonucu kullanır. Bozuk bir dosyanın günlerce fark edilmemesi de, düzeltilen bir dosyanın hemen etki etmemesi de bundandır.
iPhone ve iPad
apple-app-site-associationYükleme sırasında
Associated Domains’i okur
iOS, uygulamanın Associated Domains entitlement’ındaki
applinks:kayıtlarına bakar.Yükleme sırasında
Apple’ın CDN’inden çeker
Apple’ın CDN’i dosyayı alan adınızdan indirir ve cihaza önbellekteki kopyayı verir.
Dokunulduğunda
Linki eşleştirir
iOS, dokunulan alan adını ve yolu bu dosyadaki app ID’ler ve
pathsya dacomponentskurallarıyla karşılaştırır.Sonuç
Eşleşme var: uygulamanız açılır
Eşleşme ya da dosya yok: sayfa Safari’de açılır
Android
assetlinks.jsonYükleme sırasında
Intent filter’ları okur
Android, alan adınız için
autoVerifyile işaretlenmiş intent filter’ları bulur.Yükleme sırasında
assetlinks.json’u çeker
Dosyayı tanımlı her host’ta
/.well-known/altından ister. Yönlendirme başarısızlık sayılır.Yükleme sırasında
İmza sertifikasını kontrol eder
Dosyadaki paket adı ve SHA-256 parmak izi, yüklü uygulamayı imzalayan sertifikayla eşleşmelidir.
Sonuç
Doğrulandı: uygulamanız açılır
Doğrulanmadı: tarayıcı açılır, eski Android sürümlerinde uygulama seçici çıkar
Kontroller
Bu araç neleri kontrol eder
Tek bir çalıştırma en fazla on istek yapar: alan adınızdaki ve onun www’li (ya da www’siz) eşindeki iki ilişkilendirme dosyası, Apple CDN’indeki kopya ve Google’ın Digital Asset Links API’si. Baktığı noktalar şunlar.
İki konum, iki host
Alan adınızda ve www eşinde
apple-app-site-associationdosyasını hem/.well-known/altında hem kök dizinde,assetlinks.jsondosyasını da/.well-known/altında arar.HTTPS ve 200 yanıtı
Her isteğin HTTP durum kodunu, dosyanın yüklenmesini engelleyen zaman aşımlarını ve bağlantı hatalarını raporlar.
Yönlendirmeler
Yönlendirmeleri takip eder, her isteğin nerede bittiğini gösterir; son adres başka bir host’taysa ya da düz HTTP ise uyarır.
JSON yerine HTML
Dosyanın yerine gelen giriş sayfasını, hata şablonunu ya da Cloudflare, Akamai gibi servislerin bot doğrulama sayfasını yakalar ve dönen Content-Type başlığını gösterir.
Geçerli JSON
Her dosyayı ayrıştırır, hata varsa ayrıştırıcının mesajını olduğu gibi gösterir; neyi düzelteceğinizi bilirsiniz.
applinks ve app ID’ler
applinks.detailsalanının varlığını doğrular ve içindeki tüm app ID’leri listeler. Gelişmiş bölümüne kendi App ID’nizi girerseniz listede olup olmadığına bakar. İmzalı (PKCS7) dosyaları tanır ama çözmez.Relation ve paket adları
assetlinks.json’un
delegate_permission/common.handle_all_urlsrelation’ını içeren bir JSON dizisi olduğunu kontrol eder ve paket adlarını listeler. Gelişmiş bölümüne paket adınızı girerseniz eşleştirir.SHA-256 parmak izi
İmza sertifikanızın parmak izini Gelişmiş bölümüne yapıştırın; doğrulayıcı onu iki nokta üst üsteli ya da bitişik yazımıyla dosyada arar.
Apple’ın kopyası, Google’ın görünümü
Apple CDN’inin iPhone’lara verdiği kopyayı okur ve Google’ın Digital Asset Links API’sine siteniz için ne bulduğunu sorar; ikisini de sunucunuzdakiyle karşılaştırabilirsiniz.
Dosyanız henüz yok mu ya da JSON hatası mı veriyor?AASA ve assetlinks.json oluşturucuyla hazırlayın
Göremediği kısım
Uygulama tarafı: Associated Domains entitlement’ı, intent filter’lar, belirli bir yolun paths ya da components kurallarınıza uyup uymadığı ve belirli bir uygulama içi tarayıcının davranışı. Yayına çıkmadan önce bunları gerçek bir cihazda deneyin.
Sorun giderme
Linkler neden hâlâ tarayıcıda açılıyor
Vakaların çoğu şu sekiz nedenden birine çıkar. Sunucu tarafındakileri doğrulayıcıda görürsünüz; diğerleri ancak gerçek bir telefonda ortaya çıkar.
- 01iOS + Android
Dokunma Instagram, Facebook ya da TikTok içinde oluyor
Notlar ya da Mesajlar’dan çalışıyor, bio linkinden ya da reklamdan web sayfası açılıyor.
Çözüm
Bu uygulamalar linkleri kendi uygulama içi tarayıcılarında açar ve adresi çoğu zaman iOS’a ya da Android’e devretmez. Her kanalı ayrı test edin ve uygulama açılmasa da linkin işe yarar bir yere, örneğin mağaza sayfasına ya da web sitenize gittiğinden emin olun.
Cihazda test edinInstagram ve TikTok’ta deep link - 02iOS + Android
İlişkilendirme dosyası yönlendiriyor
Dosya tarayıcıda sorunsuz açılıyor ama doğrulama başarısız oluyor.
Çözüm
Apple ve Android tam adreste doğrudan 200 bekler.
/.well-known/üzerindeki http’den https’e, çıplak alan adından www’ye ve dil yönlendirmelerini kaldırın.Doğrulayıcıda görünürUniversal link’ler Safari’de mi açılıyor? - 03iOS + Android
Yanlış Content-Type
Dosya yükleniyor ama platform onu yok sayıyor.
Çözüm
İki dosyayı da
application/jsonolarak sunun. AASA dosyasının uzantısı olmadığından birçok sunucuapplication/octet-streamya datext/plaingönderir.Doğrulayıcıda görünürUniversal link’ler Safari’de mi açılıyor? - 04iOS
Apple’ın CDN’inde hâlâ eski dosya var
Dosyayı düzelttiniz ama iPhone’lar Safari’yi açmaya devam ediyor.
Çözüm
Apple’ın CDN’i sunucunuzun gerisinde kalan önbellekli bir kopya sunar; doğrulayıcı ikisini de gösterir. Test ederken entitlement’a
?mode=developerekleyin ve cihazın geliştirici ayarlarında Associated Domains Development’ı açın.Doğrulayıcıda görünürUniversal link’ler için eksiksiz rehber - 05Android
Play App Signing anahtarı eksik
Kendi build’leriniz uygulamayı açıyor, Play Store’dan yüklenen sürüm tarayıcıyı.
Çözüm
Play App Signing kullanıyorsanız kullanıcıların yüklediği uygulamayı Google imzalar. Play Console’da Uygulama bütünlüğü altındaki uygulama imzalama anahtarı sertifikasının SHA-256’sını ekleyin. Play dışında build dağıtıyorsanız yükleme anahtarınızı da tutun.
Doğrulayıcıda görünürAndroid App Links doğrulanmıyor - 06iOS
Link, sayfanın kendi alan adına gidiyor
Web sitenizdeki butonlar uygulama yerine yeni web sayfaları açıyor.
Çözüm
Kullanıcı zaten gezindiği alan adına giden bir universal link’e dokunduğunda iOS onu Safari’de tutar. Uygulama linklerini ayrı bir alt alan adına taşıyın ya da sitede Smart App Banner kullanın.
Cihazda test edinUniversal link’ler için eksiksiz rehber - 07iOS
Kullanıcı bir kez Safari’yi seçmiş
Link sizin telefonunuzda çalışıyor, bir iş arkadaşınızınkinde çalışmıyor.
Çözüm
Uygulama açıldıktan sonra sağ üst köşedeki alan adına dokunmak, iOS’a o alan adı için Safari’yi tercih etmesini söyler. Geri almak için linke uzun basıp uygulamada açmayı seçin.
Cihazda test edinUniversal link’ler Safari’de mi açılıyor? - 08iOS
App ID, build ile eşleşmiyor
Staging build’inde çalışıyor, yayındaki build’de çalışmıyor.
Çözüm
Kayıt, Team ID ile yayındaki uygulamanın tam bundle ID’sinden oluşmalı, örneğin
ABCDE12345.com.example.app. Gelişmiş bölümüne girin, doğrulayıcı kontrol etsin.Doğrulayıcıda görünürUniversal link’ler için eksiksiz rehber
Altyapıyla uğraşmayın
Sorunsuz çalışan linkler oluşturun
Appy linki her dokunuşa bakar ve onu doğru yere gönderir: iPhone’da App Store’a, Android’de Google Play’e, bilgisayarda web sitenize. Pro planda deep link ekleyin; uygulaması zaten yüklü olanlar doğrudan uygulamaya girsin.
- Ücretsiz plan
- Kredi kartı gerekmez
- Her planda sınırsız tıklama
- İptal etseniz de linkler çalışmaya devam eder
Enterprise planda uygulamanıza özel bir link alan adı verilir; apple-app-site-association ve assetlinks.json dosyalarını orada Appy sizin yerinize barındırır. SDK nasıl çalışır
Sık sorulan sorular
apple-app-site-association (AASA) dosyası nedir?
Alan adınızda duran ve iOS’a hangi uygulamaların hangi linkleri açabileceğini söyleyen bir JSON dosyasıdır. https://alanadiniz/.well-known/apple-app-site-association adresinde, .json uzantısı olmadan durur; app ID’lerinizi (Team ID ile bundle ID) ve bunların işlediği paths ya da components kurallarını listeler.
İlişkilendirme dosyaları nerede olmalı?
iOS /.well-known/apple-app-site-association, Android ise /.well-known/assetlinks.json dosyasını okur; linklerde kullandığınız her host’ta. İkisi de HTTPS üzerinden, yönlendirme olmadan doğrudan 200 ile ve application/json içerik tipiyle yüklenmelidir.
Universal link’ler neden uygulama yerine Safari’yi açıyor?
Ya doğrulama başarısız olmuştur (dosya eksik, yönlendiriliyor ya da geçersiz, veya app ID build ile eşleşmiyor) ya da iOS bilerek Safari’yi seçmiştir: dokunma bir uygulama içi tarayıcıdan ya da aynı alan adındaki bir sayfadan gelmiştir veya kullanıcı bir kez Safari’yi seçmiştir. Önce doğrulayıcıyı çalıştırın; sonuç temizse bu durumları cihazda test edin.
Pazarlama e-postalarımdaki linkler neden uygulama yerine tarayıcıyı açıyor?
E-posta araçları her linki kendi alan adlarındaki bir tıklama takibi adresiyle sarar. iOS ve Android yalnızca bu ilk alan adına bakarak karar verir, sonrasındaki bir yönlendirme de uygulamayı açamaz. Doğrulayıcıyı E-postadaki link moduna alıp test e-postanızdaki bir linki yapıştırın: yönlendirmeleri izler, e-posta aracını tanır ve takip alan adının neye ihtiyaç duyduğunu gösterir.
assetlinks.json dosyamı nasıl kontrol ederim?
Yukarıya alan adınızı girin, Gelişmiş bölümünü açıp paket adınızı ve SHA-256 parmak izinizi ekleyin. Test telefonunda adb shell pm get-app-links com.example.app komutu, Android’in her alan adını doğrulanmış olarak işaretleyip işaretlemediğini gösterir.
Android neden App Links doğrulaması başarısız diyor?
Çoğu zaman assetlinks.json’daki parmak izi yükleme anahtarınıza aittir, oysa Play Store’dan yüklenen uygulamalar Google’ın uygulama imzalama anahtarıyla imzalanır. Ardından yönlendirmeler, yanlış içerik tipi ve /.well-known/ önündeki bot koruması gelir. Dosyayı düzelttikten sonra adb shell pm verify-app-links --re-verify com.example.app komutunu çalıştırın.
Apple değişen bir AASA dosyasını ne zaman alır?
Anında yenileme yoktur. Cihazlar dosyayı önbellekli kopya sunan Apple CDN’inden alır, bu yüzden sunucunuzdaki düzeltmenin cihazlara ulaşması zaman alır. Doğrulayıcı CDN kopyasını sizinkinin yanında gösterir. Geliştirme sırasında entitlement’a eklenen ?mode=developer, cihazın dosyayı doğrudan sunucunuzdan almasını sağlar.
Universal link’ler Instagram, Facebook ya da TikTok içinde çalışır mı?
Çoğu zaman çalışmaz. Bu uygulamalar linkleri kendi uygulama içi tarayıcılarında açar; dokunuşun uygulamanıza ulaşıp ulaşmaması uygulamaya ve yerleşime göre değişir. Her kanalı test edin ve web sitenizin ya da mağaza sayfanızın tek başına iyi bir hedef olduğundan emin olun.
Doğrulayıcı uygulamamı, entitlement’larımı ya da yolları kontrol eder mi?
Sunucunuzun, Apple CDN’inin ve Google’ın Digital Asset Links API’sinin döndürdüğünü okur. E-postadaki bir link için AASA dosyasındaki kuralların o linki kapsayıp kapsamadığına da bakar. Uygulama tarafı, yani Associated Domains entitlement’ı ve intent filter’lar, gerçek bir cihazda test gerektirir.
Deep link ile universal link arasındaki fark nedir?
Deep link, uygulamada belirli bir ekranı açan her türlü linktir. iOS’taki Universal Links ve Android’deki App Links bunun doğrulanmış türüdür: uygulama yüklüyse uygulamayı, değilse web sayfasını açan sıradan HTTPS adresleri.
Hesap gerekiyor mu, sonucu paylaşabilir miyim?
Hesap gerekmez, doğrulayıcı ücretsizdir. Her çalıştırmanın kopyalayıp geliştiricinize gönderebileceğiniz kendi adresi olur. Bu sonuç sayfaları arama motorlarında dizine eklenmez.
Okumaya devam edin
Sonraki adım için rehberler
- Universal link’ler için eksiksiz rehberAASA dosyasını, assetlinks.json’u ve uygulama tarafını adım adım kurun.
- Universal link’ler Safari’de mi açılıyor?Uygulama yerine tarayıcıda açılan linkler için tekrar kullanılabilir bir teşhis rutini.
- Android App Links doğrulanmıyoradb kontrol listesi, Play App Signing ve Android’in doğrulamasını sağlayan çözümler.
- Deep link ve universal link farkıHer biri ne yapar, uygulama yüklü değilse ne olur.
- Instagram ve TikTok’ta deep linkUygulama içi tarayıcılar linklere nasıl davranır, sosyal trafik nasıl yüklemeye dönüştürülür.
- QR kod oluşturucuLinkinizi baskı, ambalaj ve sunumlar için markalı bir QR koda dönüştürün.