2014-01-30 148 views
6

我是新來的Android Studio和運行設備上的調試版本工作正常,但在應用程序採購測試(顯然釋放)我需要一個版本生成簽署與正常鍵。我可以使用Build - > Generate signed APK製作APK,但是包名似乎不正確。這是我的構建文件:Android工作室 - 釋放APK的味道

apply plugin: 'android' 

android { 
    compileSdkVersion 19 
    buildToolsVersion "19.0.1" 

    defaultConfig { 
     minSdkVersion 8 
     targetSdkVersion 9 

     testPackageName "com.company.common.common" 
     testInstrumentationRunner "android.common.InstrumentationTestRunner" 
    } 

    signingConfigs { 
     releaseConfig { 
      storeFile file("filname") 
      storePassword "password" 
      keyAlias "alias" 
      keyPassword "password" 
     } 
    } 

    buildTypes { 
     debug { 
      packageNameSuffix ".debug" 
     } 
     release { 
      runProguard false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 
      signingConfig signingConfigs.releaseConfig 
     } 
    } 

    productFlavors { 
     Flavor1 { 
      packageName "com.company.test" 
     } 
    } 
} 

dependencies { 
    // some dependencies 
} 

請注意包裝中的名稱被重寫。這種味道沒有清單;唯一的清單是在main下,並指定一個com.company.common包。如果我使用Android創建com.company.test APK並將其安裝到設備上,然後從Android Studio生成APK並進行安裝,則最終會在設備上顯示兩個應用程序,而不是第二個應用程序替換第一個應用程序。這表明軟件包名稱是不同的,我假設,因爲Android Studio正在生成一個包含com.company.common包的APK。不知道如何驗證。

當我剛建立項目,我得到一個調試APK,但沒有釋放APK。如何獲得正確包名的發佈APK?我剛剛從Android Studio運行了應用程序,它說它正在安裝com.company.test.debug,並且它需要在安裝前卸載應用程序。所以現在我正在考慮生成簽名的APK生成一個與調試包的構建。

到目前爲止,這是阻止我轉移到Android Studio和Gradle的問題。一旦我過去了,我想我很清楚要把所有的東西都搬走,所以我希望有人能幫我弄明白!

+0

我在命令行上使用「gradle assembleRelease」來確保我正在創建一個發佈版本。您還應該能夠使用「installFlavor1Release」任務進行測試。 –

回答

7

在您選擇的簽署了產生APK選項,進入構建變量窗口,選擇發佈構建變量。 生成簽名APK命令會採用任何當前生成類型並在其中籤名。在這種情況下,這顯然不是你想要的;錯誤https://code.google.com/p/android/issues/detail?id=56532正在請求改進。

+0

工作,謝謝!從我的文檔閱讀中,似乎應該可以進行設置,以便在構建項目時自動生成調試APK和發佈APK,而無需轉至生成已簽名的APK。我誤解了,還是我的配置錯了,或者它可能是AS中的一個錯誤? – user1854994

+0

有沒有這樣的事情作爲一個未簽名的APK - 甚至調試版本使用調試密鑰簽名。因此,如果您通過命令行或Android Studio中的普通構建命令構建發佈版本,它將使用您的build.gradle文件中指定的密鑰進行簽名,這是您使用生成簽名APK嚮導設置的密鑰 - 這都是相同。如果您尚未安裝,則嚮導會填寫構建文件中的條目。 –

+0

是的我知道,我說的是當我做一個構建(Ctrl-F9)時,它會產生一個簽名的調試APK,就是這樣。沒有發佈APK。由於我擁有gradle構建文件中的所有簽名信息,是否有辦法讓它也生成每個構建的簽名版本APK?或者我總是必須去建立 - >生成簽名的APK? – user1854994