يوضّح هذا الدليل المشاكل الشائعة وكيفية تحديدها وحلّها. يمكنك أيضًا استخدام أدوات تحديد المشاكل وحلّها في صفحة "الروابط لصفحات في التطبيق" على Play Console أو في "مساعد روابط التطبيقات" في استوديو Android. لمزيد من المعلومات، يُرجى الاطّلاع على أدوات المطوّرين لروابط التطبيقات.
فتح رابط التطبيق في المتصفّح بدلاً من التطبيق
- المشكلة: تنقر على رابط من المفترض أن يفتح تطبيقك، ولكنّه يفتح في متصفّح ويب أو يعرض مربّع حوار لإزالة الغموض.
- الحلّ:
- التحقّق من
assetlinks.json: تأكَّد من أنّ الملف هو ملف JSON صالح، ويمكن الوصول إليه فيhttps://<your-domain>/.well-known/assetlinks.json، ويتم عرضه عبر HTTPS بدون عمليات إعادة توجيه. استخدام أداة التحقّق على الإنترنت - التحقّق من صحة الملف المرجعي لمعيار SHA-256: تأكَّد من أنّ
sha256_cert_fingerprintsفيassetlinks.jsonيتطابق تمامًا مع الملف المرجعي لمفتاح التوقيع لإصدار تطبيقك (استخدِم الملف المرجعي من Play Console إذا كنت تستخدم ميزة "توقيع التطبيق" من Play). يجب أن يكون التوقيع بأحرف كبيرة. - التحقّق من
autoVerify: تأكَّد من أنّ<intent-filter>فيAndroidManifest.xmlتتضمّنandroid:autoVerify="true". - التحقّق من عمليات إعادة التوجيه من جهة الخادم: يمكن أن تؤدي عمليات إعادة التوجيه من
httpإلىhttpsأو من نطاق غير www إلىwwwإلى تعذُّر إثبات الملكية. - فرض إعادة التحقّق: نفِّذ أوامر Android Debug Bridge (ADB) في دليل اختبار روابط التطبيق للحصول على نتيجة تحقّق جديدة.
- تشخيص عملية تحليل الروابط (الإصدار 17 من نظام التشغيل Android والإصدارات الأحدث): شغِّل
adb shell am start --debug-link -a android.intent.action.VIEW -d "<URL>"لفحص التطبيقات المرشّحة وفلاتر الأهداف في ملف البيان وقواعد "روابط التطبيقات الديناميكية" التي تتطابق مع عنوان URL. لمزيد من التفاصيل، يُرجى الاطّلاع على تشخيص عملية حلّ الروابط باستخدام العلامة debug-link.
- التحقّق من
عدم تعديل القواعد الديناميكية على الإصدار 15 أو الإصدارات الأحدث من نظام التشغيل Android
- المشكلة: لقد عدّلت القواعد في ملف
assetlinks.json، ولكن التطبيق لا يتعامل مع الروابط الجديدة. - الحلّ:
- فرض إعادة التحقّق: الطريقة الأكثر موثوقية لاختبار التغييرات هي فرض عملية إعادة جلب باستخدام
adb shell pm verify-app-links --re-verify <your-package-name>. - البحث عن الأخطاء الإملائية: راجِع بعناية أدوات مطابقة الأنماط في قواعدك بحثًا عن أي أخطاء في البنية.
- التحقّق من قواعد فلتر ملف البيان: راجِع قواعد فلتر الأهداف في بيان التطبيق للتأكّد من عدم فلترة مسار الرابط. إذا كان يتم فلترة الرابط، يجب تقليل القيود المفروضة على intent filter في بيان التطبيق.
- تشخيص قواعد المطابقة (الإصدار 17 من نظام التشغيل Android والإصدارات الأحدث): شغِّل
adb shell am start --debug-link -a android.intent.action.VIEW -d "<URL>"لفحص القواعد التي تم تقييمها وتحديد ما إذا كانت قاعدة الاستبعاد (allow = 1) قد منعت فتح التطبيق. اطّلِع على تشخيص مشاكل حلّ الروابط باستخدام العلامة debug-link.
- فرض إعادة التحقّق: الطريقة الأكثر موثوقية لاختبار التغييرات هي فرض عملية إعادة جلب باستخدام
إصلاح أخطاء التنفيذ الشائعة
إذا تعذّر عليك إثبات ملكية "روابط تطبيقات Android"، تحقّق من الأخطاء الشائعة التالية. يستخدم هذا القسم example.com كاسم نطاق نائب. عند إجراء عمليات التحقّق هذه، استبدِل example.com باسم النطاق الفعلي للخادم.
- إعداد فلتر intent غير صحيح
- تحقَّق مما إذا كنت قد أدرجت عنوان URL لا يملكه تطبيقك في عنصر
<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 كامل، باتّباع التعليمات حول تحديد المواقع الإلكترونية المرتبطة.
- توقيع التطبيق باستخدام شهادة تصحيح الأخطاء وتضمين توقيع الإصدار فقط في
تسجيل تقرير خطأ
بالنسبة إلى المشاكل المعقّدة التي يصعب إعادة إنتاجها، يمكنك تسجيل تقرير خطأ وتحليله. يمكن أن يقدّم ذلك إحصاءات قيّمة حول عملية إثبات الملكية وأي أخطاء على مستوى النظام.