Appy

Ü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.

Doğrulamayı çalıştır
Alan adı veya URL yapıştırıp uygulama açma kurulumunuzu kontrol edin.

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-association
  1. Yükleme sırasında

    Associated Domains’i okur

    iOS, uygulamanın Associated Domains entitlement’ındaki applinks: kayıtlarına bakar.

  2. 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.

  3. Dokunulduğunda

    Linki eşleştirir

    iOS, dokunulan alan adını ve yolu bu dosyadaki app ID’ler ve paths ya da components kurallarıyla karşılaştırır.

  4. 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.json
  1. Yükleme sırasında

    Intent filter’ları okur

    Android, alan adınız için autoVerify ile işaretlenmiş intent filter’ları bulur.

  2. 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.

  3. 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.

  4. Sonuç

    Doğrulandı: uygulamanız açılır

    Doğrulanmadı: tarayıcı açılır, eski Android sürümlerinde uygulama seçici çıkar

Doğrulayıcı iki zincirin sunucu tarafına bakar: her dosya iOS ile Android’in aradığı yerde mi, içinde okumaları gereken bilgi var mı.

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-association dosyasını hem /.well-known/ altında hem kök dizinde, assetlinks.json dosyası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.details alanı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_urls relation’ı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.

  1. 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.

  2. 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.

  3. 03iOS + Android

    Yanlış Content-Type

    Dosya yükleniyor ama platform onu yok sayıyor.

    Çözüm

    İki dosyayı da application/json olarak sunun. AASA dosyasının uzantısı olmadığından birçok sunucu application/octet-stream ya da text/plain gönderir.

  4. 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=developer ekleyin ve cihazın geliştirici ayarlarında Associated Domains Development’ı açın.

  5. 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
  6. 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.

  7. 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.

  8. 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.

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.