Skip to content

Commit

Permalink
Final commit for 3.6.0
Browse files Browse the repository at this point in the history
  • Loading branch information
JumioMobileTeam committed May 20, 2020
1 parent 5e89d6e commit 8f9349d
Show file tree
Hide file tree
Showing 44 changed files with 222 additions and 92 deletions.
63 changes: 44 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
![Jumio](docs/images/jumio_feature_graphic.jpg)

![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/)

# Table of Content
- [Release notes](#release-notes)
- [Basic Setup](#basic-setup)
Expand All @@ -9,17 +16,17 @@


# Release notes
### SDK version: 3.5.0
### SDK version: 3.6.0

#### Changes
* New Singapore datacenter compatibility [Netverify/Fastfill, Authentication, Document Verification, BAM Checkout]
* Improved 3D Liveness detection and accuracy [Netverify, Authentication]
* Support Dark Mode theme [Netverify/Fastfill, Authentication, Document Verification]
* Moved Document Verification functionality into a separate framework [Document Verification]
* Advanced document checks on the back of IDs to increase user conversion - for paper documents [Netverify]
* Support for 5 new languages (Czech, Greek, Hungarian, Polish, Romanian) [Netverify/Fastfill, Authentication, Document Verification]
* Added support for right-to-left languages [Netverify/Fastfill, Authentication, Document Verification]
* Provide access to document guidance animation [Netverify Custom UI]
* Added Carthage as an additional dependency manager [Netverify/Fastfill, Authentication, Document Verification, BAM Checkout]
* Adjusted handling of document types which don’t support plastic documents [Netverify]

#### Fixes
* Fixed problems with Belgium ID card backside scanning [Netverify/Fastfill]
* Improved accessibility handling [Netverify/Fastfill, Authentication, Document Verification]
* Various smaller bug fixes/improvements [Netverify/Fastfill, Authentication, Document Verification]

# Basic Setup
Expand All @@ -45,7 +52,7 @@ The app’s Info.plist must contain the `NSCameraUsageDescription` key with a st
Check the Xcode sample project to learn the most common use. Make sure to use the device only frameworks for app submissions to the AppStore. Read more detailed information on this here: [Manual integration](/README.md#manually)

### via Cocoapods
Jumio supports cocoapods as dependency management tool for easy integration of the SDK.
Jumio supports CocoaPods as dependency management tool for easy integration of the SDK.


Update your local clone of the specs repo in Terminal to ensure that you are using the latest podspec files:
Expand All @@ -59,26 +66,39 @@ source 'https://github.com/CocoaPods/Specs.git'
use_frameworks! # Required for proper framework handling
pod 'JumioMobileSDK', '~>3.5.0' # Use Netverify, Authentication, Document Verification and BAM Checkout together in your app
pod 'JumioMobileSDK', '~>3.6.0' # Use Netverify, Authentication, Document Verification and BAM Checkout together in your app
pod 'JumioMobileSDK/Netverify', '~>3.5.0' # Use full Netverify and Authentication functionality
pod 'JumioMobileSDK/NetverifyBase', '~>3.5.0' # For Fastfill, Netverify basic functionality
pod 'JumioMobileSDK/NetverifyBarcode', '~>3.5.0' # For Fastfill, Netverify functionality with barcode extraction
pod 'JumioMobileSDK/NetverifyFace', '~>3.5.0' # For Fastfill, Netverify functionality with identity verification, Authentication
pod 'JumioMobileSDK/Netverify', '~>3.6.0' # Use full Netverify and Authentication functionality
pod 'JumioMobileSDK/NetverifyBase', '~>3.6.0' # For Fastfill, Netverify basic functionality
pod 'JumioMobileSDK/NetverifyBarcode', '~>3.6.0' # For Fastfill, Netverify functionality with barcode extraction
pod 'JumioMobileSDK/NetverifyFace', '~>3.6.0' # For Fastfill, Netverify functionality with identity verification, Authentication
pod 'JumioMobileSDK/DocumentVerification', '~>3.5.0' # Use Document Verification functionality
pod 'JumioMobileSDK/DocumentVerification', '~>3.6.0' # Use Document Verification functionality
pod 'JumioMobileSDK/BAMCheckout', '~>3.5.0' # Use BAM Checkout functionality
pod 'JumioMobileSDK/BAMCheckout', '~>3.6.0' # Use BAM Checkout functionality
```

Install the pod to your project via Terminal:
```
pod install
```
### via Carthage
Jumio supports Carthage as dependency management tool for easy integration of the SDK.

Adapt you Cartfile and add the JumioMobileSDK dependency. Check the following example how a Cartfile could look like:

```
binary "https://raw.githubusercontent.com/Jumio/mobile-sdk-ios/blob/master/Carthage/JumioMobileSDK.json" == 3.6.0
```

Update you Carthage dependencies via Terminal:
```
carthage update
```

### Manually

Download our frameworks manually via [ios-jumio-mobile-sdk-3.5.0.zip](https://mobile-sdk.jumio.com/com/jumio/ios/jumio-mobile-sdk/3.5.0/ios-jumio-mobile-sdk-3.5.0.zip).
Download our frameworks manually via [ios-jumio-mobile-sdk-3.6.0.zip](https://mobile-sdk.jumio.com/com/jumio/ios/jumio-mobile-sdk/3.6.0/ios-jumio-mobile-sdk-3.6.0.zip).

__Note:__ Our sample project on GitHub contains the sample implementation without our frameworks. The project file contains a “Run Script Phase” which downloads our frameworks automatically during build time.

Expand Down Expand Up @@ -111,14 +131,19 @@ Make sure that the following Xcode build settings in your app are set accordingl
All label texts and button titles can be changed and localized using the `Localizable-<YOUR_PRODUCT>.strings` file. Just adapt the values to your required language, add it to your app or framework project and mark it as Localizable. 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.
Note: If using CocoaPods, the original file is located under `/Pods/JumioMobileSDK`.

For our products Netverify & Fastfill, Authentication & Document Verification we are providing eight individual languages for your convenience:
For our products Netverify & Fastfill, Authentication & Document Verification we support following languages for your convenience:
* Chinese (Simplified)
* Czech
* Dutch
* English
* French
* German
* Greek
* Hungarian
* Italian
* Polish
* Portuguese
* Romanian
* Spanish

Please check out our sample project to see how to use the strings files in your app.
Expand All @@ -134,7 +159,7 @@ Our SDK supports Accessibility. Visually impaired users can enable __VoiceOver__
# Support

## Previous version
The previous release version 3.4.2 of the Jumio Mobile SDK is supported until 2020-05-12.
The previous release version 3.5.0 of the Jumio Mobile SDK is supported until 2020-08-04.

In case the support period is expired, no bug fixes and technical support are provided anymore (bugs are typically fixed in the upcoming versions).
Older SDK versions will keep functioning with our server until further notice, but we highly recommend to always update to the latest version to benefit from SDK improvements and bug fixes.
Expand All @@ -151,7 +176,7 @@ The software contains third-party open source software. For more information, pl
This software is based in part on the work of the Independent JPEG Group.

## Copyright
&copy; Jumio Corp. 268 Lambert Avenue, Palo Alto, CA 94306
&copy; Jumio Corporation, 395 Page Mill Road, Suite 150, Palo Alto, CA 94306

The source code and software available on this website (“Software”) is provided by Jumio Corp. or its affiliated group companies (“Jumio”) "as is” and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall Jumio be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including but not limited to procurement of substitute goods or services, loss of use, data, profits, or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this Software, even if advised of the possibility of such damage.
In any case, your use of this Software is subject to the terms and conditions that apply to your contractual relationship with Jumio. As regards Jumio’s privacy practices, please see our privacy notice available here: [Privacy Policy](https://www.jumio.com/legal-information/privacy-policy/).
Binary file added docs/images/custom_ui_happy_path_diagram.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 6 additions & 0 deletions docs/integration_authentication.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,12 @@ AuthenticationController *authenticationController;

The default data center is JumioDataCenterUS. If your customer account is in the EU data center, use JumioDataCenterEU instead. Alternatively use JumioDataCenterSG for Singapore.

### Jailbreak detection
We advice to prevent our SDK to be run on jailbroken devices. Either use the method below or a self-devised check to prevent usage of SDK scanning functionality on jailbroken devices:
```
[JumioDeviceInfo isJailbrokenDevice]
```

## Configuration
In order to connect the Authentication transaction to a specific Netverify user identity the parameter [`enrollmentTransactionReference`](https://jumio.github.io/mobile-sdk-ios/NetverifyFace/Classes/AuthenticationConfiguration.html#/c:objc(cs)AuthenticationConfiguration(py)enrollmentTransactionReference) must be set.
```
Expand Down
2 changes: 1 addition & 1 deletion docs/integration_bam-checkout.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ Make sure initialization and presentation are timely within one minute. On iPads
```

### Jailbreak detection
We advice to prevent our SDK to be run on jailbroken device. Either use the method below or a self-devised check to prevent usage of SDK scanning functionality on jailbroken devices:
We advice to prevent our SDK to be run on jailbroken devices. Either use the method below or a self-devised check to prevent usage of SDK scanning functionality on jailbroken devices:
```
[JumioDeviceInfo isJailbrokenDevice]
```
Expand Down
2 changes: 1 addition & 1 deletion docs/integration_document-verification.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ Make sure initialization and presentation are timely within one minute. On iPads
```

### Jailbreak detection
We advice to prevent our SDK to be run on jailbroken device. Either use the method below or a self-devised check to prevent usage of SDK scanning functionality on jailbroken devices:
We advice to prevent our SDK to be run on jailbroken devices. Either use the method below or a self-devised check to prevent usage of SDK scanning functionality on jailbroken devices:
```
[JumioDeviceInfo isJailbrokenDevice]
```
Expand Down
21 changes: 10 additions & 11 deletions docs/integration_faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,14 @@
- [Jumio Support](#jumio-spport)

### Improve user experience and reducing 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.
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 to help customers achieve a seamless integration. For customers using the standard SDK workflow, our [Surface tool](https://jumio.github.io/surface-ios/) 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. For customers who want to have more granular control over look and feel, our SDK offers the [CustomUI](https://github.com/Jumio/mobile-sdk-ios/blob/master/docs/integration_netverify-fastfill.md#custom-ui) option, which allows you to customize the entire user interface.

#### Example case:
#### 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.

Expand All @@ -27,7 +27,7 @@ Our SDK provides a variety of customization options to help customers achieve a
- Host application has an explanatory help screen that explains what will happen next and why this information is needed.
- SDK is either customized to have a more embedded appearance or [CustomUI](https://github.com/Jumio/mobile-sdk-ios/blob/master/docs/integration_netverify-fastfill.md#custom-ui) is used 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 [Netverify](https://github.com/Jumio/mobile-sdk-ios/blob/master/docs/integration_netverify-fastfill.md#error-codes) should be handled specifically.

Expand All @@ -50,13 +50,13 @@ Depending on your specific needs, you may want to strip out unused functionality
The following table shows a range of different product configurations with the frameworks that are required and the corresponding application size. These measurements are based on our sample application after being uploaded to the Appstore.

| Product | Size | JumioCore | Netverify | NetverifyBarcode & MicroBlink | NetverifyFace & ZoomAuthenticationHybrid | Document Verification | BAMCheckout |
| :--- | :---: | :---: | :---: | :---: | :---: | :---: | :---: |
| Netverify + Authentication | 22.73 MB | x | x | x | x | | |
| Fastfill | 9.85 MB | x | x | x | | | |
| Fastfill without Barcode | 6.84 MB | x | x | | | | |
| Document Verification | 1.56 MB | x | | | | x | |
| :--- | :---: | :---: | :---: | :---: | :---: | :---: | :---: |
| Netverify + Authentication | 22.77 MB | x | x | x | x | | |
| Fastfill | 9.86 MB | x | x | x | | | |
| Fastfill without Barcode | 6.86 MB | x | x | | | | |
| Document Verification | 1.58 MB | x | | | | x | |
| BAM Checkout credit card scanning | 6.36 MB | x | | | | | x |
| All Products | 28.11 MB | x | x | x | x | x | x |
| All Products | 28.17 MB | x | x | x | x | x | x |

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.

Expand All @@ -72,4 +72,3 @@ Read more about bitcode in the [Apple documentation](https://help.apple.com/xcod

### 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).

8 changes: 7 additions & 1 deletion docs/integration_netverify-fastfill.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ Make sure initialization and presentation are timely within one minute. On iPads
```

### Jailbreak detection
We advice to prevent our SDK to be run on jailbroken device. Either use the method below or a self-devised check to prevent usage of SDK scanning functionality on jailbroken devices:
We advice to prevent our SDK to be run on jailbroken devices. Either use the method below or a self-devised check to prevent usage of SDK scanning functionality on jailbroken devices:
```
[JumioDeviceInfo isJailbrokenDevice]
```
Expand Down Expand Up @@ -282,6 +282,10 @@ The first letter (A-J) represents the error case. The remaining characters are r
Netverify can also be implemented as a custom scan view. This means that only the scan view controllers (including the scan overlays) are provided by the SDK.
The handling of the lifecycle, document selection, readability confirmation, error handling, and all other steps necessary to complete a scan have to be handled by the client application that implements the SDK.

The following sequence diagram outlines the components, callbacks and user flow for a basic Netverify scan:

![Custom UI Happy Path Diagram](images/custom_ui_happy_path_diagram.png)

To use the custom UI with a plain scanning user interface, specify an instance of your class which implements the [`NetverifyUIControllerDelegate`](https://jumio.github.io/mobile-sdk-ios/Netverify/Protocols/NetverifyUIControllerDelegate.html). Initialize the SDK by creating a [`NetverifyUIController`](https://jumio.github.io/mobile-sdk-ios/Netverify/Classes/NetverifyUIController.html) by passing your customised `NetverifyConfiguration` object to its constructor. Please note that instead of the `delegate` property, `customUIDelegate` has to be set in the configuration object.

```
Expand Down Expand Up @@ -378,6 +382,8 @@ Please see the sample implementation in our sample project.

Make sure to also implement the [`NetverifyCustomScanViewControllerDelegate`](https://jumio.github.io/mobile-sdk-ios/Netverify/Protocols/NetverifyCustomScanViewControllerDelegate.html) protocol and set the `customScanViewControllerDelegate` to the received scanViewController before presenting.

When the scanner has a help animation, the delegate `netverifyCustomScanViewController:shouldDisplayHelpWithText:animationView:forReason:` is called. A help text and animated view is provided, relevant to the scanner type, that can be shown to assist the user.

For some countries, end-users need to be informed about some legal constraints before scanning. In this case `netverifyCustomScanViewController:shouldDisplayLegalAdvice:completion:` is called. Make sure to display the message provided via this call.

After a successful scan, it makes sense to present the captured image and ask to finally confirm that the image should be used. In this case `netverifyCustomScanViewController:shouldDisplayConfirmationWithImageView:type:text:confirmation:retake:` is called. Simply add this view as subview and it will draw itself accordingly. We suggest asking the user if the image is readable and properly aligned to prevent bad quality images. Continue with calling one of the two provided blocks. Calling `imageSize` on [`NetverifyConfirmationImageView`](https://jumio.github.io/mobile-sdk-ios/Netverify/Classes/NetverifyConfirmationImageView.html) will return the size of the displayed image.
Expand Down
9 changes: 9 additions & 0 deletions docs/transition-guide_authentication.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,15 @@

This section only covers the breaking technical changes that should be considered when updating from the previous version.

## 3.6.0

#### Localization keys
The following keys are no more uppercased

`auth.scan-help-view.liveness-help.button-continue.title`,
`auth.error-view.button.retry.title` and
`auth.error-view.button.cancel.title`

## 3.5.0

#### Error codes
Expand Down
3 changes: 3 additions & 0 deletions docs/transition-guide_bam-checkout.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@

This section only covers the breaking technical changes that should be considered when updating from the previous version.

## 3.6.0
No backward incompatible changes.

## 3.5.0
No backward incompatible changes.

Expand Down
11 changes: 11 additions & 0 deletions docs/transition-guide_document-verification.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,17 @@

This section only covers the breaking technical changes that should be considered when updating from the previous version.

## 3.6.0

#### Localization keys
The following keys are no more uppercased

`dv.scan-view.confirmation.button.readable`,
`dv.scan-view.confirmation.button.retake`,
`dv.error-view.button.retry` and
`dv.error-view.button.cancel`


## 3.5.0

#### DocumentVerification separation
Expand Down
Loading

0 comments on commit 8f9349d

Please sign in to comment.