所以我有這個app1,我想創建一個app2,從app1,它將幾乎是相同的應用程序,但在佈局上的差異。我設法使用productFlavors來做到這一點。結果需要是Play商店中的兩個應用程序,這兩個應用程序都是免費的,用戶可以同時擁有他們的手機。從相同的應用程序安裝兩個調試apk(味道)
但是,我可以構建兩個apk進行調試,但是當我安裝一個,手機不讓我安裝其他。這兩件事上傳到商店後會發生嗎?
這是我的gradle產出:
defaultConfig {
applicationId "com.example.app"
minSdkVersion 16
targetSdkVersion 25
versionCode 48
versionName "3.1.1"
multiDexEnabled true
}
signingConfigs {
String releaseFilename = "/.androidReleaseKeys/example_release.properties"
Properties props = new Properties()
props.load(new FileInputStream(file(releaseFilename)))
release {
storeFile file(props.getProperty('keystore'))
storePassword props.getProperty('keystore.password')
keyAlias props.getProperty('keyAlias')
keyPassword props.getProperty('keyAlias.password')
}
}
productFlavors{
app1{
applicationId "com.example.app"
buildTypes {
debug {
buildConfigField "String", "GOOGLEMAPS_API_KEY", "\"${googleMapsAPIDev}\"";
debuggable true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
release {
signingConfig signingConfigs.release
buildConfigField "String", "GOOGLEMAPS_API_KEY", "\"${googleMapsAPIRelease}\"";
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
app2{
applicationId "com.example2.app2"
versionCode 1
versionName "1"
multiDexEnabled true
buildTypes {
debug {
buildConfigField "String", "GOOGLEMAPS_API_KEY", "\"${googleMapsAPIDev}\"";
debuggable true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
release {
signingConfig signingConfigs.release
buildConfigField "String", "GOOGLEMAPS_API_KEY", "\"${googleMapsAPIRelease}\"";
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
我應該在控制檯中創建一個新應用程序,併爲她創建一個新的密鑰存儲? (我在某處讀過,你可以使用同一個keystore用於多個應用程序) –
安裝第二個應用程序時'adb'返回什麼錯誤? – Artyom
安裝失敗,消息INSTALL_FAILED_DUPLICATE_PERMISSION perm = com.example1.app.permission.C2D_MESSAGE pkg = com.example2.app(不是在adb只是彈出)我想我需要創建第二個清單併合並一些更改 –