Android 为Amazon构建一个未签名的apk,为Google构建一个已签名的apk

Android 为Amazon构建一个未签名的apk,为Google构建一个已签名的apk,android,amazon,android-gradle-plugin,Android,Amazon,Android Gradle Plugin,我有两种构建类型(debug和release)和两种产品风格(google和amazon),我需要能够指定使用signingConfigs.release签名的所有变体,amazonRelease变体除外,它需要使用signingConfigs.unsigned签名 我不确定如何针对特定的构建变量(即amazonRelease),以便设置其signingConfig 这是我当前在build.gradle中拥有的 android { ... signingConfigs { r

我有两种构建类型(debug和release)和两种产品风格(google和amazon),我需要能够指定使用signingConfigs.release签名的所有变体,amazonRelease变体除外,它需要使用signingConfigs.unsigned签名

我不确定如何针对特定的构建变量(即amazonRelease),以便设置其signingConfig

这是我当前在
build.gradle中拥有的

android {

  ...

  signingConfigs {
    release {
      storeFile ...;
      keyAlias ...;
      storePassword ...;
      keyPassword ...;
    }

    unsigned {
      keyAlias "";
      storePassword "";
      keyPassword "";
    }
  }

  buildTypes {
    debug {
      versionNameSuffix = "-DEBUG"
    }

    release {
      signingConfig signingConfigs.release;
    }
  }

  flavorGroups "storeFront"

  productFlavors {
    google {
      flavorGroup "storeFront"
    }

    amazon {
      flavorGroup "storeFront"
    }
  }
}

引用文件:

在某些情况下,可以在构建类型和产品风格上设置设置。在这种情况下,它是在个案的基础上

例如,signingConfig就是这些属性之一

这允许通过设置android.buildTypes.release.SigningConfig让所有发布包共享相同的SigningConfig,或者通过分别设置每个android.productFlavors.*.SigningConfig对象让每个发布包使用自己的SigningConfig


因此,我会尝试删除
发布版
登录配置
并将
登录配置
属性添加到
谷歌
亚马逊
。如果我正确理解了文档,那么调试版本的
debug
signingConfig
将胜过
google
amazon
signingConfig
属性,发布版本将使用在flavors上定义的属性。

您不必费心了。只需将您的普通签名APK提交给Amazon,他们就会用自己的证书重新签名。我向Google Play和Amazon提交了完全相同的APK,没有任何问题。Graham基本上是对的,您仍然需要更改您在Google Play上使用的包名(即使亚马逊没有严格执行该要求),但亚马逊不再要求您提交未签名的应用程序:@stephanbraczyk我想知道我目前如何能够向两家商店提交相同的APK?你知道最近是否需要一个亚马逊特有的软件包名称吗?@GrahamBorland,我不知道。我刚刚检查了Way Back机器,但该特定文档页甚至没有被它索引。显然,如果他们已经让你以特定的软件包名称发布,那么强迫你追溯更改它将是非常愚蠢的,这将违背他们作为应用商店的利益。我认为我需要一个未签名的APK的原因是为了让facebook登录工作。双重签名正在阻止登录工作。如果我上传了一个签名的APK,那么他们就不会给我提供我需要在Facebook应用程序仪表板中输入的密钥散列(至少我找不到)。我添加了以下内容,但google版本现在抛出了两个错误,说它找不到值
storePassword
keyPassword
productFlavors{google{flavorGroup“storeFront”signingConfig signingConfigs.release}amazon{flavorGroup“storeFront”signingConfig signingConfigs.unsigned}
@HMCFletch:我真的帮不了你,因为你的代码没有显示你在用什么,我也不知道确切的信息(和跟踪信息)你从Geelle开始。考虑编辑你的问题,用你的<代码> Bug .Goelle 文件的最新修订版,以及你得到的确切输出。我用“<代码> Stase.GETEnV”(“RelaseSyPosiple”)追踪到一些问题。
而不是在
build.gradle
中使用密码文本。您的答案与文本有效,因此我将继续接受。这似乎是一个完全不同的问题。谢谢!