-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
on-behalf-of: @Jumio mdev@jumio.com
- Loading branch information
Showing
127 changed files
with
8,345 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
{ | ||
"1.0.0": "https://repo.mobile.jumio.ai/com/jumio/ios/jumio-mobile-legacy-wrapper/1.0.0/ios-jumio-mobile-legacy-wrapper-1.0.0.zip", | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
![Version](https://img.shields.io/github/v/release/Jumio/Mobile-SDK-IOS?style=flat) | ||
![License](https://img.shields.io/cocoapods/l/JumioMobileSDK.svg?style=flat) | ||
![Platform](https://img.shields.io/cocoapods/p/JumioMobileSDK.svg?style=flat) | ||
[![Pod Version](https://img.shields.io/cocoapods/v/JumioMobileSDK.svg?style=flat)](https://cocoapods.org/pods/JumioMobileSDK) | ||
[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) | ||
[![Swift 3.0-5.x](http://img.shields.io/badge/Swift-3.x,%204.x%20&%205.x-orange.svg?style=flat)](https://swift.org/) | ||
|
||
[Improvement]: https://img.shields.io/badge/Improvement-green "Improvement shield" | ||
[Change]: https://img.shields.io/badge/Change-blue "Change shield" | ||
[Fix]: https://img.shields.io/badge/Fix-success "Fix shield" | ||
|
||
# Change Log | ||
All notable changes, such as SDK releases, updates and fixes, are documented in this file. | ||
For detailed technical changes please refer to our [Transition Guide](transition_guide.md). | ||
|
||
## Support Period | ||
|
||
Current Jumio Legacy Wrapper SDK version: __1.0.0__ | ||
Please refer to our [SDK maintenance and support policy](maintenance_policy.md) for more information about Mobile SDK maintenance and support. | ||
|
||
## SDK Version: __1.0.0__ | ||
![Improvement] Initial version | ||
|
||
![Improvement] Integrated Jumio SDK 4.9.1 | ||
|
||
## Contact | ||
If you have any questions regarding our implementation guide please contact Jumio Customer Service at support@jumio.com. The Jumio online helpdesk contains a wealth of information regarding our service including demo videos, product descriptions, FAQs and other things that may help to get you started with Jumio. [Check it out at here.](https://support.jumio.com.) |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,151 @@ | ||
![FAQ](images/jumio_feature_graphic.jpg) | ||
|
||
# FAQ | ||
|
||
## Table of Contents | ||
- [User Consent](#user-consent) | ||
- [Autocapture](#autocapture) | ||
- [Improving User Experience and Reduce Drop-off Rate](#improve-user-experience-and-reduce-drop-off-rate) | ||
- [Managing Errors](#managing-errors) | ||
- [Reducing the Size of Your App](#reducing-the-size-of-your-app) | ||
- [Strip Unused Frameworks](#strip-unused-frameworks) | ||
- [Bitcode](#bitcode) | ||
- [Jumio Authentication Workflow Integration](#jumio-authentication-workflow-integration) | ||
- [Fallback and Manual Capturing](#fallback-and-manual-capturing) | ||
- [Language Localization](#language-localization) | ||
- [Overview of Scanning Methods](#overview-of-scanning-methods) | ||
- [Glossary of Commonly Used Abbreviations ](#glossary) | ||
- [Simulator Support](#simulator-support) | ||
- [Jumio Support](#jumio-support) | ||
|
||
## User Consent | ||
User consent is now acquired for all users to ensure the accordance with biometric data protection laws. Depending on the legal requirements, consent can be acquired in one of two ways: __Active__ or __passive__. | ||
|
||
For __active__ consent instances, the user needs to accept the consent items explicitly, e.g. by enabling a UI switch or checking a checkbox for each consent item. For __passive__ consent instances, it is enough to present the consent text and URL to the user. The user implicitly accepts the passive consent items by continuing with the journey. | ||
|
||
<p float="left"> | ||
<img src="images/consent/user_consent_passive.png" alt="Acquiring passive user consent" width="20%" height="20%"> | ||
<img src="images/consent/user_consent_active_off.png" alt="Acquiring active user consent" width="20%" height="20%"> | ||
<img src="images/consent/user_consent_active_on.png" alt="Acquiring passive user consent" width="20%" height="20%"> | ||
</p> | ||
|
||
## Autocapture | ||
|
||
The new Autocapture experience allows users to capture multiple images within a single camera session. For example the user can be guided to first capture the front of a document, then flip the document and capture the back of a document. | ||
|
||
https://user-images.githubusercontent.com/27801945/232710790-9caf1be0-145e-4cf6-b1ff-5a7b98d4ab66.mov | ||
|
||
## Improve User Experience and Reduce Drop-off Rate | ||
When evaluating user flows, one of the most commonly used metrics is the rate of drop-offs. At Jumio, we see considerable variance in drop-off rates across industries and customer implementations. For some implementations and industries, we see a higher rate of drop-offs on the first screens when compared with the average. | ||
Scanning an ID with sensitive personal data printed on it naturally creates a high barrier for participation on the part of the end user. Therefore, conversion rates can be significantly influenced when the application establishes a sense of trust and ensures that users feel secure sharing their information. | ||
|
||
One pattern that is recognizable throughout all of our customers’ SDK implementations: the more seamless the SDK integration, and the better job is done of setting user expectations prior to the SDK journey, the lower the drop-off rate becomes. | ||
|
||
Our SDK provides a variety of [customization options](integration_guide.md#customization) to help customers achieve a seamless integration. For customers using the standard SDK workflow, our [Surface tool](https://jumio.github.io/surface-tool/) provides an easy-to-use WYSIWYG interface to see simple customization options that can be incorporated with minimal effort and generate the code necessary to implement them. | ||
|
||
### Example of a Non-Ideal SDK Integration: | ||
![Onboarding bad case](images/onboardingBadCase.jpg) | ||
- Default SDK UI is used and is presented on one of the first screens during onboarding. The user is unprepared for the next steps and might not understand the intention behind the request to show their ID. | ||
|
||
### Suggested Improvements with Additional Customization: | ||
![Onboarding good case](images/onboardingGoodCase.jpg) | ||
- Host application has an explanatory help screen that explains what will happen next and why this information is needed. | ||
- In `multipart` ScanParts, the user is guided to move to the next part (e.g. back side of the identity card) with an animation. The extraction should be disabled during this guidance. | ||
- SDK is customized to create a completely seamless integration in the UX of our customers. | ||
- Also after the Jumio workflow that shows the displayed results and/or a message that the ID is currently verified, which might take some minutes. | ||
|
||
## Managing Errors | ||
Not every error that is returned from the SDK should be treated the same. The error codes listed for [ID Verification](integration_guide.md#error-codes) should be handled specifically. | ||
|
||
The following table highlights the most common error codes which are returned from the SDK and explains how to handle them appropriately in your application. | ||
|
||
| Code | Cause | Recommended Handling | | ||
| :----: | :------- | :--------------------------- | | ||
| A[xx][yyyy] | Caused by temporary network issues like a slow connection. | Advise to check the signal and retry the SDK journey. | | ||
| E[xx][yyyy] | Flight mode is activated or no connection available. | The user should be asked to disable flight mode or to verify if the phone has proper signal. Advise to connect to WIFI and retry the SDK journey afterwards. | | ||
| G[00][0000] | The user pressed back or X to exit the SDK while no error view was presented. | Reasons for this could be manyfold. Often it might be due to the fact that the user didn't have his identity document at hand. Give the user the option to retry. | | ||
| J[xx][yyyy] | The SDK journey was not completed within the session's max. lifetime. (The default is 15 minutes.) | The user should be informed about the timeout and be directed to start a new Jumio SDK session. | | ||
|
||
### Ad blockers or Firewall | ||
End users might face the situation where they are connected to a network that can't reach our Jumio endpoints. | ||
Possible reasons for this might be ad blockers on the device, network wide ad blockers or network specific firewall settings. | ||
In these cases the SDK will return a specific error code: A10900. If this error is received we suggest to add a screen where the user is advised to switch network and/or turn off possible ad blockers. | ||
|
||
## SDK Size | ||
The Netverify SDK contains a wide range of different scanning methods. The SDK is able to capture identity documents and extract information on the device using enhanced machine learning and computer vision technologies. If you want to reduce the size of the SDK within your application, there are several ways to achieve this: | ||
|
||
The following table shows a range of different product configurations with the frameworks that are required and the corresponding application size. These measurements reflect the extra size that Jumio components add to your app download size and are based on our [sample application](../sample) after being uploaded to the [Appstore](https://apps.apple.com/us/app/jumio-showcase/id639531180). | ||
|
||
| Product Configuration | Size | Modules | | ||
| :------------------------- | :----: | :-----: | | ||
| Slim | 1.74 MB | base | | ||
| All | 3.66 MB | base, nfc | | ||
| All + DefaultUI | 4.21 MB | base, nfc, defaultUI | | ||
| All + IProov | 7.50 MB | base, nfc, iproov | | ||
| All + Datadog | 4.70 MB | base, nfc, datadog | | ||
| All + Liveness | 6.34 MB | base, nfc, liveness | | ||
|
||
In case you use a combination of these products, make sure to add frameworks only once to your app and that those frameworks are linked and embedded in your Xcode project. | ||
|
||
### Bitcode | ||
Bitcode is an intermediate representation of a compiled program. Apps you upload to App Store Connect that contain Bitcode will be compiled and linked on the App Store. Including Bitcode will allow Apple to re-optimize your app binary in the future without requiring you to submit a new version of your app to the App Store. | ||
|
||
For iOS apps, Bitcode is the default, but is optional. | ||
If you provide Bitcode, all apps and frameworks in the app bundle (all targets in the project) need to include Bitcode. | ||
|
||
Read more about Bitcode in the [Apple documentation](https://help.apple.com/xcode/mac/current/#/devbbdc5ce4f). | ||
|
||
## Language Localization | ||
Our SDK supports localization for different languages and cultures. All label texts and button titles can be changed and localized using the `Localizable-Jumio.strings` file. Adapt the values to your required language, add it to your app or framework project, mark it as Localizable and set `resourcesBundle` property in Configuration class. | ||
|
||
This way, when upgrading our SDK to a newer version your localization file won't be overwritten. Make sure, that the content of this localization file is up to date after an SDK update. If you're having issues with Localization, please refer to our [Known Issues](known_issues.md#language-localization-issues) | ||
|
||
After adding the localization files to your project assign the Bundle reference to `resourcesBundle` attribute from `NetverifyConfiguration` or `DocumentVerificationConfiguration` classes. This is shown in following snippet with Netverify: | ||
``` | ||
let config = NetverifyConfiguration() | ||
config.resourcesBundle = Bundle.main | ||
``` | ||
|
||
__Note:__ If using CocoaPods, the original file is located under `/Pods/Jumio/Localization`. | ||
|
||
Currently, the following languages are automatically supported for your convenience: [supported languages](../README.md#language-localization) | ||
|
||
Runtime language changes *within* the SDK or separate language support (meaning the SDK language differs from the overall device languages) is not possible. | ||
|
||
### Accessibility | ||
Our SDK supports accessibility features. Visually impaired users can enable __VoiceOver__ or increase __text size__ on their device. VoiceOver uses separate values in the localization file, which can be customized. | ||
|
||
## Overview of Scanning Methods | ||
|
||
#### Autocapture | ||
Combines all previously existing scanning methods into one automatic, seamless experience. | ||
|
||
<p float="left"> | ||
<img src="images/capturing_methods/autocapture_01.png" alt="Autocapture Success" width="30%" height="30%"> | ||
<img src="images/capturing_methods/autocapture_02.png" alt="Autocapture Scanning" width="30%" height="30%"> | ||
</p> | ||
|
||
#### Barcode | ||
PDF417 barcode data extraction, for example from US and Canadian driver licenses. | ||
|
||
<p float="left"> | ||
<img src="images/capturing_methods/barcode_scanning_01.png" alt="Barcode Empty" width="30%" height="30%"> | ||
<img src="images/capturing_methods/barcode_scanning_02.png" alt="Barcode Document" width="30%" height="30%"> | ||
</p> | ||
|
||
#### Manual Capture | ||
Manual scanning (taking a picture) using the shutterbutton, fallback option in case user is having trouble. | ||
|
||
<p float="left"> | ||
<img src="images/capturing_methods/manual_capturing_01.png" alt="Manual Capture Empty" width="30%" height="30%"> | ||
<img src="images/capturing_methods/manual_capturing_02.png" alt="Manual Capture Document" width="30%" height="30%"> | ||
</p> | ||
|
||
## Glossary | ||
A [quick guide to commonly used abbreviations](integration_glossary.md) throughout the documentation which may not be all that familiar. | ||
|
||
## Simulator Support | ||
We don't support the use of the Jumio SDK on simulator, please only run it on physical devices. When running Jumio Legacy Wrapper SDK, an empty ViewController will be presented. | ||
|
||
## Jumio Support | ||
The Jumio development team is constantly striving to optimize the size of our frameworks while increasing functionality, to improve your KYC and to fight fraud. If you have any further questions, please reach out to our [support team](mailto:support@jumio.com). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
![FAQ](images/jumio_feature_graphic.jpg) | ||
|
||
# Glossary | ||
|
||
## Commonly Used Abbrevations | ||
|
||
### CVV | ||
Card Verification Value: A verification number on any credit card, usually 3-4 digits long | ||
|
||
### DOB | ||
Date Of Birth | ||
|
||
### DV | ||
Driver’s License | ||
|
||
### GDPR | ||
[General Data Protection Regulation](https://gdpr-info.eu) (EU): EU-wide data privacy regulation protecting natural persons and their personal data, especially in regards to collecting, processing and the free movement of that data | ||
|
||
### ISO 3166-1 | ||
ISO standard detailing standard country code abbreviations (like AUT, DEU, etc); either [alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) (using two letters) or [alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) (using three letters) | ||
|
||
### KYC | ||
Know Your Customer | ||
|
||
### KYX | ||
Know Your Everything: Jumio’s end-to-end [identity platform](https://www.jumio.com/kyx/) | ||
|
||
### MRP | ||
Machine Readable Passport | ||
|
||
### MRTD | ||
Machine Readable Travel Document | ||
|
||
### eMRTD | ||
Electronic Machine Readable Travel Document | ||
|
||
### NFC | ||
[Near-Field Communication:](https://en.wikipedia.org/wiki/Near-field_communication#Identity_and_access_tokens) Establishes wireless connection from one device to another, but only if that device is in close enough proximity; can act as an electronic identity document / electronic identity token and is already used in many identity documents worldwide | ||
|
||
### NV | ||
Netverify | ||
|
||
### OAuth2 | ||
An [industry-standard protocol for authorization](https://oauth.net/2/) | ||
|
||
### OAuth2 Access Token | ||
An [access token using the OAuth2 protocol](https://oauth.net/2/access-tokens/) to make safe API calls and securely access resources from a server | ||
|
||
### OCR | ||
[Optical Character Recognition:](https://en.wikipedia.org/wiki/Optical_character_recognition) Converts images of text, such as text on IDs, to machine-encoded and machine-readable text | ||
|
||
### PII | ||
Personal(ly) Identifiable Information: All of our products deal with highly sensitive data regarding information relating to an identifiable person, which is handled with great care, the best possible security and in compliance with the GDPR | ||
|
||
### PP | ||
Passport | ||
|
||
### 3D-Liveness | ||
Liveness check: The 3D-liveness check makes sure that a face scan performed was not of a picture, but of an actual, living person who also matches the picture on the previously scanned document |
Oops, something went wrong.