-
Notifications
You must be signed in to change notification settings - Fork 3
Transition guide
- No changes
- No changes
- No changes
- Renamed
PPMyKadRecognizerSettings
andPPMyKadRecognizerResult
toPPMyKadFrontRecognizerSettings
andPPMyKadFrontRecognizerResult
- No changes
- Removed
imageDPI
property onPPTemplatingRecognizerSettings
-
PPDocumentDetectorResult
does not contain information about screen orientation any more
- No changes
- There is no more option in PPUsdlRecognizerSettings to scan 1D barcodes. Previously this setting did nothing - it's OK to just delete the setter call if you use it.
-
PPBlinkOcrRecognizerResult
andPPBlinkOcrRecognizerSettings
are now deprecated. UsePPDetectorRecognizerResult
andPPDetectorRecognizerSettings
for templating orPPBlinkInputRecognizerResult
andPPBlinkInputRecognizerSettings
for segment scan -
PPSerbianPdf417RecognizerResult
andPPSerbianPdf417RecognizerSettings
are renamed toPPSerbianBarcodeRecognizerResult
andPPSerbianBarcodeRecognizerSettings
-
extractAddress
property inPPSlovakIDBackRecognizerSettings
is now removed since previously wasn't use
-
PPAztecRecognizerResult
andPPAztecRecognizerSettings
are now deprecated. UsePPBarcodeRecognizerResult
andPPBarcodeRecognizerSettings
-
PPBarDecoderRecognizerResult
andPPBarDecoderRecognizerSettings
are now deprecated. UsePPBarcodeRecognizerResult
andPPBarcodeRecognizerSettings
-
PPZXingRecognizerResult
andPPZXingRecognizerSettings
are now deprecated. UsePPBarcodeRecognizerResult
andPPBarcodeRecognizerSettings
- No changes
- No changes
-
Since Microblink.framework is a dynamic framework, you also need to add it to embedded binaries section in General settings of your target.
-
Library size was reduced by removing all unnecessary components. One of the components removed was internal libz library. You now need to add libz.tbd into "Linked frameworks and binaries" setting.
-
Microblink.framework is a dynamic framework which contains slices for all architectures - device and simulator. If you intend to extract .ipa file for ad hoc distribution, you'll need to preprocess the framework to remove simulator architectures.
Ideal solution is to add a build phase after embed frameworks build phase, which strips unused slices from embedded frameworks.
Build step is based on the one provided here: http://ikennd.ac/blog/2015/02/stripping-unwanted-architectures-from-dynamic-libraries-in-xcode/
APP_PATH="${TARGET_BUILD_DIR}/${WRAPPER_NAME}"
# This script loops through the frameworks embedded in the application and
# removes unused architectures.
find "$APP_PATH" -name '*.framework' -type d | while read -r FRAMEWORK
do
FRAMEWORK_EXECUTABLE_NAME=$(defaults read "$FRAMEWORK/Info.plist" CFBundleExecutable)
FRAMEWORK_EXECUTABLE_PATH="$FRAMEWORK/$FRAMEWORK_EXECUTABLE_NAME"
echo "Executable is $FRAMEWORK_EXECUTABLE_PATH"
EXTRACTED_ARCHS=()
for ARCH in $ARCHS
do
echo "Extracting $ARCH from $FRAMEWORK_EXECUTABLE_NAME"
lipo -extract "$ARCH" "$FRAMEWORK_EXECUTABLE_PATH" -o "$FRAMEWORK_EXECUTABLE_PATH-$ARCH"
EXTRACTED_ARCHS+=("$FRAMEWORK_EXECUTABLE_PATH-$ARCH")
done
echo "Merging extracted architectures: ${ARCHS}"
lipo -o "$FRAMEWORK_EXECUTABLE_PATH-merged" -create "${EXTRACTED_ARCHS[@]}"
rm "${EXTRACTED_ARCHS[@]}"
echo "Replacing original executable with thinned version"
rm "$FRAMEWORK_EXECUTABLE_PATH"
mv "$FRAMEWORK_EXECUTABLE_PATH-merged" "$FRAMEWORK_EXECUTABLE_PATH"
done
- Deprecated
PPHelpDisplayMode
. It still works, but ideally, you should replace it with a custom logic for presenting help inside the application using the SDK. - Simplified
PPOcrLayout
class (removed properties which were not used). If you used it previously, simply remove that code because it does not provide any value. - If you're using PPGermanIDMrzRecognizer, it's functionality is now split into two recognizers:
- one for back side of the new ID (PPGermanIDBackRecognizer)
- one for front side of the old ID (PPGermanOldIDRecognizer)
- No changes
- No changes
- If you used
payerAddress
andrecipientAddress
properties inPPSloQrCodeRecognizerResult
, those properties are now split intopayerStreet
,payerPlace
,recipientStreet
andrecipientPlace
. - If you used
accountNumber
property inPPSkSlipRecognizerResult
, this property can now be replaced byiban
property
- If you're using PPSingaporeIdRecognizer, you should now decide which side of the ID you want to use, and use either PPSingaporeIDBackRecognizer, or PPSingaporeIDFrontRecognizer
-
PPMobileCouponsOcrParserFactory
changed name toPPTopUpOcrParserFactory
- No changes
- No changes
- No changes
-
PPMrtdRecognizerResult
now returnsNSDate
in methodsdateOfBirth
anddateOfExpiry
. PreviouslyNSString
was returned and user had to parse the string to get the date. If you want old behaviour, use methodsrawDateOfBirth
andrawDateOfExpiry
which will return strings in same format as in previous versions. - this also applies for all recognizer results that inherit
PPMrtdRecognizerResult
- although
PPDateOcrParser
now returnsPPDateResult
object (which contains bothNSDate
and originalNSString
from which date was parsed), when obtaining parser result viaparserResultForName:
orparserResultForName:parserGroup:
methods, you will be provided with string just like in previous versions. If you wantNSDate
, you should use methodsspecificParsedResultForName:
orspecificParsedResultForName:parserGroup:
and castNSObject
they return intoNSDate
. - all recognizer results (classes that derive
PPRecognizerResult
) now have annotated nullability for their getters. Some of them used to assume non-null, while still returningnil
sometimes. This has now been corrected and all getters are_Nullable
- No changes
- No changes
- No changes
- No changes
- No changes
- No changes
-
PPCameraCoordinator
now assumes the role ofPPCoordinator
. If you do not use your own camera management or Direct API you can rename all instances ofPPCoordinator
toPPCameraCoordinator
-
PPCoordinator
methodcameraViewControllerWithDelegate:
has been removed. To createPPScanningViewControllers
you can now use[PPViewControllerFactory cameraViewControllerWithDelegate: coordinator: error:]
- Direct API is now located in
PPCoordinator
. To process image use 'processImage:' method and be sure to set 'PPCoordinatorDelegate' when creating 'PPCoordinator' to recieve scanning results and events. You can se processing image roi and processing orientation on 'PPImage' object. - Methods of 'PPOverlayContainerViewController' protocol should now be called after camera view has appeared.
- Removed PPOcrEngineOptions property from PPRegexOcrParserFactory and PPRawOcrParserFactory. Replaced property with setter method.
- No changes
-
Renamed
PPOcrRecognizerSettings
andPPOcrRecognizerResult
toPPBlinkOcrRecognizerSettings
andPPBlinkOcrRecognizerResult
respectively -
Changed interface of some Detector API methods
-
PPDocumentDecodingInfoEntry
renamed toPPDecodingInfo
-
Removed
PPDocumentDecodingInfo
. All occurances need to be replaced withNSArray<PPDecodingInfo>
- If you implement custom camera UI and handle
cameraViewController:didFindLocation:withStatus
, this method was changed tocameraViewController:didFinishDetectionWithResult:
.PPDetectorResult
object now contains all information previosusly passed to this method. Simply update the code to use the new method signature. Verify the exact type of the passed detectorResult object, cast it to this class, and use provided getters to obtain all information.
- PPOverlayViewController changed the way Overlay Subviews are added to the view hierarchy. Instead of calling
addOverlaySubview:
(which automatically added a view to view hierarachy), you now need to callregisterOverlaySubview:
(which registers subview for scanning events), and manually add subview to view hierarchy usingaddSubview:
method. This change gives you more flexibility for adding views and managing autolayout and autoresizing masks. So, replace all calls to (assuming self is aPPOverlayViewController
instance)
[self addOverlaySubview:subview];
with
[self registerOverlaySubview:subview];
[self.view addSubview:subview];
- Localization Macros MB_LOCALIZED and MB_LOCALIZED_FORMAT can now be overriden in your app to provide completely custom localization mechanisms.
- No changes
-
Remove MicroBlinkResources.bundle and add MicroBlink.bundle.
-
If you use
PPMetadataSettings
objects,-
successfulScanFrame
property replace withsuccessfulFrame
-
currentVideoFrame
property replace withcurrentFrame
-
-
Remove the old .embeddedframework package completely from your project
-
Add new .framework and .bundle package to your project. Verify that Framework search path really contains a path to the .framework folder.
-
If necessary, add all required system frameworks and libraries:
- libc++.tbd
- libiconv.tbd
- AVFoundation.framework
- AudioToolbox.framework
- CoreMedia.framework
- AssetsLibrary.framework
- Accelerate.framework
-
If you previously used built-in onboarding (help) screens, since they are moved outside the SDK, you need to re-add it to your project. You can do that by overriding the method :
- (void)scanningViewControllerWillPresentHelp:(UIViewController<PPScanningViewController> *)scanningViewController
In the implementation, presenting the Onboarding screens. Default implementation which is provided in the Sample app for your country / use case. We recommend you use provided help screens - just drag & drop the classes, storyboard and xcassets files in your project.
- You can now use bitcode = YES in your build settings.
- PhotoPayHelpViewController.nib resource was renamed to PhotoPayHelpViewController.xib. This allows it to be open with new Xcode versions (Xcode 7)
-
rotatedImage
property ofPPImageMetadata
no longer exists. Useimage
property instead, it correctly handles rotation. -
The ability to use native iOS orientation handling features is now added.
PPScanningViewController
now has propertiesautorotate
andsupportedOrientations
. ScanningViewController uses these properties in the implementation of standard iOS rotation handling methods:shouldAutorotate
andsupportedInterfaceOrientations
.
If you use autorotation with the new features, make sure you disable autorotation of the overlay using settings.uiSettings.autorotateOverlay = NO
- No changes
- No changes
-
This version uses a new license key format. If you had a license key generated prior to v4.0.1, contact us so we can regenerate the license key for you.
-
PPCoordinator
class now exposes fewer public methods and properties. -
PPScanningViewController
's methodsresumeScanning
andresumeScanningWithoutStateReset
merged into oneresumeScanningAndResetState:
. - All calls toresumeScanning
replace withresumeScanningAndResetState:YES
. - All calls toresumeScanningWithoutStateReset
replace withresumeScanningAndResetState:NO
-
Classes representing scanning results were renamed. Renaming was performed to match naming convention of
PPRecognizerSettings
hierarcy: now eachPPRecognizerSettings
class has it's matchingPPRecognizerResult
. Replace all existing references to old class names with the new ones:-
PPBaseResult
was renamed toPPRecognizerResult
. -
PPOcrScanResult
was renamed toPPOcrRecognizerResult
, this is the result of a recognizer whose settings are given withPPOcrRecognizerSettings.
-
PPCroResult
renamed toPPCroRecognizerResult
. This is a common superclass toPPCroSlipRecognizerResult
,PPCroPdf417RecognizerResult
andPPCroQrRecognizerResult
. -
PPCroSlipResult
renamed toPPCroSlipRecognizerResult
, this is the result of a recognizer whose settings are given withPPCroSlipRecognizerSettings.
-
PPCroBarcodeResult
renamed toPPCroPdf417RecognizerResult
, this is the result of a recognizer whose settings are given withPPCroPdf417RecognizerSettings.
-
Introduced
PPCroQrRecognizerResult
, this is the result of a recognizer whose settings are given withPPCroQrRecognizerSettings.
-
-
PPOcrResult
(class representing a result of the OCR process, with individual characters, lines and blocks), was renamed toPPOcrLayout
. Name change was introduced to further distinguish the class fromPPRecognizerResult
classes. -
Remove all references to
updateScanningRegion
method since it's now being called automatically insetScanningRegion setter
.
-
Framework was renamed to MicroBlink.embeddedframework. Remove the existing .embeddedframwork package from your project, and drag&drop MicroBlink.embeddedframework in the project explored of your Xcode project.
-
If necessary, after the update, modify your framework search path so that it points to the MicroBlink.embeddedframework folder.
-
Main header of the framework was renamed to
<MicroBlink/Microblink.h>
. Change all references to previous header with the new one. -
method
[PPCoordinator isPhotoPaySupported]
was renamed to[PPCoordinator isScanningSupported]
. Change all occurances of the method name. -
Remove all references to
updateScanningRegion
method since it's now being called automatically insetScanningRegion setter
. -
Retrieving results has changed. Consult guides in Docs/ especially those with prefix 01.
- Getting Started with PhotoPay SDK
-
Obtaining scanning results
- Scanning Austrian payslips
- Scanning Belgian payslips
- Scanning Croatian HUB payslips / barcodes
- Scanning Dutch Acceptgiros
- Scanning German payslips
- Scanning Hungarian payslips
- Scanning SEPA payment QR codes
- Scanning Slovenian payslips
- Using BlinkID recognizers
- Using MRTD Recognizer for scanning ID documents
- Using EUDL Recognizer
- Using USDL Recognizer
- Using MyKad recognizer
- Using PDF417 Recognizer
- Using BarDecoder Recognizer
- Using ZXing Recognizer
- Using Barcode Recognizer
- Using Templating API
- Using Detector Recognizer
- Using BlinkInput OCR Recognizer
- Troubleshoot
- Using Direct Processing API
- Customizing Camera UI
- Creating customized framework
- Upgrading from older versions