2016-03-06 78 views
2

我正在为在商店中拥有此“foo”应用程序的公司工作,该应用程序是我们硬件的助手,它受到经销商的欢迎。我们确保该名称尽可能通用 - 以便我们的供应商能够将应用程序推广为“他们的应用程序”。Android白色标签

但是 - 有些重新卖家确实希望在应用上拥有自己的确切名称和图标。他们愿意付钱,我需要做到这一点。

问题:

  1. 我明白,我找构建变种。但是,如何修改apk-package-name,显示名称是使用构建变体的默认启动器图标?
  2. 这是允许的吗?我不是“正式”发送垃圾邮件的商店,但我觉得我可以禁止这样做。
  3. 代码签名 - 我会上传APK我的自我,我需要使用不同的证书(无论它在android上调用)签名。再次 - 这是模糊的,我无法找到有关此主题的文档。
  4. 我也打算以这种方式发布我的应用程序的测试版本。我目前正在使用标准机制,但这意味着测试人员无法向客户展示应用程序(因为它没有完成或大部分时间崩溃)[1]

  5. 术语“白色标签”是否适用于此处。 ..?

[1]在一家小公司工作:)

+0

对于#2-少数的情况并不少见,你会看到免费的,付出了很多的应用程序的版本。至于#3-你们会真的为他们上传吗?我想你会为他们提供一个验证测试apk,他们会自行上传它。我不希望我的公司的名字出于我没有批准的事情上。 –

+0

@GabeSechan你是技术人员,所以你有问题。我也有类似的想法 - 如果foolab公司要求我建立一种建筑风味,并且在3年内他们会说“好吧,现在我用我自己的代码去 - 给我签名证书”会发生什么?当我问到我被告知“foolab”通常是非常技术性的,甚至不明白我问的。 – elcuco

+1

我曾经在一家小公司工作,我们不得不做类似的事情。你可能想要自动化整个过程,包括上传到谷歌播放,但(但不包括签名)。另一种方法很快变得非常昂贵,并且在更新时很容易忘记其中一个白名单应用程序。正如我们所做的,不止一次.. :) –

回答

5

您可以构建变量做到这一点,你怀疑,而且你可能会需要香精的乐趣。

这是一个具有多种构建类型和风味的示例gradle文件。在flavor设置中设置ApplicationId(Play Store中使用的包名)。

设置每种类型/风味的签名。您可以添加特定于每种风味的资源,图标,清单等。您甚至可以替换整个类文件,以便客户特定的代码仅包含在您为其构建的客户的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 
    } 
} 

这是用于为每种类型\口味添加资源的文件夹结构。在这个例子中,第二种味道被称为“粉丝”。 “主”文件夹默认使用。取决于您在Android Studio的“Build Variants”部分中选择的构建版本,每种类型和风味资源都会合并到apk中(替换主文件夹中的任何相同名称)。

enter image description here

Android Studio中显示的文件夹是在对当前构建作为该图像中示出突出的效果。

enter image description here


编辑 - 全官方文档可以在这里找到:https://developer.android.com/tools/building/configuring-gradle.html

+0

好的,这与上游文件(我编辑你的回复包含正确的链接)澄清了很多。使用'storeFile文件'和相关的键很好的触摸。这有很大帮助。仍然没有回答“我会被踢出商店” - 但这不是你能回答的问题。 – elcuco

+0

谷歌对他们的政策颇有看法,所以你应该在这里找到你所需要的:https://play.google.com/about/developer-content-policy.html – Kuffs

+0

新问题 - 我做到了,我的应用程序工作正常...现在,当我选择从AndroidStudio生成已签名包时,它会要求我输入密钥库路径,而不是使用gradle文件中的路径。这意味着 - 我可以(并确实)用错误的密钥库签署了一个软件包。除了“思考两次”和“从命令行使用gradle” - 避免这个问题的最好方法是什么? – elcuco