SSS ve sorun giderme
Kurulum
Bölüm başlığı “Kurulum”Desteklenen en düşük iOS sürümü nedir?
Bölüm başlığı “Desteklenen en düşük iOS sürümü nedir?”iOS 13.0. Podfile dosyanızda platform :ios, '13.0' ayarlayın. CocoaPods 1.16 veya üstü de gerekir. Bkz. Kurulum.
pod install techsigncloudlibs paketini bulamıyor veya kimlik bilgisi istiyor. Sorun ne?
Bölüm başlığı “pod install techsigncloudlibs paketini bulamıyor veya kimlik bilgisi istiyor. Sorun ne?”Pod, Techsign’ın GitHub’daki özel spec deposundan (https://github.com/Techsign/PODSPECS.git) dağıtılır. GitHub hesabınızın bu depoya okuma erişimi olmalıdır; Techsign temsilcinizden isteyin. Erişim için normal Git credential helper’ınızı veya SSH anahtarınızı kullanın; Podfile dosyasına veya depo URL’sine erişim token’ı yazmayın.
.xcodeproj mi yoksa .xcworkspace mi açılmalı?
Bölüm başlığı “.xcodeproj mi yoksa .xcworkspace mi açılmalı?”pod install sonrasında her zaman .xcworkspace dosyasını açın.
iOS Simülatöründe test edebilir miyim?
Bölüm başlığı “iOS Simülatöründe test edebilir miyim?”Akış kameraya, NFC adımı için de NFC okuyucuya ihtiyaç duyar; simülatörde bunlar yoktur. Doğrulama adımlarını gerçek bir iPhone’da test edin.
Uygulama kamerayı veya NFC okuyucuyu açınca kapanıyor.
Bölüm başlığı “Uygulama kamerayı veya NFC okuyucuyu açınca kapanıyor.”iOS, kullanım açıklaması olmadan kamera veya NFC kullanan uygulamayı sonlandırır. Info.plist dosyasına NSCameraUsageDescription ve NFC için NFCReaderUsageDescription ekleyin:
<key>NSCameraUsageDescription</key><string>Kimlik belgenizi taramak ve yüzünüzü doğrulamak için kamera kullanılır.</string><key>NFCReaderUsageDescription</key><string>Kimlik belgenizdeki çipi okumak için NFC kullanılır.</string>ProveIDApiClient ne zaman yeniden üretilmeli?
Bölüm başlığı “ProveIDApiClient ne zaman yeniden üretilmeli?”Prove ID API’si değiştiğinde ve yeni bir servise veya alana ihtiyaç duyduğunuzda. Güncel OpenAPI tanımını API Referansı sekmesinden indirin ve OpenAPI Generator’ı Kurulum sayfasındaki seçeneklerle (library=alamofire, responseAs=Result) çalıştırın; böylece örnekler çalışmaya devam eder.
Token ve güvenlik
Bölüm başlığı “Token ve güvenlik”Prove ID API kimlik bilgilerimi nereye koymalıyım?
Bölüm başlığı “Prove ID API kimlik bilgilerimi nereye koymalıyım?”Yalnızca sunucunuza. Uygulama, kullanıcı uygulamanıza giriş yaptıktan sonra kendi sunucunuzdan kısa ömürlü bir erişim token’ı alır. Bkz. Kimlik doğrulama ve Hızlı başlangıç.
Bir çağrı 401 dönüyor. Ne yapmalıyım?
Bölüm başlığı “Bir çağrı 401 dönüyor. Ne yapmalıyım?”Erişim token’ı geçersiz veya süresi dolmuş. Sunucunuzdan yeni bir token alın, tekrar ayarlayın ve adımı yeniden deneyin:
ProveIDApiClientAPI.customHeaders["Authorization"] = "Bearer \(newToken)"Token’ı sonra kullanmak için saklayabilir miyim?
Bölüm başlığı “Token’ı sonra kullanmak için saklayabilir miyim?”Hayır. Yalnızca o anki doğrulama süresince bellekte tutun ve akış bitince kaldırın. UserDefaults, dosya veya Keychain’de saklamayın ve log’lamayın.
Kullanıcının doğrulanıp doğrulanmadığına nerede karar vermeliyim?
Bölüm başlığı “Kullanıcının doğrulanıp doğrulanmadığına nerede karar vermeliyim?”Sunucunuzda. Uygulama transactionId değerini sunucunuza gönderir; sunucunuz işlemin oturum açmış kullanıcıya ait olduğunu kontrol eder ve sonucu Prove ID’den okur. Bir kullanıcıyı yalnızca uygulamanın bildirdiğine dayanarak onaylamayın. Bkz. Sonuçlar.
Belge görüntüleri ve videolar cihazda ne kadar süre tutulur?
Bölüm başlığı “Belge görüntüleri ve videolar cihazda ne kadar süre tutulur?”Hiç tutulmamalıdır. Belge görüntülerini doğrudan bellekten gönderin; fotoğraf arşivine veya dosyalara kaydetmeyin. Canlılık ve hologram videolarını gönderir göndermez silin:
try? FileManager.default.removeItem(at: videoURL)Hangi iPhone’lar kimlik kartı çipini okuyabilir?
Bölüm başlığı “Hangi iPhone’lar kimlik kartı çipini okuyabilir?”iPhone 7 ve sonrası; NFC yeteneği ve A0000002471001 tanımlayıcısı Kurulum sayfasındaki gibi ayarlanmış olmalıdır. NFC adımını göstermeden önce çalışma anında kontrol edin:
import CoreNFC
let hasNfc = NFCNDEFReaderSession.readingAvailableOkuma AuthenticationFailed veya ConnectionError ile başarısız oluyor.
Bölüm başlığı “Okuma AuthenticationFailed veya ConnectionError ile başarısız oluyor.”Belge telefondan uzaklaştı veya bağlantı koptu. Kullanıcıdan telefon kılıfını çıkarmasını, telefonun üst kısmını belgenin ortasına yerleştirmesini ve okuma bitene kadar sabit tutmasını isteyin, ardından tekrar deneyin.
Okuma InvalidMRZKey ile başarısız oluyor.
Bölüm başlığı “Okuma InvalidMRZKey ile başarısız oluyor.”read metoduna verilen seri numarası, doğum tarihi veya son geçerlilik tarihi belgeyle eşleşmiyor. Bu bilgiler belge çekimi sonucundan (capturedData.sno, bdat, edat) gelir; kullanıcıya gösterip onaylamasını veya düzeltmesini isteyin, sonra tekrar okuyun.
NFC okuyucu hangi tarih biçimini bekler?
Bölüm başlığı “NFC okuyucu hangi tarih biçimini bekler?”dd.MM.yyyy; UTC’de Date değerlerine çevrilmiş olarak:
let formatter = DateFormatter()formatter.dateFormat = "dd.MM.yyyy"formatter.timeZone = TimeZone(secondsFromGMT: 0)let birth = formatter.date(from: capturedData.bdat ?? "")iOS NFC penceresi kapanıyor veya kendi ekranımda gösterdiğim bir hatayı da gösteriyor.
Bölüm başlığı “iOS NFC penceresi kapanıyor veya kendi ekranımda gösterdiğim bir hatayı da gösteriyor.”Kendi ekranınızda gösterdiğiniz hatalar için errorMessage closure’ından suppressError: true dönün; böylece iOS bunları NFC penceresinde ayrıca göstermez. Tam liste Hatalar sayfasındadır.
Canlılık
Bölüm başlığı “Canlılık”Hangi hareketi istemeliyim?
Bölüm başlığı “Hangi hareketi istemeliyim?”İşlem başlatılırken Prove ID’nin gestureType olarak döndüğü hareketi. Bunu LivenessController.GESTURE_TYPE karşılığına çevirin:
gestureType |
GESTURE_TYPE |
|---|---|
EYE |
.EYE |
MOUTH |
.MOUTH |
HEAD-VERTICAL |
.HEAD_VERTICAL |
HEAD-HORIZONTAL |
.HEAD_HORIZONTAL |
MULTIDIR_… |
.RANDOMIZED_MULTI_GESTURE |
MULTIDIR_ ile başlayan bir gestureType ne anlama gelir?
Bölüm başlığı “MULTIDIR_ ile başlayan bir gestureType ne anlama gelir?”Kullanıcı başını art arda birkaç yöne çevirir. Yönler önekten sonra - ile ayrılmış olarak gelir:
let directions = gestureType.dropFirst("MULTIDIR_".count).split(separator: "-")LivenessController.GESTURE_TYPE = .RANDOMIZED_MULTI_GESTURELivenessController.RANDOMIZED_GESTURES = directions.compactMap { HeadPosition(string: String($0)) }Hareket skoru düşük. Ne yapmalıyım?
Bölüm başlığı “Hareket skoru düşük. Ne yapmalıyım?”Baş hareketlerinde gestureModel.gestureScore hareketin ne kadar iyi yapıldığını gösterir. Skor düşükse (örneğin 0.8 altında) kullanıcıdan tekrar denemesini isteyin ve startCapture() metodunu yeniden çağırın. Bkz. Canlılık.
onMultiFaceDetected veya onVideoCanceled çağrılıyor.
Bölüm başlığı “onMultiFaceDetected veya onVideoCanceled çağrılıyor.”Kadrajda birden fazla yüz vardı veya kayıt sırasında yüz kadrajdan çıktı. Kullanıcıdan kadrajda tek başına olmasını, telefonu göz hizasında tutmasını ve tekrar denemesini isteyin.
GESTURE_TYPE ayarladım ama onVideoCaptured hiç çağrılmıyor.
Bölüm başlığı “GESTURE_TYPE ayarladım ama onVideoCaptured hiç çağrılmıyor.”Hareket kontrolü açıkken (IS_GESTURE_CONTROL_ENABLED = true) video GestureDelegate.gestureControlled(gestureModel:) içinde gestureModel.videoURL olarak gelir. onVideoCaptured yalnızca pasif video için kullanılır. Bkz. Canlılık.
Önceki çalıştırmadan bir ayar hâlâ geçerli.
Bölüm başlığı “Önceki çalıştırmadan bir ayar hâlâ geçerli.”LivenessController ayarları statiktir. Her yakalama oturumundan önce hepsini yeniden ayarlayın.
Kapsam ve açık sorular
Bölüm başlığı “Kapsam ve açık sorular”Bu kılavuzlarda henüz neler yok?
Bölüm başlığı “Bu kılavuzlarda henüz neler yok?”Bunlar örnek uygulamalarda ve/veya OpenAPI tanımında yer alır; iOS kılavuzlarında adım adım anlatılmaz. Uç noktalar için API Referansı sekmesini kullanın:
- Uluslararası belge şablonları:
getCountryTemplates,checkTemplateIDCard,addSecondaryTemplate transferTransaction- Trust Engine / kara liste
verify-with-voice(FaceServiceAPI.verifyFaceWithVoice)- İstemci ayarları
Prove ID iletişim noktanıza sorabileceğiniz token ve rol soruları
Bölüm başlığı “Prove ID iletişim noktanıza sorabileceğiniz token ve rol soruları”Kuruluşunuz için Prove ID iletişim noktanız onaylayana kadar bunları açık maddeler olarak ele alın:
POST /oauth/access_tokenile alınanclient_credentialstoken’ının mobilid/*veface/*çağrıları için kabul edilip edilmediği (örnek uygulamalar sunucu tarafında kullanıcı adı/şifre girişi kullanır)- İşleme özgü (transaction-scoped) bir token olup olmadığı
- Mobil API kullanıcısına atanacak en az yetkili roller
- Tam kontrol listesi ve skor eşikleri (Sonuçlar sayfasındaki geçme/kalma kararı kuruluşa göredir)