Android 白标
Android white labeling
我在一家公司工作,该公司在商店中有这个 "foo" 应用程序,该应用程序是我们硬件的帮手,受到经销商的青睐。我们确保名称尽可能通用 - 以便我们的供应商能够将应用程序作为 "their app" 进行营销。
但是 - 一些转售商确实希望在应用程序上显示他们的确切名称和图标。而且他们愿意付钱,所以我需要做到这一点。
问题:
- 我知道我正在寻找构建变体。但是,如何修改 apk-package-name ,显示名称是使用构建变体的默认启动器图标?
- 这是允许的...?我没有 "officially" 向商店发送垃圾邮件,但感觉我可能会因为这样做而被禁止。
- 代码签名 - 我将自己上传 APK,我将需要使用不同的证书(无论在 android 上调用什么)进行签名。同样 - 这含糊不清,我找不到关于这个主题的文档。
我还计划以这种方式发布我的应用程序的测试版。我目前使用的是标准机制,但这意味着测试人员无法向客户展示应用程序的案例(因为它大部分时间都没有完成或崩溃)[1]
术语"white labeling"是否适用于此...?
[1]在小公司工作的乐趣:)[=11=]
您可以像您怀疑的那样使用构建变体来执行此操作,但您也可能需要 Flavors。
这是一个示例 gradle 文件,它具有多种构建类型和风格。您在风格设置中设置 ApplicationId(Play 商店中使用的程序包名称)。
在每个 type/flavor 中设置签到。您可以添加特定于每种风格的资源、图标、清单等。您甚至可以替换整个 class 文件,因此客户特定代码仅包含在您为其构建的客户的 apk 中。
defaultConfig {
applicationId "uk.co.foo.default"
minSdkVersion 14
targetSdkVersion 23
versionCode = 113
versionName = "3.2.3"
}
signingConfigs {
release {
storeFile file("X:\Android Projects\Keystore\MyKeys.jks")
storePassword "MyPassword"
keyAlias "KeyAlias"
keyPassword "itsasecret"
}
}
productFlavors {
Customer1 {
applicationId "uk.co.foo.customer1"
}
Customer2 {
applicationId "uk.co.foo.customer2"
}
}
buildTypes {
debug {
applicationIdSuffix ".debug"
versionNameSuffix " Debug"
}
beta {
applicationIdSuffix ".beta"
versionNameSuffix " Beta"
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
signed {
minifyEnabled false
debuggable true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
}
这是为每个 type\flavor 添加资源的文件夹结构。在此示例中,第二种口味称为 "fan"。默认使用 "main" 文件夹。根据您在 Android Studio 的 "Build Variants" 部分中选择的版本,每种类型和风格的资源都会合并到 apk 中(替换主文件夹中的任何相同名称)。
Android Studio 将显示哪些文件夹对当前版本有效,如图中突出显示的那样。
编辑 - 此处提供完整的官方文档:https://developer.android.com/tools/building/configuring-gradle.html
我在一家公司工作,该公司在商店中有这个 "foo" 应用程序,该应用程序是我们硬件的帮手,受到经销商的青睐。我们确保名称尽可能通用 - 以便我们的供应商能够将应用程序作为 "their app" 进行营销。
但是 - 一些转售商确实希望在应用程序上显示他们的确切名称和图标。而且他们愿意付钱,所以我需要做到这一点。
问题:
- 我知道我正在寻找构建变体。但是,如何修改 apk-package-name ,显示名称是使用构建变体的默认启动器图标?
- 这是允许的...?我没有 "officially" 向商店发送垃圾邮件,但感觉我可能会因为这样做而被禁止。
- 代码签名 - 我将自己上传 APK,我将需要使用不同的证书(无论在 android 上调用什么)进行签名。同样 - 这含糊不清,我找不到关于这个主题的文档。
我还计划以这种方式发布我的应用程序的测试版。我目前使用的是标准机制,但这意味着测试人员无法向客户展示应用程序的案例(因为它大部分时间都没有完成或崩溃)[1]
术语"white labeling"是否适用于此...?
[1]在小公司工作的乐趣:)[=11=]
您可以像您怀疑的那样使用构建变体来执行此操作,但您也可能需要 Flavors。
这是一个示例 gradle 文件,它具有多种构建类型和风格。您在风格设置中设置 ApplicationId(Play 商店中使用的程序包名称)。
在每个 type/flavor 中设置签到。您可以添加特定于每种风格的资源、图标、清单等。您甚至可以替换整个 class 文件,因此客户特定代码仅包含在您为其构建的客户的 apk 中。
defaultConfig {
applicationId "uk.co.foo.default"
minSdkVersion 14
targetSdkVersion 23
versionCode = 113
versionName = "3.2.3"
}
signingConfigs {
release {
storeFile file("X:\Android Projects\Keystore\MyKeys.jks")
storePassword "MyPassword"
keyAlias "KeyAlias"
keyPassword "itsasecret"
}
}
productFlavors {
Customer1 {
applicationId "uk.co.foo.customer1"
}
Customer2 {
applicationId "uk.co.foo.customer2"
}
}
buildTypes {
debug {
applicationIdSuffix ".debug"
versionNameSuffix " Debug"
}
beta {
applicationIdSuffix ".beta"
versionNameSuffix " Beta"
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
signed {
minifyEnabled false
debuggable true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
}
这是为每个 type\flavor 添加资源的文件夹结构。在此示例中,第二种口味称为 "fan"。默认使用 "main" 文件夹。根据您在 Android Studio 的 "Build Variants" 部分中选择的版本,每种类型和风格的资源都会合并到 apk 中(替换主文件夹中的任何相同名称)。
Android Studio 将显示哪些文件夹对当前版本有效,如图中突出显示的那样。
编辑 - 此处提供完整的官方文档:https://developer.android.com/tools/building/configuring-gradle.html