使用Maven Jarsigner签署APK时出错

时间:2013-07-25 14:26:43

标签: android maven jarsigner

我正在尝试使用maven jarsigner签署我的.apk文件。我的pom的个人资料部分是:

        <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>

我正在使用mvn install -Psign 它没有给出任何关于错误的线索,但有一个堆栈跟踪:

    [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

关于maven jarsigner有一些问题,但这不是关于我的问题。你知道问题是什么吗?

2 个答案:

答案 0 :(得分:2)

我使用的是eclipse ADT的android工具,而不是maven jarsigner。像这样:

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

您的xxx.apk已准备就绪。然后你应该拉链对齐你的xxx.apk:zipalign -v 4 xxx.apk xxxOut.apk 完成后。您应该将xxxOut.apk上传到Google Play。

答案 1 :(得分:0)

支持第一个人说的话。 ^

导出项目,这非常简单。