Nepeo
First I would like to say thank you for your response.
It's nice and reassuring to know someone is working on this.
Background
I have several Apps/Games of which I need to maintain, bring new versions enhancements to.
These games were wrapped into an APK from Intel XDK.
Ok I have my .keystore file from these games, from XDK.
Problem
I need to sign these future versions, with whatever will work.?
I signed the release version with jarsigner and zipaligned it with Java SDK, Android SDK, Signed ok, and Aligned ok, from the command line, but was unrecognised on my mobile, I must be doing something wrong somewhere, as this is a tedious process, involving application permissions, incompatable Java versions, Etc, as you are probably aware.
Retro signing an APK with a Keystore is not possible in Android studio as far as I am aware, which means, as you say exporting your project into android studio and building and signing from there, a bit complex.
So essentially what I was asking is there a cohesive roadmap of intent, to try and bring an APK signing process to C3 when you have already have a valid .Keystore file, as you need this .Keystore signed to be able to update your existing apps/games.
Also is there intent to provide a service for maybe any new apps/games created in C3 to get a new .keystore, auto signed, with maybe using our login details from C3 for our Alias, and Keystore file Passwords, using these details would probably make this process less complicated.
Anyway, Thank you again for your earlier response.
EDIT
To be fair I don't mind doing this myself if Scirra provided a comprehensive tutorial, and I am sure most would go with that too.
Cheers
As far as I'm aware this should all be completely possible provided you have the keystore. The requirements should be that the APK has the same package name, same signature, same signature type, higher version number and that it had zipalign applied to it.
I believe your right that you cannot "retrosign" an APK in android studio, but creating a new APK that is signed isn't all that scary.
This is the process I use for signing APK's from the build service via the command line. While testing the build service I've published project using these methods to the play store alpha release channel successfully and tested purchases on device.
METHOD A: Using apksigner
1. Export and build a release APK in Construct 3
2. Move the resulting APK into the same folder as your keystore (or close, you just need to know where they are)
3. Run the command
zipalign -v -p 4 UNSIGNED_RELEASE.apk ALIGNED_UNSIGNED_RELEASE.apk[/code:2xywc8t8]
4. Run the command [code:2xywc8t8]apksigner sign --ks MY_KEYSTORE --ks-key-alias KEYNAME--ks-pass pass:KEYSTORE_PASSWORD --key-pass pass:KEY_PASSWORD --out SIGNED_RELEASE.apk ALIGNED_UNSIGNED_RELEASE.apk[/code:2xywc8t8]
METHOD B: Using [b]jarsigner[/b]
1. Export and build a release APK in Construct 3
2. Move the resulting APK into the same folder as your keystore (or close, you just need to know where they are)
3. Run the command [code:2xywc8t8]jarsigner -keystore MY_KEYSTORE -signedjar SIGNED_UNALIGNED_RELEASE.apk UNSIGNED_RELEASE.apk KEYNAME [/code:2xywc8t8]
4. Give the passwords for your keystore and key when prompted
5. Run the command [code:2xywc8t8]zipalign -v -p 4 SIGNED_UNALIGNED_RELEASE.apk ALIGNED_RELEASE.apk[/code:2xywc8t8]
METHOD C: Using [b]jarsigner [/b]and [b]apksigner[/b]
You can apply both signing methods to the same APK, I won't give the full commands as they are derivatives of the ones above but the flow is roughly:
1. Sign with jarsigner
2. Align
3. Sign with apksigner
MY_KEYSTORE is the location of your keystore file
KEYNAME is the name of the key within your keystore that you use for signing, it's normally "production"
KEYSTORE_PASSWORD is the password for the keystore
KEY_PASSWORD is the password for the specific key, this is probably the same as your KEYSTORE_PASSWORD
Bear in mind that when using apksigner specifically and giving the passwords as options in the command they need the "pass:" prefix in front of them.
I'm not sure which of these methods intelXDK uses but I believe the signature method needs to match if your trying to update an application. So this may require some trial and error. I tested all 3 of these methods with space blaster on my local computer and all 3 installed from fresh on my phone and ran correctly. I'm using JDK 1.8.0_131 x64 and Android SDK Tools 25.2.3 (although that shouldn't matter).
As for our roadmap, I sorry but I can't officially announce what our exact plans are going forward for application signing. But I can say we intend to continue developing the build service.
@at09
C3 plugins can specify cordova plugins as export requirements, and these are currently not restricted when you export a cordova project. However, the build service itself has strict limitations on what plugins are allowed to be included. Any other plugins will be not be included when the project is built. If you intend to use 3rd party cordova plugins you will likely need to run cordova locally and build the APK yourself.