KPS adımına serviceErrorDescription parametresi eklendi. KPS isteği ağ veya servis hatasıyla sonuçlandığında gösterilen hata metnini değiştirir. Verilmezse "Kimlik bilgileriniz doğrulanırken anlık bir hata oluştu. Lütfen tekrar deneyin." metni SDK dilinde gösterilir.
Changed
KPS isteği ağ veya servis hatası aldığında artık arka planda otomatik olarak tekrar gönderilmez; kullanıcıya Tekrar Dene ve İptal seçenekleri sunulur. Böylece aynı KPS sorgusunun backend'e iki kez gitmesi önlenir.
Kamerası olmayan cihazlarda akış başlamadan SDKError.CAMERA_NOT_AVAILABLE hatasıyla sonlandırılır ve onProcessFinished başarısız sonuçla çağrılır.
Changed
SDK manifest'indeki tüm donanım uses-feature tanımları (kamera, mikrofon, bluetooth, NFC, konum, portrait ekran) android:required="false" olarak işaretlendi. Böylece SDK, host uygulamanın Google Play'de bu donanımlara sahip olmayan cihazlarda gizlenmesine yol açmaz.
Front, Back, Passport, Hologram, Liveness, Selfie, VideoRecord, KPS ve RuPassportAddressValidation adımlarında backend isteği ağ veya servis hatasıyla sonuçlandığında akış artık doğrudan başarısız sonlandırılmaz. Kullanıcıya "Anlık bir hata oluştu. Lütfen tekrar deneyin." mesajıyla Tekrar Dene ve İptal seçenekleri sunulur. Tekrar Dene adımı yeniden başlatır; İptal akışı kullanıcı tarafından kapatılmış gibi sonlandırır. StepRequestFailed event'i önceki gibi yayınlanır, ancak bu durumda onProcessFinished artık başarısız sonuçla çağrılmaz.
VideoRecord adımına blinkDetectionEnabled ve lipSyncEnabled parametreleri eklendi (varsayılan false). Göz kırpma sayısı ve dudak senkronu skoru yalnızca KYCEvent.InfoLog event'i ile raporlanır; akışı etkilemez.
SDK'nın backend'e gönderdiği istemci logları yapılandırılmış (JSON) içerikle gönderilir ve cihaz/sistem bilgisi her akışta bir kez raporlanır. Log isteğinin alan yapısı değişmedi.
Fixed
NFC adımında NFC adaptörünün kapatılıp yeniden açılması sırasında oluşabilen çökme giderildi; adaptör başlatılamazsa akış hata ekranına yönlenir.
securityCheckEnabled(true) ile çalışan cihaz güvenlik kontrolü iOS SDK ile hizalandı: debugger tespiti eklendi, hook tespiti (Frida/Xposed/LSPosed/Zygisk vb.) bellek haritası ve thread isimleri üzerinden yapılır hale getirildi. Debug olmayan build'lerde cihaz engellendiğinde transaction da iptal edilir. SecurityWarning event'inin detail metni iOS ile ortak formata geçti (compromised:… debugger:… emulator:… hooked:…).
Root yönetim uygulamalarının tespiti için SDK manifest'ine bir <queries> bloğu eklendi; bu blok host uygulamanın manifest'ine birleştirilir.
Video görüşmesiz sürümlerden yalnızca video görüşmede kullanılan bağımlılıklar (Socket.IO, ConstraintLayout) çıkarıldı ve bir görsel WebP'ye dönüştürüldü; SDK boyutu küçüldü.
Passport adımında, okunan pasaportun şablon tipi (new / old / unknown) backend'e passport_type alanıyla gönderilir. Front ve Back adımlarının isteği değişmedi.
Front, Back ve Passport adımları ortak DocumentStep sınıfından türetildi. identifyTimeout, documentResolution, isGlareDetectionEnable ve glare metin parametreleri (glareDetectedText, tooBrightText, tooDarkText, multipleDocumentsDetectedText) üç adımda ortaktır; varsayılan değerler değişmedi (glare algılama kimlik kartında açık, pasaportta kapalı). Kaynak kodu uyumludur; ancak ikili (binary) imzalar değiştiği için host uygulamanın bu sürümle yeniden derlenmesi gerekir.
Front, Back ve Passport adımlarının belge çekim ekranları tek bir ortak ekranda birleştirildi; adımların davranışı ve görünümü değişmedi.
Front, Back ve Passport adımlarına documentResolution(DocumentResolution.LOW | MEDIUM | HIGH | ULTRA) parametresi eklendi. Belge fotoğrafının çekim çözünürlüğünü belirler, varsayılan HIGH.
Hologram adımına recordingDurationMs (kayıt süresi, varsayılan 10000 ms) ve torchEnabled (kayıt boyunca kamera ışığı, varsayılan false) parametreleri eklendi.
Changed
Havelsan id_verification SDK'sı rc72'den 2.0.1'e yükseltildi. Eski Camera1 kamera altyapısı kaldırıldı; tüm kamera adımları CameraX üzerinde çalışır.
Hologram adımı Havelsan'ın yeni hologram video API'sine taşındı. Kayıt arka kamerayla ve sessiz yapılır; bu nedenle adım artık yalnızca kamera izni ister, mikrofon izni istemez.
enableHighestResolution parametresi deprecated oldu ve artık etkisi yoktur; yerine documentResolution kullanılmalıdır (en yüksek çözünürlük için DocumentResolution.ULTRA).
Belge adımlarında ve Liveness adımında çekim tamamlandığında, üzerine fotoğraf yerleştirmek yerine kamera önizlemesi son karede dondurulur.
Fixed
Liveness ve VideoRecord adımlarında yüz fotoğrafları, ekran kaydı ve video/ses kayıtları bellek yerine dosya üzerinden işlenir hale getirildi; büyük kayıtlarda yaşanan bellek yetersizliği (OOM) kaynaklı çökmeler giderildi.
Liveness ve VideoRecord adımlarında eski bir denemeden gelen geç callback'lerin güncel denemenin durumunu bozması engellendi.
Liveness adımında boş dönen ekran kaydı sonucunun gerçek kaydı başarısız saymasına neden olan hata giderildi.
Liveness adımında hata veya tekrar deneme ekranı açıkken uygulama arka plana alınıp geri gelindiğinde akışın baştan başlaması giderildi.
Host uygulamanın onError callback'inin aynı hata için iki kez çağrılabilmesi giderildi.
VideoRecord adımında ses kaydı eksik olduğunda önizleme videosunun oluşturulamaması ve kaydın tamamen iptal edilmesi giderildi.
SDK manifest'inde NFC özelliği artık zorunlu değil (android.hardware.nfcrequired="false"); NFC donanımı olmayan cihazlar host uygulamayı Google Play'de filtrelemez. Bu cihazlarda NFC adımına gelindiğinde akış NFCError.DEVICE_NOT_HAVE_NFC ile hata ekranına yönlenir.
Ekran kaydı içermeyen -no-record artifact varyantları eklendi. Backend'i save_face_match_video bayrağını hiç açmayan entegrasyonlar, Havelsan ekran kaydı izinlerini ve servisini hiç barındırmayan bu paketleri kullanabilir. Varyantlar aynı SDK sürüm numarasını taşır; seçim derleme zamanında yapılır.
ScreenRecordingError.SCREEN_RECORDING_NOT_AVAILABLE hatası eklendi. -no-record bir artifact kullanılırken backend ekran kaydı gerektirdiğinde Liveness adımı, kamera ve izin isteklerinden önce bu hatayla başarısız olur; gereksinim sessizce atlanmaz.
NFC adımında doğum yeri bilgisi okunmaya başlandı.
Changed
Görüntü sıkıştırma davranışı güncellendi.
Kurulum bölümüne artifact varyantları (video görüşme ve ekran kaydı boyutları) hakkında bilgilendirme eklendi; bağımlılık örneği v1.6.15 sürümüne güncellendi.
Daha önce dokümante edilmemiş olan aşağıdaki API'ler dokümana eklendi: ttsConfig ve TTSConfig parametreleri, updateUIConfig, NFC adımının metin parametreleri (scanTitle, scanDescription, cancelButtonText, retryTitle, retryDescription, disabledTitle, disabledDescription, disabledButtonText), Passport adımının nationality parametresi, Front ve Back adımlarının enableHighestResolution parametresi ve RuPassportAddressValidation adımı.
Fixed
Liveness anlık görüntüsünün alınamaması ve siyah bant (letterboxing) sorunu giderildi.
Liveness anlık görüntüsü artık çözümleme gecikmesi olmadan gösteriliyor.
UIConfig'e dark mode desteği eklendi: isDarkTheme bayrağı ve opsiyonel darkColors bloğu. Host uygulama kendi dark-mode durumunu bildirdiğinde SDK, verilmişse host'un darkColors paletini, verilmemişse kendi built-in koyu paletini kullanır.
Yeni KPS (Kimlik Paylaşımı Sistemi) adımı eklendi. Kullanıcının kimlik bilgilerini otomatik olarak doğrular, kendine özgü bir parametresi yoktur.
Video görüşme sağlayıcısının seçilebilmesi eklendi: videoCallProvider ve roomName parametreleri.
securityCheckEnabled parametresi eklendi. Etkinleştirildiğinde cihazda root/emülatör/hook tespiti yapılır; tespit her zaman bir SecurityWarning event'i yayınlar ve debug olmayan build'lerde akışı bir hata ekranıyla durdurur. Varsayılan kapalı.
Ağ, sunucu, zaman aşımı, red, kimlik okuma, belge otomatik algılama, video kaydı, konum izni ve video görüşme hataları için yeni hata enum aileleri eklendi (NetworkError, ServerError, TimeOutError, RejectedError, IdentityReadFailedError, DocumentAutoDetectError, VideoRecordError, PermissionError, VideoCallError). Ayrıca daha önce dokümante edilmemiş olan ekran kaydı hataları (ScreenRecordingError) da dokümana eklendi.
Changed
[Breaking] Hata tipleri yeniden adlandırıldı, geriye dönük uyumluluk shim'i yoktur: KYCError (enum) → SDKError, KYCCameraError → CameraSourceError, KYCNFCError → NFCError. Bazı hata case'leri de yeniden adlandırıldı/birleştirildi (örn. PERMISSION_NOT_GRANTED + CAMERA_PERMISSION_REQUIRED → CAMERA_PERMISSION_DENIED, FLASH_MODE → FLASH_TOGGLE_FAILED, NOT_ENABLE → NFC_NOT_ENABLED). Detaylar için Hata Yönetimi bölümüne bakınız.
Havelsan id_verification SDK'sı rc71'e yükseltildi (jmrtd 0.7.42 / BC 1.78.1).
Fixed
KPS adımının NFC sonrası hemen ateşlenmesi durumunda connection reset ile başarısız olması giderildi.
Front, Back ve Passport adımlarında kamera hatası sonrası retry'ın belge algılamayı (documentAutoDetection) yeniden başlatmaması giderildi; önceden kamera önizlemesi canlı görünse de algılama bir daha tetiklenmiyordu.
SDK'nın kullanılmayan launcher icon kaynakları AAR'dan kaldırıldı; host uygulamanın kendi launcher icon'u artık bazı Android 8+ cihazlarda SDK'nınkiyle ezilmiyor.
Host'un tanımladığı adım listesi backend'in beklediğiyle uyuşmadığında akış artık düzgün bir hata ekranına (APP_IDENTIFIER_STEPS_IS_NOT_SAME_API) yönlendiriyor.
NFC doğrulaması genel bir sebeple başarısız olduğunda kullanıcıya gösterilecek ayrı, yerelleştirilmiş bir hata metni eklendi.
İki yeni adım eklendi: Selfie (Özçekim) ve VideoRecord (Sesli Video Doğrulama). VideoRecord adımında kullanıcının okuyacağı metin (prompt_text) backend tarafından iletilir.
completedScreenTexts parametresi eklendi. Başarı ekranının başlık, açıklama ve buton metinleri özelleştirilebilir hale getirildi.
language parametresi eklendi. SDK dili tr, en veya ru olarak seçilebilir; İngilizce ve Rusça yerelleştirme eklendi.
UIConfig'in tüm renk ve şekil ayarları erişime açıldı: 16 renk (primaryColor, surfaceColor, backgroundColor, errorColor, successColor, overlayColor, titleColor, descriptionColor vb.) ve 5 şekil (cardCornerRadius, imageFrameCornerRadius, bottomSheetCornerRadius, cameraOverlayCornerRadius) ayarı artık host uygulamalar tarafından kullanılabilir.
Changed
ID verification versiyonu güncellendi. (r1.0.0-rc68)
Fixed
Video görüşme başlatma (video-call-start) isteğinin boş yanıt dönmesi durumunda appointment_id'nin kaybolması ve akışın yarıda kalması giderildi.
Hızlı adım geçişlerinde sesli yönlendirmenin (TTS) önceki adımdan çalmaya devam etmesi düzeltildi.
Uygulama arka plana alındığında canlılık (liveness) oturumunun kesintiye uğraması ele alındı.
Akış sonlandığında entegre uygulamaya dönüş yapılmayan durumlar düzeltildi.
onProcessFinished ile dönen KYCProcessResult.Failed ve Cancelled sonuçlarına, akışın gerçek başarısızlık/iptal sebebini taşıyan bir reason alanı eklendi.