Search code examples
androiddelphigoogle-playfiremonkeydelphi-xe7

Deploying Android App (developed in Delphi FireMonkey) to Google Play Store


I am attempting to deploy my first app to the Google Play Store. Each time I upload the APK file, I get the following message:

"Upload failed You uploaded a debuggable APK. For security reasons you need to disable debugging before it can be published in Google Play. Learn more about debuggable APKs."

I am building a release version of my code. I upload the release version of my APK file from:

\Projects\MyAppNameHere\Android\Release\MyAppNameHere\bin\MyAppNameHere.apk

In my Projects Debugging options, it is set to "No Debug information"

I have also modified the AndroidManifest file to say:

android:debuggable="False"

However, the Google Play Store keeps giving me the same message that i need to upload a non-debuggable version.

What Am I doing wrong? I should note, every time I build a new release version of the APK file, the AndroidManifest file reverses back to

android:debuggable="True"

Solution

  • There are two types of certificates for signing your app:

    • Debug certificate: to connect a debugger to your application, to be able to access your apps's private data directory
    • Release certificate: to upload your app to an application store (like Google Play)

    Delphi puts a debug certificate for you on your PC so you can start developing & debug your apps.

    It even uses this certificate if you compile with a release profile when you forgot to create your own certificate.

    So make sure that

    • Your build configuration is set to "release"
      enter image description here
    • Your Target Plattform configuration is "Application-Store"
      enter image description here
    • You have provided an own certificate for this configuration in Project -> Options -> Deployment (make sure your profile is Release Configuration - Android Platform)
      enter image description here

    If you do not have a release certificate you can create a new certificate within a key store through the options dialog. Remember to always use the same release certificate for your app, and to store your key store in a secure place that no other person has access to it. Once you lost that certificate, you will not be able to publish updates of your app anymore!

    If you like to install your release app on a device that already has installed a debug version of your app, you have to uninstall it first.

    If you like to verify what certificate an .apk is signed with you can use the command

    jarsigner -verify -verbose -certs %file_name%