BlinkID / blinkid-react-native

ID scanning for cross-platform apps built with ReactNative.
172 stars 59 forks source link

Problem compiling on IOS ^ property 'signResult' not found on object of type 'MBUsdlCombinedRecognizer *' #194

Closed aarango closed 2 years ago

aarango commented 2 years ago

Hello, I am trying to compile on IOS and the compilation breaks due to this error. Does anyone know how to fix it? help please

**** -------------------------** `› Compiling blinkid-react-native Pods/blinkid-react-native » MBUsdlCombinedRecognizerWrapper.m 631

❌ (node_modules/blinkid-react-native/src/ios/MicroblinkModule/MicroblinkModule/Recognizers/Wrappers/MBUsdlCombinedRecognizerWrapper.m:46:24)

44 | id signResult = [jsonRecognizer valueForKey:@"signResult"]; 45 | if (signResult != nil) {

46 | recognizer.signResult = [(NSNumber )signResult boolValue]; | ^ property 'signResult' not found on object of type 'MBUsdlCombinedRecognizer ' 47 | } 48 | } 49 | { 632

❌ (node_modules/blinkid-react-native/src/ios/MicroblinkModule/MicroblinkModule/Recognizers/Wrappers/MBUsdlCombinedRecognizerWrapper.m:74:39)

72 | -(NSDictionary ) serializeResult { 73 | NSMutableDictionary jsonResult = (NSMutableDictionary*)[super serializeResult];

74 | [jsonResult setValue:[self.result.digitalSignature base64EncodedStringWithOptions:0] forKey:@"digitalSignature"]; | ^ property 'digitalSignature' not found on object of type 'MBUsdlCombinedRecognizerResult *' 75 | [jsonResult setValue:[NSNumber numberWithUnsignedInteger:self.result.digitalSignatureVersion] forKey:@"digitalSignatureVersion"]; 76 | [jsonResult setValue:[NSNumber numberWithInteger:self.result.documentDataMatch] forKey:@"documentDataMatch"]; 77 | [jsonResult setValue:[MBSerializationUtils encodeMBImage:self.result.faceImage] forKey:@"faceImage"]; 633

❌ (node_modules/blinkid-react-native/src/ios/MicroblinkModule/MicroblinkModule/Recognizers/Wrappers/MBUsdlCombinedRecognizerWrapper.m:75:74)

73 | NSMutableDictionary jsonResult = (NSMutableDictionary)[super serializeResult]; 74 | [jsonResult setValue:[self.result.digitalSignature base64EncodedStringWithOptions:0] forKey:@"digitalSignature"];

75 | [jsonResult setValue:[NSNumber numberWithUnsignedInteger:self.result.digitalSignatureVersion] forKey:@"digitalSignatureVersion"]; | ^ property 'digitalSignatureVersion' not found on object of type 'MBUsdlCombinedRecognizerResult *' 76 | [jsonResult setValue:[NSNumber numberWithInteger:self.result.documentDataMatch] forKey:@"documentDataMatch"]; 77 | [jsonResult setValue:[MBSerializationUtils encodeMBImage:self.result.faceImage] forKey:@"faceImage"]; ` **** -------------------------**

mparadina commented 2 years ago

Hi @aarango

This is a bug on our side and it will be fixed in the next release of the SDK.

Until then, a workaround is to revert to version 5.15.0 (by placing this in your Podfile): pod 'PPBlinkID', '5.15.0'

Let me know if this helped.

aarango commented 2 years ago

Hello @mparadina I tried it and I was not successful, I don't know if I failed at something, please help.

Imagen 28-02-22 a las 8 58 a m

`Compiling blinkid-react-native Pods/blinkid-react-native » MBUsdlCombinedRecognizerWrapper.m 646

❌ (node_modules/blinkid-react-native/src/ios/MicroblinkModule/MicroblinkModule/Recognizers/Wrappers/MBUsdlCombinedRecognizerWrapper.m:46:24)

44 | id signResult = [jsonRecognizer valueForKey:@"signResult"]; 45 | if (signResult != nil) {

46 | recognizer.signResult = [(NSNumber )signResult boolValue]; | ^ property 'signResult' not found on object of type 'MBUsdlCombinedRecognizer ' 47 | } 48 | } 49 | { 647

❌ (node_modules/blinkid-react-native/src/ios/MicroblinkModule/MicroblinkModule/Recognizers/Wrappers/MBUsdlCombinedRecognizerWrapper.m:74:39)

72 | -(NSDictionary ) serializeResult { 73 | NSMutableDictionary jsonResult = (NSMutableDictionary*)[super serializeResult];

74 | [jsonResult setValue:[self.result.digitalSignature base64EncodedStringWithOptions:0] forKey:@"digitalSignature"]; | ^ property 'digitalSignature' not found on object of type 'MBUsdlCombinedRecognizerResult *' 75 | [jsonResult setValue:[NSNumber numberWithUnsignedInteger:self.result.digitalSignatureVersion] forKey:@"digitalSignatureVersion"]; 76 | [jsonResult setValue:[NSNumber numberWithInteger:self.result.documentDataMatch] forKey:@"documentDataMatch"]; 77 | [jsonResult setValue:[MBSerializationUtils encodeMBImage:self.result.faceImage] forKey:@"faceImage"]; 648

❌ (node_modules/blinkid-react-native/src/ios/MicroblinkModule/MicroblinkModule/Recognizers/Wrappers/MBUsdlCombinedRecognizerWrapper.m:75:74)

73 | NSMutableDictionary jsonResult = (NSMutableDictionary)[super serializeResult]; 74 | [jsonResult setValue:[self.result.digitalSignature base64EncodedStringWithOptions:0] forKey:@"digitalSignature"];

75 | [jsonResult setValue:[NSNumber numberWithUnsignedInteger:self.result.digitalSignatureVersion] forKey:@"digitalSignatureVersion"]; | ^ property 'digitalSignatureVersion' not found on object of type 'MBUsdlCombinedRecognizerResult *' 76 | [jsonResult setValue:[NSNumber numberWithInteger:self.result.documentDataMatch] forKey:@"documentDataMatch"]; 77 | [jsonResult setValue:[MBSerializationUtils encodeMBImage:self.result.faceImage] forKey:@"faceImage"]; 78 | [jsonResult setValue:[MBSerializationUtils encodeMBImage:self.result.fullDocumentImage] forKey:@"fullDocumentImage"]; 649 ▸ ARCHIVE FAILED 650 ▸ The following build commands failed: 651 ▸ CompileC /Users/expo/Library/Developer/Xcode/DerivedData/Trakku-dalbtgetbsorysekbwecqrvketne/Build/Intermediates.noindex/ArchiveIntermediates/Trakku/IntermediateBuildFilesPath/Pods.build/Release-iphoneos/blinkid-react-native.build/Objects-normal/arm64/MBUsdlCombinedRecognizerWrapper.o /Users/expo/workingdir/build/node_modules/blinkid-react-native/src/ios/MicroblinkModule/MicroblinkModule/Recognizers/Wrappers/MBUsdlCombinedRecognizerWrapper.m normal arm64 objective-c com.apple.compilers.llvm.clang.1_0.compiler (in target 'blinkid-react-native' from project 'Pods') 652 ▸ (1 failure) 653 ARCHIVE FAILED 654 655 656 The following build commands failed: 657 CompileC /Users/expo/Library/Developer/Xcode/DerivedData/Trakku-dalbtgetbsorysekbwecqrvketne/Build/Intermediates.noindex/ArchiveIntermediates/Trakku/IntermediateBuildFilesPath/Pods.build/Release-iphoneos/blinkid-react-native.build/Objects-normal/arm64/MBUsdlCombinedRecognizerWrapper.o /Users/expo/workingdir/build/node_modules/blinkid-react-native/src/ios/MicroblinkModule/MicroblinkModule/Recognizers/Wrappers/MBUsdlCombinedRecognizerWrapper.m normal arm64 objective-c com.apple.compilers.llvm.clang.1_0.compiler (in target 'blinkid-react-native' from project 'Pods') 658 (1 failure) 659 Exit status: 65`

aarango commented 2 years ago

I solved this problem return the library version to 5.14.0

mparadina commented 2 years ago

Hi @aarango

Yes, to prevent this behaviour you could revert to the 5.14.0 version as well.

However, to use the 5.15.2 version until the 5.16.0 version comes up (with the fix), a workaround would be to modify the recognizer wrappers in the 'Wrappers' folder. Path to the folder: blinkid-react-native > Recognizers > Wrappers

In the following files, you need to delete (or comment out) the following lines: 1. MBUsdlCombinedRecognizerWrapper.m Lines: 44-47:

id signResult = [jsonRecognizer valueForKey:@"signResult"];
if (signResult != nil) {
recognizer.signResult = [(NSNumber *)signResult boolValue];
}

Lines 74 & 75:

[jsonResult setValue:[self.result.digitalSignature base64EncodedStringWithOptions:0] forKey:@"digitalSignature"];
[jsonResult setValue:[NSNumber numberWithUnsignedInteger:self.result.digitalSignatureVersion] forKey:@"digitalSignatureVersion"];

2. MBPassportRecognizerWrapper.m Lines: 63-66

id signResult = [jsonRecognizer valueForKey:@"signResult"];
if (signResult != nil) {
recognizer.signResult = [(NSNumber *)signResult boolValue];
}

Lines: 81 & 82

[jsonResult setValue:[self.result.digitalSignature base64EncodedStringWithOptions:0] forKey:@"digitalSignature"];
[jsonResult setValue:[NSNumber numberWithInteger:self.result.digitalSignatureVersion] forKey:@"digitalSignatureVersion"];

3. MBMrtdCombinedRecognizerWrapper.m Lines 81-84:

id signResult = [jsonRecognizer valueForKey:@"signResult"];
if (signResult != nil) {
recognizer.signResult = [(NSNumber *)signResult boolValue];
}

Lines 99 & 100:

[jsonResult setValue:[self.result.digitalSignature base64EncodedStringWithOptions:0] forKey:@"digitalSignature"];
[jsonResult setValue:[NSNumber numberWithInteger:self.result.digitalSignatureVersion] forKey:@"digitalSignatureVersion"];

4. MBBlinkIdCombinedRecognizerWrapper.m

Lines 111-114:

id signResult = [jsonRecognizer valueForKey:@"signResult"];
if (signResult != nil) {
recognizer.signResult = [(NSNumber *)signResult boolValue];
     }

Lines 160 & 161:

[jsonResult setValue:[self.result.digitalSignature base64EncodedStringWithOptions:0] forKey:@"digitalSignature"];
[jsonResult setValue:[NSNumber numberWithInteger:self.result.digitalSignatureVersion] forKey:@"digitalSignatureVersion"];

Let me know if this helps.