iink SDK on Device

Could "MyCertificate.java" or "MyCertificate.c" be invalidated?

 Our Android app uses "com.myscript:iink:1.2.2" and "MyCertificate.java" which we downloaded from Dashboard( https://atk.myscript.com/#/user/applicationList ) around February 2019.
Handwriting recognition has worked in this app so far with no particular problem.

Recently, our app has been used on a variety of devices.
Since May 8, 2020, some devices have been facing a problem where "com.myscript.iink.Engine.create(MyCertificate.getBytes())" throws an "IllegalArgumentException" and handwriting recognition doesn't work.

In response, we replaced "MyCertificate.java" with a new one that we re-downloaded from the Dashboard, and "Engine.create()" no longer throws an "IllegalArgumentException" and the handwriting recognition works.

Could "MyCertificate.java" or "MyCertificate.c" be invalid for any reason?

Or is there a case that "Engine.create()" fails on some terminals using old "MyCertificate.java"?


Dear Customer,


thank you for contacting us.


Let me explain the reasons that can cause a certificate  error:

-The bundle identifier (iOS) or Package name (Android) is not aligned with the identifier you declared on your dashboard: https://developer.myscript.com/support/account/on-device-license-management/#on-device-dashboard

=>In that case, you would have the "Mismatch between certificate and application:" error message: https://developer-support.myscript.com/support/discussions/topics/16000024845

As you have no error message in your console, this is not the behavior you faced.

-After first installation, the application using the iink SDK will try to connect to our license server.

If the device is offline, the application/sample will work during 30  days. As soon as it will get an INTERNET connection, a license will be  counted. The recognition part of the application will stop working after 30 days without INTERNET connection.


=>You then understand this latest option is the one that is most likey to have occured, i.e. application was installed on devices that did not have any internet connection for 30 days. On your side, how do you deploy your applications? Can you confirm all the devices have an internet connection?


In response, we replaced "MyCertificate.java" with a new one that we  re-downloaded from the Dashboard, and "Engine.create()" no longer throws  an "IllegalArgumentException" and the handwriting recognition works.

>>From this, it seems that a re-install was forced, then an internet connection was opened.


Let me know if this helps.


Best regards,


Olivier

Thank you for your reply.

> -The bundle identifier (iOS) or Package name (Android) is not aligned with the identifier you declared on your dashboard: https://developer.myscript.com/support/account/on-device-license-management/#on-device-dashboard

Wouldn't the following indicate that this is not the case?

- The message contained in the "IllegalArgumentException" thrown when using the old "MyCertificate.java" was "invalid certificate".
- The new "MyCertificate.java" is downloaded from a previously created item on the Dashboard. The Identifier for that item matches the one of the app.
We believe we downloaded the old "MyCertificate.java" from here as well.


> -After first installation, the application using the iink SDK will try to connect to our license server.
>
> If the device is offline, the application/sample will work during 30  days. As soon as it will get an INTERNET connection, a license will be  counted. The recognition part of the application will stop working after 30 days without INTERNET connection.

Wouldn't the following indicate that this is not the case?

- Just before the exception was thrown, the application was successful in communicating over the Internet in another way the application is doing.
- On many of the devices having the problem, our application is installed for the first time and handwriting recognition does not work as soon as the application is installed.


In light of this, what are the possible causes?

Best regards,

Dear Customer,


indeed, for me, the first issue that I would come up with is that the internet connection if failing.


But, after a second start, if the application is able to start properly, or you still have the error message?


Otherwise, as adding a new certificate solved the issue, I would conclude the previous certificate may have been wrong ; this could have been caused by an issue while copying it in your application, or it was edited and a value in the certificate was changed.


Best regards,


Olivier

Thank you for your reply.

The application using the new "MyCertificate.java" doesn't throw any exceptions and the handwriting recognition is working properly, so it appears to be starting properly.

It is puzzling that on some devices, there was no problem with using the old "MyCertificate.java".
But apart from that, there may have been some problem with the old "MyCertificate.java".

We'd like to see how it goes for a while.

Best regards,

Dear Customer,


Thank you for your update.


Please, let us know if you are facing any new issue.


Best regards,


Gwenaëlle