Trying to update a Samsung store app - getting error "The signing key is invalid. Please check the signing key of the binary"

We are using the most recent build (1135).

We are building an Android build - with the Target App Store set to “Samsung”.

We are definitely using the same keystore file that we used to sign the original build. I’ve used it plenty of times, and it’s the only one I have for this app so it’s definitely the right one.

But we keep getting this error message:

“The signing key is invalid. Please check the signing key of the binary”

Is there something else we could have missed?

Is anyone else experiencing the same error?

Can anyone from Ansca help with this? We really need to get a build submitted to Samsung ASAP. If someone can help us solve this we would really appreciate it.

I just uploaded an app to Samsung last night using the normal android release key that I normally use and didn’t have an problems with apps built with 1135.  Did you have any DRM options selected?

No I don’t think so. 

Could plugins or anything like that cause a problem? The only plugin we use in this app is the Green Throttle one, but we disabled that before building. Presumably if they are commented out in build.settings they are definitely excluded from the build?

To be honest the error message doesn’t sound like it has anything to do with plugins anyway, it implies we’re using the wrong keystore which I know for certain we’re not.

i doubt the plugins are the issue.  Have you contacted Samsung to get more details on the error and what triggers it? 

I ended up sending them two more apps last night with no problems.

Posted the same question on stack overflow and someone mentioned it could be the version of JDK.

Although I am 100% sure that the keystore is the same one that was originally used, this is a new Mac that’s building it (well a new hard drive and OS at least). I’m not sure what Corona does behind the scenes, so could it be something to do with JDK?

Or the Android SDK for that matter - previously I had Android 2.2 (API 8) installed as well as a more recent one, currently I only have 4.2.2 (API 17) installed, although I installing API 8 again at the moment.

Could either of those things be causing the problem? If so do I need to do anything other than downloading the relevant versions?

I’ve just used apktool to decode the app so that I can try and find out why we are getting this error when uploading, and I’ve noticed something strange (strange to me at least).

There is an intent filter called “com.coronalabs.test.mathmania”. As far as I know, “mathemania” is the pubnub sample project - which I have build and used in the past, but certainly not with this keystore. Even if I had, it was only ever to test pubnub, never published, and shouldn’t have remained affiliated with that keystore.

There are a few others that I’m not sure about:

\<receiver android:name="com.ansca.corona.SystemStartupBroadcastReceiver"\> \<intent-filter\> \<action android:name="android.intent.action.BOOT\_COMPLETED"/\> \</intent-filter\> \</receiver\> \<receiver android:name="com.ansca.corona.notifications.AlarmManagerBroadcastReceiver"/\> \<receiver android:name="com.ansca.corona.notifications.StatusBarBroadcastReceiver"/\> \<receiver android:name="com.ansca.corona.notifications.GoogleCloudMessagingBroadcastReceiver" android:permission="com.google.android.c2dm.permission.SEND"\>

I thought that BOOT_COMPLETED was a permission we had to turn on ourselves if we wanted local notifications to persist between reboots. This app doesn’t use that permission.

There is also an apktool.yml file generated. One of the fields is:

packageInfo: cur\_package: com.ansca.corona orig\_package: com.mycompany.myapp

Is there a reason why this gets changed from one package name to another? I don’t know the ins and outs of the android manifest well enough to know if this is all as expected, but if something is incorrect here the only way I’ll find out is to ask.

Can anyone from Ansca confirm whether or not the data in my last post is as it should be?

Can anyone from Ansca help with this? We really need to get a build submitted to Samsung ASAP. If someone can help us solve this we would really appreciate it.

I just uploaded an app to Samsung last night using the normal android release key that I normally use and didn’t have an problems with apps built with 1135.  Did you have any DRM options selected?

No I don’t think so. 

Could plugins or anything like that cause a problem? The only plugin we use in this app is the Green Throttle one, but we disabled that before building. Presumably if they are commented out in build.settings they are definitely excluded from the build?

To be honest the error message doesn’t sound like it has anything to do with plugins anyway, it implies we’re using the wrong keystore which I know for certain we’re not.

i doubt the plugins are the issue.  Have you contacted Samsung to get more details on the error and what triggers it? 

I ended up sending them two more apps last night with no problems.

HI,

The com.coronalabs.test.mathmania thing was something we did for testing that should not have been committed.  This has been fixed in the latest daily build.

The BOOT_COMPLETED thing is not a permission, it is an intent filter which we use to show the application’s active status bar notifications and to reschedule pending notifications after the device boots up.  After a reboot those things will disappear unless we do something about it.

As for the packageInfo thing, I am not sure how apktool generates that yml file.  This is just a guess but the classes in java are under the package name com.ansca.corona but the application package name is what you specify.

The best thing to do would be to contact Samsung and ask them for more details.

Posted the same question on stack overflow and someone mentioned it could be the version of JDK.

Although I am 100% sure that the keystore is the same one that was originally used, this is a new Mac that’s building it (well a new hard drive and OS at least). I’m not sure what Corona does behind the scenes, so could it be something to do with JDK?

Or the Android SDK for that matter - previously I had Android 2.2 (API 8) installed as well as a more recent one, currently I only have 4.2.2 (API 17) installed, although I installing API 8 again at the moment.

Could either of those things be causing the problem? If so do I need to do anything other than downloading the relevant versions?

I’ve just used apktool to decode the app so that I can try and find out why we are getting this error when uploading, and I’ve noticed something strange (strange to me at least).

There is an intent filter called “com.coronalabs.test.mathmania”. As far as I know, “mathemania” is the pubnub sample project - which I have build and used in the past, but certainly not with this keystore. Even if I had, it was only ever to test pubnub, never published, and shouldn’t have remained affiliated with that keystore.

There are a few others that I’m not sure about:

\<receiver android:name="com.ansca.corona.SystemStartupBroadcastReceiver"\> \<intent-filter\> \<action android:name="android.intent.action.BOOT\_COMPLETED"/\> \</intent-filter\> \</receiver\> \<receiver android:name="com.ansca.corona.notifications.AlarmManagerBroadcastReceiver"/\> \<receiver android:name="com.ansca.corona.notifications.StatusBarBroadcastReceiver"/\> \<receiver android:name="com.ansca.corona.notifications.GoogleCloudMessagingBroadcastReceiver" android:permission="com.google.android.c2dm.permission.SEND"\>

I thought that BOOT_COMPLETED was a permission we had to turn on ourselves if we wanted local notifications to persist between reboots. This app doesn’t use that permission.

There is also an apktool.yml file generated. One of the fields is:

packageInfo: cur\_package: com.ansca.corona orig\_package: com.mycompany.myapp

Is there a reason why this gets changed from one package name to another? I don’t know the ins and outs of the android manifest well enough to know if this is all as expected, but if something is incorrect here the only way I’ll find out is to ask.

Can anyone from Ansca confirm whether or not the data in my last post is as it should be?

HI,

The com.coronalabs.test.mathmania thing was something we did for testing that should not have been committed.  This has been fixed in the latest daily build.

The BOOT_COMPLETED thing is not a permission, it is an intent filter which we use to show the application’s active status bar notifications and to reschedule pending notifications after the device boots up.  After a reboot those things will disappear unless we do something about it.

As for the packageInfo thing, I am not sure how apktool generates that yml file.  This is just a guess but the classes in java are under the package name com.ansca.corona but the application package name is what you specify.

The best thing to do would be to contact Samsung and ask them for more details.