ऐप्लिकेशन लिंक से जुड़ी समस्या हल करना

इस गाइड में, आम तौर पर होने वाली समस्याओं और उन्हें हल करने के तरीके के बारे में बताया गया है. Play Console के डीप लिंक पेज या Android Studio की ऐप्लिकेशन लिंक असिस्टेंट में मौजूद समस्या हल करने वाले टूल का भी इस्तेमाल किया जा सकता है. ज़्यादा जानकारी के लिए, ऐप्लिकेशन लिंक के लिए डेवलपर टूल देखें.

  • समस्या: आपने एक ऐसे लिंक पर क्लिक किया है जिसे आपका ऐप्लिकेशन खोलना चाहिए, लेकिन वह वेब ब्राउज़र में खुलता है या एक डिसैंबिग्युएशन डायलॉग दिखाता है.
  • समाधान:
    • assetlinks.json की जांच करें: पक्का करें कि फ़ाइल एक मान्य JSON फ़ाइल हो जिसे https://<your-domain>/.well-known/assetlinks.json पर ऐक्सेस किया जा सकता हो और इसे एचटीटीपीएस के ज़रिए बिना किसी रीडायरेक्ट के ऐक्सेस किया जा सकता हो. ऑनलाइन पुष्टि करने वाले टूल का इस्तेमाल करें.
    • SHA-256 फ़िंगरप्रिंट की पुष्टि करें: दोबारा जांचें कि assetlinks.json में मौजूद sha256_cert_fingerprints, आपके ऐप्लिकेशन की रिलीज़ के लिए इस्तेमाल की गई साइनिंग कुंजी के फ़िंगरप्रिंट से पूरी तरह मेल खाता हो. अगर Play ऐप्लिकेशन साइनिंग का इस्तेमाल किया जा रहा है, तो Play Console में मौजूद फ़िंगरप्रिंट का इस्तेमाल करें. हस्ताक्षर कैपिटल लेटर में होना चाहिए.
    • autoVerify की पुष्टि करें: पक्का करें कि आपकी AndroidManifest.xml फ़ाइल में मौजूद <intent-filter> में android:autoVerify="true" शामिल हो.
    • सर्वर-साइड पर रीडायरेक्ट की जांच करें: http से https या नॉन-www डोमेन से www पर रीडायरेक्ट करने की वजह से, पुष्टि नहीं हो पाती.
    • ज़बरदस्ती दोबारा पुष्टि करना: पुष्टि का नया नतीजा पाने के लिए, ऐप्लिकेशन लिंक की जांच करना गाइड में ADB कमांड चलाएं.

Android 15 या इसके बाद के वर्शन पर, डाइनैमिक नियम अपडेट नहीं हो रहे हैं

  • समस्या: आपने अपनी assetlinks.json फ़ाइल में नियमों को अपडेट किया है, लेकिन नए लिंक को ऐप्लिकेशन से हैंडल नहीं किया जा रहा है.
  • समाधान:
    • ज़बरदस्ती दोबारा पुष्टि करना: बदलावों को टेस्ट करने का सबसे भरोसेमंद तरीका यह है कि adb shell pm verify-app-links --re-verify. <your-package-name> का इस्तेमाल करके, ज़बरदस्ती दोबारा फ़ेच करें.
    • टाइपिंग में की गई गलतियों की जांच करें: अपने नियमों में पैटर्न मैच करने वाले फ़ंक्शन की ध्यान से समीक्षा करें. देखें कि कहीं सिंटैक्स में कोई गड़बड़ी तो नहीं है.
    • मेनिफ़ेस्ट फ़िल्टर के नियमों की जांच करें: ऐप्लिकेशन मेनिफ़ेस्ट में इंटेंट फ़िल्टर के नियमों की समीक्षा करें. इससे यह पक्का किया जा सकेगा कि लिंक पाथ को फ़िल्टर न किया जा रहा हो. अगर लिंक को फ़िल्टर किया जा रहा है, तो ऐप्लिकेशन मेनिफ़ेस्ट में इंटेंट फ़िल्टर को कम पाबंदियों वाला बनाएं.

लागू करने से जुड़ी सामान्य गड़बड़ियां ठीक करना

अगर Android ऐप्लिकेशन लिंक की पुष्टि नहीं हो पा रही है, तो यहां दी गई सामान्य गड़बड़ियों की जांच करें. इस सेक्शन में, example.com को प्लेसहोल्डर डोमेन नेम के तौर पर इस्तेमाल किया गया है. इन जांचों को करते समय, example.com की जगह अपने सर्वर का असली डोमेन नेम डालें.

इंटेंट फ़िल्टर को गलत तरीके से सेट अप किया गया हो
देखें कि आपने <intent-filter> एलिमेंट में, ऐसा यूआरएल तो शामिल नहीं किया है जिसका मालिकाना हक आपके ऐप्लिकेशन के पास नहीं है.
सर्वर का गलत कॉन्फ़िगरेशन

अपने सर्वर के JSON कॉन्फ़िगरेशन की जांच करें. साथ ही, पक्का करें कि SHA वैल्यू सही हो.

यह भी देखें कि example.com. (आखिरी अवधि के साथ) वही कॉन्टेंट दिखाता हो जो example.com दिखाता है.

सर्वर साइड रीडायरेक्ट

अगर आपने इस तरह का कोई रीडायरेक्ट सेट अप किया है, तो सिस्टम आपके ऐप्लिकेशन के लिए किसी भी Android ऐप्लिकेशन लिंक की पुष्टि नहीं करता:

  • http://example.com से https://example.com
  • example.com से www.example.com

इस तरह के व्यवहार से, आपके ऐप्लिकेशन की सुरक्षा बनी रहती है.

सर्वर की मज़बूती

देखें कि आपके क्लाइंट ऐप्लिकेशन, आपके सर्वर से कनेक्ट हो सकते हैं या नहीं.

ऐसे लिंक जिनकी पुष्टि नहीं की जा सकती

जांच के लिए, जान-बूझकर ऐसे लिंक जोड़े जा सकते हैं जिनकी पुष्टि नहीं की जा सकती. ध्यान रखें कि Android 11 और इससे पहले के वर्शन पर, इन लिंक की वजह से सिस्टम आपके ऐप्लिकेशन के सभी Android ऐप्लिकेशन लिंक की पुष्टि नहीं कर पाता.

assetlinks.json फ़ाइल में गलत हस्ताक्षर

पुष्टि करें कि आपका हस्ताक्षर सही हो और ऐप्लिकेशन पर हस्ताक्षर करने के लिए इस्तेमाल किए गए हस्ताक्षर से मेल खाता हो. आम तौर पर, ये गलतियां होती हैं:

  • ऐप्लिकेशन को डीबग सर्टिफ़िकेट से साइन करना और assetlinks.json में सिर्फ़ रिलीज़ सिग्नेचर होना.
  • assetlinks.json में छोटे अक्षरों वाला हस्ताक्षर होना. हस्ताक्षर कैपिटल लेटर में होना चाहिए.
  • अगर Play ऐप्लिकेशन साइनिंग की सुविधा का इस्तेमाल किया जा रहा है, तो पक्का करें कि आपने उस हस्ताक्षर का इस्तेमाल किया हो जिसका इस्तेमाल Google, आपके हर ऐप्लिकेशन की रिलीज़ को साइन करने के लिए करता है. वेबसाइटों के बीच संबंध का एलान करने से जुड़े निर्देशों का पालन करके, इस जानकारी की पुष्टि की जा सकती है. इसमें पूरा JSON स्निपेट भी शामिल है.