Bu, bir çox developerin - xüsusən yeni başlayanların - gec öyrəndiyi bir məsələdir. Əsas məqamlara baxaq.
PROBLEM NƏDİR?
Play Store-da, məsələn, 0.99$-a satdığın tətbiqin APK faylını kimsə öz cihazından çıxarıb (extract) başqalarına göndərə bilər. Qarşı tərəf Play Store-un ödəniş axınına (payment flow) heç toxunmadan tətbiqi quraşdırır. Nəticədə sən satırsan, başqaları pulsuz paylaşır.
NİYƏ QARŞISINI ALMAQ ÇƏTİNDİR?
Əsas ziddiyyət budur: əgər tətbiqin tam "offline" qurulubsa - yəni INTERNET icazəsi yoxdursa və Data Safety formasında "şəbəkə istifadə etmir" yazmısansa - praktiki olaraq heç bir anti-piraçılıq mexanizmi işləməyəcək. Çünki "bu istifadəçi həqiqətən ödəyibmi?" sualının cavabını yalnız bir serverə (Google-a) sorğu göndərməklə öyrənmək olar. Yəni qorunma istəyirsənsə, şəbəkə çağırışı qaçılmazdır.
HƏLL: PLAY INTEGRITY API
Google-un öz rəsmi alətidir. Tətbiq açılanda Google-dan soruşur: "Bu quraşdırma Play Store vasitəsilə, lisenziyalı istifadəçi tərəfindən edilibmi?"
→ Cavab "yox"dursa, istifadəçiyə "zəhmət olmasa Play Store-dan quraşdırın" ekranı göstərib tətbiqi bloklayırsan.
→ Ən kiçik dəyişiklikdir, amma keçilməsi (bypass) ən çətin olan üsuldur.
PRAKTİKİ ADDIMLAR:
INTERNET icazəsini əlavə et.
İlk açılışda (və vaxtaşırı) Play Integrity ilə yoxlama et.
Lisenziya yoxdursa - "gate" ekranı ilə blokla.
Privacy Policy və Data Safety formasını yenilə (artıq şəbəkə istifadə edirsən, bunu bildirmək məcburidir).
Google-un gündəlik kvotası daxilində pulsuzdur.
VACİB QEYDLƏR:
Heç bir üsul 100% qorumur. Məqsəd oğurluğu "mümkünsüz" yox, "çətin və zəhmətli" etməkdir.
Tamamlayıcı tədbirlər: kod obfuskasiyası (R8 / ProGuard) və server tərəfli yoxlama.
Uzunmüddətli alternativ: bəzən freemium və ya abunə modeli birdəfəlik ödənişdən daha dayanıqlı gəlir gətirir.
Yeni başlayan developersənsə - tətbiqini yayımlamazdan ƏVVƏL bu məqamları düşün. Sonradan arxitekturanı dəyişmək həmişə daha çətindir.
APİ haqqında ətraflı: https://developer.android.com/google/play/integrity
#AndroidDev #MobileDevelopment #PlayStore #SoftwareEngineering
