【问题标题】:Android: Signing for many customers (MonoDroid)Android:为许多客户签名(MonoDroid)
【发布时间】:2011-08-17 18:16:16
【问题描述】:

我们将为 3 个不同的客户构建 Android 应用程序。

使用 Java SDK 工具 keytool,我们生成 3 个不同的密钥库文件。

我们是使用相同的 KeyStore 文件为每个公司的每个应用程序签名,还是每个应用程序都需要自己的密钥库?

见:http://android.xamarin.com/Documentation/Guides/Preparing_Package_for_Android_Marketplace?highlight=market

【问题讨论】:

    标签: android xamarin.android keystore signing


    【解决方案1】:

    单个密钥库文件可以包含许多密钥。密钥库中的每个密钥都有一个别名(即名称),您在使用该密钥签名时会使用该别名。您可以毫无问题地将每个应用程序的所有三个密钥放入一个密钥库中。

    您可以为所有应用程序使用一个密钥,但如果该密钥被泄露,您需要更改影响所有应用程序的密钥。通常,密钥泄露不太可能带来风险,但如果您有承包商在每个应用程序上工作,它会限制您让承包商跑掉密钥或类似的事情。

    【讨论】:

    • 我认为承包商甚至大多数员工应该有权访问生产密钥的理由并不多。大概你有一些内部资格箍代码在正式发布之前必须跳过;当它通过时,你的 android 工作的密钥可以用真正的密钥重新签名,这可能应该只在一台活动的机器上(虽然是离线备份的)。
    • 当然。每个地方都应该这样运作,但我们都知道这不是现实。大多数时候,小商店甚至不知道这些密钥的存在,因为开发人员只是为他们处理了这些密钥。另外,人们会丢失密码,机器崩溃等。我唯一的观点是,如果您将它们全部绑定在一起,更改将影响所有应用程序,而不仅仅是一个。随心所欲地使用这些信息。
    【解决方案2】:

    密钥签名是为了识别开发人员而不是客户,the Android Market documentation 建议这样做。如果您需要使用单独的密钥,您可以使用一个具有多个签名的密钥库或每个密钥库一个。我建议您为每个 Android Market 帐户创建一个密钥库文件。虽然你没有说这些应用程序是否发布在市场上。 Keytool 将允许您导入和导出签名,从而为您提供一些灵活性。

    【讨论】:

      【解决方案3】:

      密钥用于对您的应用程序进行数字签名......因此它可以识别发布者

      发布者密钥:供最终客户使用的 Digitaly 最终发布应用程序

      Worker 开发者密钥:1 年有效期很容易由 Eclipse 生成(使用 ADT)

      因此,如果您的问题是:一个发布者 3 个工作人员...单个发布者密钥对就足够了 如果您不想将私钥提供给工作人员...

      !!事实上发布者不必向工作人员提供发布者私钥

      --> 工人只需要 Eclipse 自动生成的有效期为 1 年的开发密钥 可以根据您的需要多次重新生成,但不能用于发布用途

      -->发布者将未签名的最终 APK 应用程序(由工作人员提供)文件,然后发布者将对这些 APK 进行签名/压缩对齐到新的 APK 中,以“按原样”提供给最终客户或上传到市场商店。

      【讨论】:

      • 注:日期时间有效性仅用于安装...安装后如果密钥无效应用程序仍然可以执行..但不能再安装...
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-20
      • 1970-01-01
      相关资源
      最近更新 更多