Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6030625
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 23, 20262026-05-23T05:03:50+00:00 2026-05-23T05:03:50+00:00

Typically when you build and debug Android application, you would have debuggable=true in manifest

  • 0

Typically when you build and debug Android application, you would have debuggable=true in manifest and you would sign application with development key.

When it is time to release your application you would need to change to debuggable=false, sign with your own key, optionally run ProGuard and possibly do something else.

Certain external operations like signing with different key can be easily coded with Ant. In fact those tasks come out of the box. However, changes in AndroidManifest.xml seem to require manual intervention every time.

Another aspect is maintaining release versions of application. For example, out of the box Android tasks will not use any version information. Maven will use SNAPSHOT versions and will require manual update for the release.

Dealing with all those issues is quite tedious and some automation is highly desirable. So far my approach was to create separate branch in git for release where I would keep final manifest, as well as poms with correct version.

But I would like some advice from other people on best practices for dealing with Android release cycle.

Any recommendation?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-23T05:03:51+00:00Added an answer on May 23, 2026 at 5:03 am

    However, changes in AndroidManifest.xml seem to require manual intervention every time.

    In places where we had to do manual xml manipulation for our automated Android builds, we use the built-in XSLT support in Ant, using the <style /> task. A stylesheet might look something like:

    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:android="http://schemas.android.com/apk/res/android">
      <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
    
      <xsl:template match="application[@android:debuggable='true']">
        <xsl:copy>
          <xsl:copy-of select="@*[name(.)!='android:debuggable']" />
          <xsl:apply-templates />
        </xsl:copy>
      </xsl:template>
    
      <xsl:template match="@*|node()">
        <xsl:copy>
          <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
      </xsl:template>
    
    </xsl:stylesheet>
    

    As for the SNAPSHOT release cycle: The way the automated Jenkins build and release process does it is with a maven goal that will automatically perform these steps:

    1. Update the pom versions (e.g., android:versionName/android:versionCode) to remove “-SNAPSHOT” — e.g., x.y.y-SNAPSHOT becomes simply x.y.y
    2. Commit that as the “version x.y.y release”
    3. Tag that release in the git repo
    4. Update the pom versions to SNAPSHOT of the next logical release: x.y.z-SNAPSHOT
    5. Commit that as the “prepare for next version” starting point

    At step #3, it also pushes that code to the public git server (if applicable), and publishes the release tag to the Jenkins plugin repository, so it becomes available as an update.

    I would imagine a similar approach for an Android release cycle would be fairly trivial to script as well.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have a VC++ application written using Visual Studio 2008. For debug purposes, timeout
I have this typical scenario. I have a smartclient application built on .net 2.0
Typically I create a plugin when I have a module that I know I'm
Typically languages have keywords that you are unable to use directly with the exact
Typically when doing a build script for C# I just include **/*.cs for each
My application is context-sensisitve and I dynamically build menus for the main window /
I've been using jQuery to build an ajax-heavy site. I typically use jQuery selectors
I have a large existing c++ codebase. Typically the users of the codebase edit
I have needed in several occasions some classes to represent and manipulate conditions (typically
I often build and modify databases from within Visual Studio 2010 Pro. I have

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.