2013-05-22 34 views
5

Hey Tôi đang gặp khó khăn khi xây dựng và ký APK trong chế độ phát hành. Tôi có thể tạo ra các apk bằng cách sử dụng maven nhưng khi tôi cố gắng để tải nó lên, Google playstore nói rằng tôi cần phải xây dựng trong chế độ phát hành.Làm thế nào để xây dựng apk trong chế độ phát hành bằng cách sử dụng maven

đây là pom.xml của tôi:

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/maven-v4_0_0.xsd"> 
<modelVersion>4.0.0</modelVersion> 
<groupId>com.kannact4.gladstonesign</groupId> 
<artifactId>gladstonesign</artifactId> 
<version>1.0.0-SNAPSHOT</version> 
<packaging>apk</packaging> 
<name>Android Maven Example</name> 


<profiles> 
    <profile> 
    <id>release</id> 
    <activation> 
     <property> 
     <name>performRelease</name> 
     <value>true</value> 
     </property> 
    </activation> 
    </profile> 
    </profiles> 
<dependencies> 
    <dependency> 
    <groupId>com.google.android</groupId> 
    <artifactId>android</artifactId> 
    <version>2.2.1</version> 
    <scope>provided</scope> 
    </dependency> 
</dependencies> 
<build> 
    <finalName>unaligned-gladstonesign</finalName> 
    <sourceDirectory>src</sourceDirectory> 

    <pluginManagement> 
    <plugins> 
    <plugin> 
    <groupId>com.jayway.maven.plugins.android.generation2</groupId> 
    <artifactId>android-maven-plugin</artifactId> 
    <version>3.1.1</version> 
    <extensions>true</extensions> 
    </plugin> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-jarsigner-plugin</artifactId> 
     <version>1.2</version> 
     <configuration> 
      <keystore>C:\Project\Eclipse workspace\apk_key</keystore> 
      <alias>gs3key</alias> 
      <storepass>****</storepass> 
      <keypass>****</keypass> 
      <verbose>true</verbose> 
      <certs>true</certs> 
     </configuration> 
     </plugin> 
    </plugins> 
    </pluginManagement> 
    <plugins> 
    <plugin> 
    <groupId>com.jayway.maven.plugins.android.generation2</groupId> 
    <artifactId>android-maven-plugin</artifactId> 
    <configuration> 
    <sdk> 
     <platform>17</platform> 
    </sdk> 
    </configuration> 
    </plugin> 
    </plugins> 
</build> 
</project> 

bất cứ ai có thể giúp tôi với làm thế nào để phát hành nó trong việc xây dựng chế độ?

Trả lời

12

Gói ứng dụng của bạn cần được ký và zipaligned. Vì vậy, trước tiên bạn nên 'liên kết' việc thực thi jarsigner với giai đoạn package và trong lần 2 cấu hình zipalign trong plugin Android của bạn. thấy http://www.simpligility.com/2010/07/sign-zipalign-and-to-market-to-market-with-maven/

<plugin> 
<groupId>org.apache.maven.plugins</groupId> 
<artifactId>maven-jarsigner-plugin</artifactId> 
<executions> 
    <execution> 
     <id>signing</id> 
     <goals> 
      <goal>sign</goal> 
      <goal>verify</goal> 
     </goals> 
     <phase>package</phase> 
     <inherited>true</inherited> 
     <configuration> 
      <removeExistingSignatures>true</removeExistingSignatures> 
      <archiveDirectory/> 
      <includes> 
       <include>${project.build.directory}/${project.artifactId}.apk</include> 
      </includes> 
      <keystore>${sign.keystore}</keystore> 
      <alias>${sign.alias}</alias> 
      <storepass>${sign.storepass}</storepass> 
      <keypass>${sign.keypass}</keypass> 
      <verbose>true</verbose> 
     </configuration> 
    </execution> 
</executions> 
</plugin> 


<plugin> 
<groupId>com.jayway.maven.plugins.android.generation2</groupId> 
<artifactId>maven-android-plugin</artifactId> 
<inherited>true</inherited> 
<configuration> 
    <sign> 
     <debug>false</debug> 
    </sign> 
    <zipalign> 
     <verbose>true</verbose> 
     <inputApk>${project.build.directory}/${project.artifactId}.apk</inputApk> 
     <outputApk>${project.build.directory}/${project.artifactId}-signed-aligned.apk 
     </outputApk> 
     <skip>false</skip> 
    </zipalign> 
</configuration> 
<executions> 
    <execution> 
     <id>alignApk</id> 
     <phase>package</phase> 
     <goals> 
      <goal>zipalign</goal> 
     </goals> 
    </execution> 
</executions> 
</plugin> 
+0

gần đây android-maven-plugin hơn như trái ngược với maven-android-plugin Hóa Yêu Cầu định nghĩa của sai bên trong phần tử để chạy, có vẻ như nó bị tắt theo mặc định! – PiersyP

+0

@PiersyP: cảm ơn. Tôi đã cập nhật câu trả lời. – willome

+0

Thêm https://timestamp.geotrust.com/tsa vào jarsigner -tag để dấu thời gian và do đó tránh cảnh báo dấu thời gian. – JohnyTex

Các vấn đề liên quan