İçeriğe geç

SSS ve sorun giderme

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.

pod install sonrasında her zaman .xcworkspace dosyasını açın.

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:

Info.plist
<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>

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.

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ıç.

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.readingAvailable

Okuma 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.

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.

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.

İş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_GESTURE
LivenessController.RANDOMIZED_GESTURES = directions.compactMap { HeadPosition(string: String($0)) }

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.

LivenessController ayarları statiktir. Her yakalama oturumundan önce hepsini yeniden ayarlayın.

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_token ile alınan client_credentials token’ının mobil id/* ve face/* ç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)