Uygulamanız Play Integrity API isteğinde bulunur ve çağrı başarısız olursa uygulamanız bir hata kodu alır. Bu hatalar, zayıf ağ bağlantısı gibi çevresel sorunlar, API entegrasyonunuzla ilgili sorunlar veya kötü amaçlı etkinlikler ve etkin saldırılar gibi çeşitli nedenlerle ortaya çıkabilir. Döndürülen hata kodunun türü, isteğin türüne bağlıdır:
- Standart istekler: API, StandardIntegrityErrorCode hatası döndürür.
- Klasik istekler: API, IntegrityErrorCode hatası döndürür.
Yeniden deneme stratejileri
Arka planda gerçekleşen ve kullanıcı oturumdayken kullanıcı deneyimini etkilemeyen Play Integrity işlemleri için eksponansiyel geri yükleme kullanın.
Örneğin, bu işlemi arka planda gerçekleştirebileceğiniz ve hata oluşması durumunda onayın anında gerçekleşmesi gerekmediği için yeni satın alma işlemlerini onaylarken bu yöntemi uygulayabilirsiniz.
İlk başarısız denemeden sonra, yeniden denemeden önce 5 saniyelik bir gecikmeyle başlayın.
Çıkış koşulu olarak maksimum deneme sayısına sahip bir yeniden deneme stratejisi uygulayın ve her seferinde üstel olarak artan bir gecikme (10 sn, 20 sn) kullanın.
Bu yeniden deneme girişimlerini gerçekleştirirken ağ bağlantısını kontrol edin ve cihaza aşırı yükleme yapmayın.
Üç yeniden denemeden sonra hata görmeye devam ederseniz sonucu, istemcinin tüm bütünlük kontrollerinde başarısız olduğu şeklinde değerlendirin. Hata, aşırı yüklenmiş bir cihaz, ağ bağlantısı sorunları veya bir saldırganın girişimi dahil ancak bunlarla sınırlı olmamak üzere çeşitli nedenlerden kaynaklanabilir.
Java kitaplığı için hata kodu değerleri
Yerel kitaplık için ek hata kodu değerleri
Yeniden deneyebileceğiniz hata kodları
Bu hatalar bazen geçici durumlardan kaynaklanır. Bu nedenle, çağrıyı yeniden denemeniz gerekir.
NETWORK_ERROR (Hata Kodu -3)
Bu hata, cihaz ile Play sistemleri arasındaki ağ bağlantısında bir sorun olduğunu gösterir.
Olası çözüm
- Kullanıcının ağ bağlantısı kurmasına ve onaylamasına yardımcı olan Google Play destekli bir deneyim başlatmak için
GET_INTEGRITYveyaGET_STRONG_INTEGRITYiletişim kutusunu kullanın. - Kullanıcıdan ağ bağlantısını kontrol etmesini ve hatayı tetikleyen işleme bağlı olarak temel yeniden deneme veya eksponansiyel geri yükleme yöntemini kullanmasını isteyin.
Aşağıdaki kaynakları da incelemenizi öneririz:
Klasik istekler için NETWORK_ERROR.
TOO_MANY_REQUESTS (Hata kodu -8)
Arama uygulaması, API'ye çok fazla istek gönderiyor ve kısıtlanmış veya uygulamanız günlük istek kotasını aşmış.
Olası çözüm
- Eksponansiyel geri yüklemeyle yeniden deneyin.
- Günlük maksimum istek sayınızı artırma isteğinde bulunma
Aşağıdaki kaynakları da incelemenizi öneririz:
Klasik istekler için TOO_MANY_REQUESTS.
GOOGLE_SERVER_UNAVAILABLE (Hata Kodu -12)
Bilinmeyen dahili Google sunucusu hatası.
Olası çözüm
Eksponansiyel geri yüklemeyle yeniden deneyin. Sürekli olarak başarısız oluyorsa hata bildiriminde bulunabilirsiniz.
Aşağıdaki kaynakları da incelemenizi öneririz:
Klasik istekler için GOOGLE_SERVER_UNAVAILABLE.
CLIENT_TRANSIENT_ERROR (Hata Kodu -18)
İstemci cihazda geçici bir hata oluştu.
Standart API istekleri için bu özellik, Kotlin ve Java için Google Play Integrity API kitaplığının 1.3.0 sürümü, Unity için Google Play Integrity Eklentisi'nin 1.3.0 veya sonraki sürümleri ve Play Core Native SDK'nın 1.13.0 veya sonraki sürümlerinde desteklenir.
Olası çözüm
Eksponansiyel geri yüklemeyle yeniden deneyin.
Aşağıdaki kaynakları da incelemenizi öneririz:
Klasik istekler için CLIENT_TRANSIENT_ERROR.
Not: Klasik API isteği kullanılırken raporlandığında döndürülen değer -17'dir.
INTERNAL_ERROR (Hata Kodu -100)
Bilinmeyen dahili hata.
Olası çözüm
Eksponansiyel geri yüklemeyle yeniden deneyin. Sürekli başarısız oluyorsa hata bildiriminde bulunabilirsiniz.
Aşağıdaki kaynakları da incelemenizi öneririz:
Klasik istekler için INTERNAL_ERROR.
STANDARD_INTEGRITY_INTERNAL_ERROR (Hata Kodu -100)
Bilinmeyen dahili hata.
Olası çözüm
Eksponansiyel geri yüklemeyle yeniden deneyin. Sürekli başarısız oluyorsa hata bildiriminde bulunabilirsiniz.
Aşağıdaki kaynakları da incelemenizi öneririz:
Klasik istekler için INTEGRITY_INTERNAL_ERROR bölümüne bakın.
STANDARD_INTEGRITY_INITIALIZATION_FAILED (Hata Kodu -102)
Standard Integrity API başlatılırken bir hata oluştu.
Olası çözüm
Eksponansiyel geri yüklemeyle yeniden deneyin. Sürekli başarısız oluyorsa hata bildiriminde bulunabilirsiniz.
Aşağıdaki kaynakları da incelemenizi öneririz:
Klasik istekler için INTEGRITY_INITIALIZATION_FAILED bölümüne bakın.
Yeniden denenmeyecek hata kodları
Bu gibi durumlarda otomatik yeniden denemelerin işe yaraması pek olası değildir. Ancak kullanıcı, soruna neden olan durumu düzeltirse manuel olarak yeniden deneme işe yarayabilir. Örneğin, kullanıcı Play Store sürümünü desteklenen bir sürüme güncellerse ilk işlemin manuel olarak yeniden denenmesi işe yarayabilir.
API_NOT_AVAILABLE (Hata Kodu -1)
Cihazda yüklü Google Play Store sürümü eski olabilir ve Integrity API kullanılamayabilir. Başka bir olasılık da Integrity API'nin Google Play Console'da etkinleştirilmemiş olmasıdır.
Olası çözüm
- Google Play Console'da Integrity API'nin etkinleştirildiğinden emin olun.
- Kullanıcıdan Google Play Store'u güncellemesini isteyin.
Aşağıdaki kaynakları da incelemenizi öneririz:
Klasik istek için API_NOT_AVAILABLE bölümüne bakın.
PLAY_STORE_NOT_FOUND (Hata Kodu -2)
Cihazda resmi Google Play Store uygulaması bulunamadı.
Olası çözüm
Kullanıcıdan Google Play Store'u yüklemesini veya etkinleştirmesini isteyin.
Aşağıdaki kaynakları da incelemenizi öneririz:
Klasik istek için PLAY_STORE_NOT_FOUND bölümüne bakın.
PLAY_STORE_ACCOUNT_NOT_FOUND (Hata Kodu -4)
Not: Bu, yalnızca IntegrityErrorCode üzerinden klasik istek için raporlanır.
Cihazda Google Play Store hesabı bulunamadı. Play Integrity API'nin artık kimliği doğrulanmamış istekleri desteklediğini unutmayın. Bu hata kodu yalnızca desteklenmeyen eski Play Store sürümlerinde kullanılır.
Olası çözüm
Kullanıcıdan Google Play Store'u güncellemesini ve oturum açmasını isteyin.
APP_NOT_INSTALLED (Hata Kodu -5)
Arama uygulaması yüklü değil. Bir sorun var (muhtemelen bir saldırı).
Olası çözüm
İşlem yapılamaz. Sonucu, istemci tüm bütünlük kontrollerinde başarısız olmuş gibi değerlendirin.
Aşağıdaki kaynakları da incelemenizi öneririz:
Klasik istek için APP_NOT_INSTALLED bölümüne bakın.
PLAY_SERVICES_NOT_FOUND (Hata Kodu -6)
Play Hizmetleri kullanılamıyor veya güncellenmesi gerekiyor.
Olası çözüm
- Kullanıcının Google Play Hizmetleri'ni yüklemesine, güncellemesine veya etkinleştirmesine yardımcı olan Google Play destekli bir deneyim başlatmak için
GET_INTEGRITYveyaGET_STRONG_INTEGRITYiletişim kutusunu kullanın. - Kullanıcıdan Play Hizmetleri'ni yüklemesini, güncellemesini veya etkinleştirmesini isteyin.
Aşağıdaki kaynakları da incelemenizi öneririz:
Klasik istek için APP_NOT_INSTALLED bölümüne bakın.
APP_UID_MISMATCH (Hata Kodu -7)
Arama uygulaması UID'si (kullanıcı kimliği), Paket Yöneticisi'ndekiyle eşleşmiyor.
Olası çözüm
İşlem yapılamaz. Sonucu, istemci tüm bütünlük kontrollerinde başarısız olmuş gibi değerlendirin.
Aşağıdaki kaynakları da incelemenizi öneririz:
Klasik istek için APP_UID_MISMATCH bölümüne bakın.
CANNOT_BIND_TO_SERVICE (Hata Kodu -9)
Google Play Store'daki hizmete bağlanılamadı. Bunun nedeni, cihazda eski bir Play Store sürümünün yüklü olması olabilir.
Olası çözüm
Kullanıcıdan Google Play Store'u güncellemesini isteyin.
Aşağıdaki kaynakları da incelemenizi öneririz:
Klasik istek için CANNOT_BIND_TO_SERVICE bölümüne bakın.
NONCE_TOO_SHORT (Hata Kodu -10)
Not: Bu, yalnızca IntegrityErrorCode üzerinden klasik istek için raporlanır.
Tek seferlik rastgele sayı çok kısa. Tek seferlik rastgele sayı, base64 kodlamasından önce en az 16 bayt olmalıdır.
Olası çözüm
Daha uzun bir tek seferlik rastgele sayı ile tekrar deneyin.
NONCE_TOO_LONG (Hata Kodu -11)
Not: Bu, yalnızca IntegrityErrorCode üzerinden klasik istek için raporlanır.
Tek seferlik rastgele sayı çok uzun. Tek seferlik rastgele sayı, Base64 kodlamasından önce 500 bayttan küçük olmalıdır.
Olası çözüm
Daha kısa bir tek seferlik rastgele sayı ile tekrar deneyin.
NONCE_IS_NOT_BASE64 (Hata Kodu -13)
Not: Bu, yalnızca IntegrityErrorCode üzerinden klasik istek için raporlanır.
Tek seferlik rastgele sayı, base64 web için güvenli sarmasız dize olarak kodlanmamış.
Olası çözüm
Doğru biçimde bir tek seferlik rastgele sayı ile tekrar deneyin.
PLAY_STORE_VERSION_OUTDATED (Hata Kodu -14)
Google Play Store uygulamasının güncellenmesi gerekiyor.
Olası çözüm
Kullanıcıdan Google Play Store'u güncellemesini isteyin.
Aşağıdaki kaynakları da incelemenizi öneririz:
Klasik istek için PLAY_STORE_VERSION_OUTDATED bölümüne bakın.
PLAY_SERVICES_VERSION_OUTDATED (Hata Kodu -15)
Google Play Hizmetleri'nin güncellenmesi gerekiyor.
Olası çözüm
- Kullanıcının Google Play Hizmetleri'ni güncellemesine yardımcı olan Google Play rehberliğinde bir deneyim başlatmak için
GET_INTEGRITYveyaGET_STRONG_INTEGRITYiletişim kutusunu kullanın. - Kullanıcıdan Google Play Hizmetleri'ni güncellemesini isteyin.
Aşağıdaki kaynakları da incelemenizi öneririz:
Klasik istek için PLAY_SERVICES_VERSION_OUTDATED bölümüne bakın.
CLOUD_PROJECT_NUMBER_IS_INVALID (Hata Kodu -16)
Sağlanan bulut projesi numarası geçersiz.
Olası çözüm
Play Integrity API'yi etkinleştirdiğiniz Cloud projesinin Cloud proje numarasını kullanın.
Aşağıdaki kaynakları da incelemenizi öneririz:
Klasik istek için CLOUD_PROJECT_NUMBER_IS_INVALID bölümüne bakın.
REQUEST_HASH_TOO_LONG (Hata Kodu -17)
Not: Bu, yalnızca StandardIntegrityErrorCode üzerinden standart istek kullanıldığında raporlanır.
Sağlanan requestHash çok uzun. requestHash uzunluğu 500 karakterden az olmalıdır.
Olası çözüm
Daha kısa bir requestHash ile tekrar deneyin.
INTEGRITY_TOKEN_PROVIDER_INVALID (Hata Kodu -19)
Not: Bu, yalnızca StandardIntegrityErrorCode üzerinden standart istek için raporlanır.
StandardIntegrityTokenProvider artık geçerli değil.
Bu durum, jeton sağlayıcının süresinin dolması veya kullanıcının Play Store uygulamasının verilerini temizleyerek jeton sağlayıcıyı kaldırması nedeniyle ortaya çıkabilir.
Bu hata kodu yalnızca Standart API istekleri için kullanılabilir. Kotlin ve Java programlama dilleri için kitaplık sürümü 1.3.0, Unity için Google Play Integrity eklentisi 1.3.0 veya sonraki sürümler ve Play Core Native SDK 1.13.0 veya sonraki sürümlerden itibaren desteklenir.
Olası çözüm
Yeni bir Bütünlük Jetonu Sağlayıcı isteyin.
STANDARD_INTEGRITY_INITIALIZATION_NEEDED (Hata Kodu -101)
StandardIntegrityManager başlatılmadı.
Olası çözüm
Önce StandardIntegrityManager_init() numaralı telefonu arayın.
Aşağıdaki kaynakları da incelemenizi öneririz:
Klasik istekler için INTEGRITY_INITIALIZATION_NEEDED sayfasına bakın.
STANDARD_INTEGRITY_INVALID_ARGUMENT (Hata Kodu -103)
Standard Integrity API'ye geçersiz bağımsız değişken iletildi.
Olası çözüm
Doğru bağımsız değişkenle tekrar deneyin.
Aşağıdaki kaynakları da incelemenizi öneririz:
Klasik istekler için INTEGRITY_INVALID_ARGUMENT sayfasına bakın.