2014-10-30 78 views
0

我有問題產生一個新的apk,我想上傳到谷歌Play商店。谷歌播放 - 上傳新APK未能 - 指紋不同證書

最近我選擇使用gradle來直接簽署發行版apk。爲此,我正在閱讀一個屬性文件,其中包含用於簽署apk的密鑰庫的所有詳細信息。 此前我使用IntelliJ的嚮導來發布apk。

看起來,嚮導的簽名與Gradle不同,因此我無法將新apk上傳到Google Play。

PS:由gradle這個生成APK是[項目根] [根模塊在\建立\輸出\ APK \

有誰知道,如果我做錯事或者是gradle這個使用其他方法來簽署apk使它與通過嚮導簽名的apk不同。

+1

您可能會發現一些在有效關於確定簽名者,驗證證書等方面的現有問題。 – 2014-10-30 08:05:13

+0

運行「jarsigner -verify -verbose -certs my.apk」命令告訴我,來自Gradle的apk簽名過程被搞砸了。它總是隻採用最新的密鑰庫文件。 我會發布我的更新build.gradle文件,它適用於每種口味的不同密鑰庫。 – 2014-10-30 08:59:41

回答

1

我的問題似乎與我如何實現build.gradle。我固定它,這是它應該如何看,當你希望有不同的密鑰庫針對每種口味,如:

signingConfigs { 
    println 'Sign apk config' 

    falvor1 { 
     /** Details for signing the application */ 
     def props = new Properties() 
     props.load(new FileInputStream(rootProject.file("release.properties.flavor1"))) 

     storeFile file(rootProject.file(props.keyStore)) 
     storePassword props.keyStorePassword 
     keyAlias props.keyAlias 
     keyPassword props.keyAliasPassword 
    } 

    flavor2 { 
     /** Details for signing the application */ 
     def props = new Properties() 
     props.load(new FileInputStream(rootProject.file("release.properties.flavor2"))) 

     storeFile file(rootProject.file(props.keyStore)) 
     storePassword props.keyStorePassword 
     keyAlias props.keyAlias 
     keyPassword props.keyAliasPassword 
    } 
} 

/** Add product flavours for all variants of application */ 
productFlavors { 

    flavor1 { 
     // Update the application ID/ Package name 
     applicationId "com.my.application.flavor1" 
     /* Update the version code & version name */ 
     versionCode 100 
     versionName "1.0.0.1" 
    } 

    flavor2 { 
     // Update the application ID/ Package name 
     applicationId "com.my.application.flavor2" 
     /* Update the version code & version name */ 
     versionCode 200 
     versionName "2.0.0.2" 
    } 
} 

buildTypes { 
    debug { 

     runProguard false 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 

     zipAlign true 

    } 


    release { 

     //Only use the release key on a release buildType 
     productFlavors.flavor1.signingConfig signingConfigs.flavor1 
     productFlavors.flavor2.signingConfig signingConfigs.flavor2 

     runProguard true 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 

     zipAlign true 


    } 
} 

release.properties.flavor結構

// Name of the keystore file 
keyStore=flavor1.keystore 
// keystore password 
keyStorePassword=flavor1pass 
// Key alias 
keyAlias=flavor1_alias 
// Key password 
keyAliasPassword=flavor1pass 
相關問題