I am trying to sign my .apk file with maven jarsigner.My pom's profile part is this:

        <profile>
        <id>sign</id>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jarsigner-plugin</artifactId>
                    <version>1.2</version>
                    <executions>
                        <execution>
                            <id>signing</id>
                            <goals>
                                <goal>sign</goal>
                            </goals>
                            <phase>package</phase>
                            <inherited>true</inherited>
                            <configuration>
                                <archiveDirectory></archiveDirectory>
                                <includes>
                                    <include>target/*.apk</include>
                                </includes>
                                <keystore>/usr/lib/jvm/java-6-sun-1.6.0.24/jre/lib/security/cacerts</keystore>
                                <storepass>android</storepass>
                                <keypass>android</keypass>
                                <alias>mykey</alias>
                                <arguments>
                                  <argument>-sigalg</argument><argument>MD5withRSA</argument>
                                  <argument>-digestalg</argument><argument>SHA1</argument>
                                </arguments>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>com.jayway.maven.plugins.android.generation2</groupId>
                    <artifactId>android-maven-plugin</artifactId>
                    <inherited>true</inherited>
                    <configuration>
                        <sdk>
                    <platform>17</platform>
                    <path>/home/abc/ihsan/adt-bundle-linux-x86_64-20130522/sdk</path>
                </sdk>
                        <sign>
                            <debug>false</debug>
                        </sign>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </profile>

i am using mvn install -Psign it does not give any clue about the error but there is a stacktrace:

    [ERROR] Failed to execute goal org.apache.maven.plugins:maven-jarsigner-plugin:1.2:sign (signing) on project kanbay: Failed executing '/bin/sh -c cd /home/abc/ihsan/my-'*****'-application && /usr/lib/jvm/java-6-sun-1.6.0.24/jre/../bin/jarsigner -sigalg MD5withRSA -digestalg SHA1 -keystore /usr/lib/jvm/java-6-sun-1.6.0.24/jre/lib/security/cacerts -storepass '*****' -keypass '*****' /home/abc/ihsan/my-'*****'-application/target/kanbay.apk mykey' - exitcode 1 -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-jarsigner-plugin:1.2:sign (signing) on project kanbay: Failed executing '/bin/sh -c cd /home/abc/ihsan/my-'*****'-application && /usr/lib/jvm/java-6-sun-1.6.0.24/jre/../bin/jarsigner -sigalg MD5withRSA -digestalg SHA1 -keystore /usr/lib/jvm/java-6-sun-1.6.0.24/jre/lib/security/cacerts -storepass '*****' -keypass '*****' /home/abc/ihsan/my-'*****'-application/target/kanbay.apk mykey' - exitcode 1
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:217)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
Caused by: org.apache.maven.plugin.MojoExecutionException: Failed executing '/bin/sh -c cd /home/abc/ihsan/my-'*****'-application && /usr/lib/jvm/java-6-sun-1.6.0.24/jre/../bin/jarsigner -sigalg MD5withRSA -digestalg SHA1 -keystore /usr/lib/jvm/java-6-sun-1.6.0.24/jre/lib/security/cacerts -storepass '*****' -keypass '*****' /home/abc/ihsan/my-'*****'-application/target/kanbay.apk mykey' - exitcode 1
    at org.apache.maven.plugins.jarsigner.AbstractJarsignerMojo.processArchive(AbstractJarsignerMojo.java:495)
    at org.apache.maven.plugins.jarsigner.AbstractJarsignerMojo.processArtifact(AbstractJarsignerMojo.java:372)
    at org.apache.maven.plugins.jarsigner.AbstractJarsignerMojo.execute(AbstractJarsignerMojo.java:197)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
    ... 19 more
[ERROR] 
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

There is some questions about maven jarsigner but it is not about my problem.do you have any idea what the problem is?

有帮助吗?

解决方案

Instead of maven jarsigner, I used eclipse ADT's android tool. Like this:

Right click on the project --> Export --> Android --> Export Android Project --> some "next" --> Create New Keystore(Or use existing one) --> fill in the blanks

Your xxx.apk is ready. Then you should zip align your xxx.apk: zipalign -v 4 xxx.apk xxxOut.apk It is done.You should upload the xxxOut.apk to Google Play.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top