【问题标题】:App transfer from one company to another and certificates应用程序从一家公司转移到另一家公司和证书
【发布时间】:2018-03-22 02:19:17
【问题描述】:

应用程序可以在 Google Play 和 Apple Store 这两个商店中从一家公司转移到另一家公司。但是,正如我被告知的那样,每个应用程序都有一个证书。我对此知之甚少,谷歌搜索让我感到困惑,而不是它实际上对我有帮助。我负责应用程序的移动和更新过程的初始化。

给我任务的 X 公司有一个应用程序。该应用程序由 DEV 公司开发。一段时间后,两家公司之间的关系在应用程序源代码的所有权问题上变得有些僵化。最后,两家公司同意,他们只需将应用程序从 DEV 公司拥有的商店账户转移到他们自己的商店账户。为了在没有任何律师参与的情况下保持和平,X 公司将从头开始重新设计应用程序,而不使用当前应用程序中的任何代码。因此,DEV 公司不会交出源代码,只交出 APK。因此,X 公司将创建一个新应用程序,一旦该应用程序上线,就停用旧应用程序。

我在 Google https://support.google.com/googleplay/android-developer/answer/6230247?hl=en-GB 上阅读了有关应用程序转移的两份文档

苹果https://developer.apple.com/library/content/documentation/LanguagesUtilities/Conceptual/iTunesConnect_Guide/Chapters/TransferringAndDeletingApps.html

只要没有应用内购买,转移应用就没有问题。但是,我找不到任何有关证书的信息。证书是否与应用程序一起提供并且也会自动转移,或者证书是否属于 DEV 帐户的所有者,在这种情况下是 DEV 公司?这意味着需要使用新证书重新编译应用程序,我相信,这意味着所有用户都需要为此更新他们的应用程序,对吗?

我在 Apple 上找到了这个:https://developer.apple.com/support/certificates/ 但这让我感到困惑,而不是在那种情况下有帮助。

【问题讨论】:

  • 谢谢。据我了解,密钥属于开发人员,因此无法转让。因此,可以转移应用程序,但之后无法进行更新。 X 公司需要从商店中删除该应用程序并发布一个新应用程序,所有现有用户的手机上都会有一个无用的应用程序,对吗?
  • @Davatar,您对后果的看法是正确的。但为什么密钥属于开发人员?它应该属于拥有该应用程序的组。让开发者创建一个新的。
  • 两家公司在谁拥有代码和避免升级方面存在冲突,他们同意不共享代码。所以DEV公司有源代码,X公司没有。 X 公司会从 DEV 公司获得 APK,但不重新编译代码(因为没有代码),无法分配新的密钥。或者这可能吗?或者一个新的应用程序可以覆盖现有的应用程序并使用不同的密钥?
  • 您不能退出 .apk 文件。您可以想象如果您可以允许某些第 3 方使用其他人的签名会带来的安全问题。新应用将无法使用不同的密钥覆盖现有应用。

标签: android ios certificate app-store transfer


【解决方案1】:

Davatar 的回答不太正确(至少对于 Google Play)。除了 Google Play,我无法对任何地方发表评论,让我尝试为那里给出正确答案。

一个应用程序有一个证书,用于识别应用程序的所有者。这类似于 SSL 证书。这个想法是告诉最终用户但更重要的是 Android 操作系统,应用程序的当前版本是由与原始应用程序相同的人创建的。否则任何人都可以更新设备上的应用程序。

所以你有三个选择:

  1. 在我看来,更好的选择是从原始开发商那里获得证书。然后可以将应用转移到新的开发者账号,当新版本发布时,所有用户都会收到更新
  2. 如果无法移交证书,情况会更糟。在这种情况下,别无选择,只能发布应用程序的新版本并取消发布旧版本。如果你这样做
    • 现有用户将无法获得更新,他们必须手动安装新版本
    • 现有用户仍可使用旧版应用
    • 现有用户仍然可以安装旧应用(新用户不能)
  3. Google Play App Signing注册应用程序。然后签名和证书将由 Google 存储。转移应用时,可以为新所有者创建一个新的上传密钥,这具有选项 1 的所有好处。

如您所见,第二种选择对您的客户和用户来说是一个更糟糕的选择。选项 1 或 3 更好。

如果该应用已注册 Google Play 应用签名,则不会存在此问题。如果创建了新应用,我强烈建议这样做。

【讨论】:

    【解决方案2】:

    好的,感谢 Allen R,他通过 cmets 给出了这个案例的答案。

    这里是关于签署密钥的信息 Android https://developer.android.com/studio/publish/app-signing.html 和 Apple https://developer.apple.com/support/code-signing/,但这只是应用签名密钥的解释。

    基本上,一个应用程序有一个证书,用于识别应用程序的创建者/开发者。这类似于 SSL 证书。这个想法是告诉最终用户,应用程序的当前版本是由原始开发人员创建的。

    正如艾伦所说:

    您不能退出 .apk 文件。您可以想象如果您可以允许某些第 3 方使用其他人的签名会带来的安全问题。新应用将无法使用其他密钥覆盖现有应用。

    因此,在当前情况下,将应用转移到新帐户后,必须将其停用并发布新的。用户将无法再使用原始应用程序。如果应用程序设计正确,它应该在启动/登录/尽可能地显示错误消息,并通知用户该应用程序已弃用,必须从商店下载新版本。

    【讨论】:

      【解决方案3】:

      对于 iOS 应用,必须有以下项目。

      1. iOS Distribution: <XXXX company name> 在钥匙串中。
      2. 应用商店的配置文件。
        用于 Xcode 项目配置。
      3. 应用程序的包标识符。
        用于 Xcode 项目配置。如果您没有,可以在Provisioning profile 中找到它。你可以找到解码Provisioning profile的方法来获取它。

      如果其他公司只需要ipa 上传到App Store,您需要以上项目才能产生ipa 结果。如果您需要上传到他们的应用商店,那么您需要在他们的Itunes Connect 中拥有一个帐户,并且该帐户具有将应用上传到应用商店的访问权限。

      您可以通过命令行工具Fastlane 自动完成整个操作。我更喜欢the tutorial on the www.raywenderlich.com about Fastlane.

      【讨论】:

        【解决方案4】:

        --- 仅适用于 iOS ---

        我遇到过类似的情况,我需要将我的应用从一个 iTunes 帐户转移到另一个 iTunes 帐户。

        基本上每个 iOS 应用都有 4 个身份关联:

        1. Bundle Id例如: com.domainname.appIdentifier)

        2。配置文件

        3. APNS 证书(如果为应用实施推送通知)

        4.帐户证书(这些是特定于开发者帐户的,意味着在同一帐户下发布的所有应用都是唯一的)

        现在将应用程序从一个 iTunes 帐户转移到另一个帐户将仅迁移具有捆绑 ID 的应用程序。但这不会影响应用程序的当前工作。它将像转移前一样正常工作。

        现在如果您想上传新版本的应用程序,那么您需要创建新的配置文件、新的 APNS,并且您将使用新帐户的帐户证书。 (请记住,您需要更新服务器上的 APNS 证书(.p12/PEM 文件)才能使推送通知正常工作。)


        现在专门针对您的问题,DEV公司会将应用程序转移到您公司X的iTunes帐户。它将使用捆绑ID转移应用程序,这意味着应用程序商店中的应用程序将不再在DEV公司的帐户下可用,也无法使用再次使用相同的捆绑 ID。只有您的公司 X 可以使用从 DEV 公司转移获得的捆绑包 ID。

        从用户的角度来看,应用程序的使用不会有任何变化或问题。即使您发布新版本的应用程序旧应用程序也可以正常工作。如果您的应用程序中有推送通知功能,唯一的问题可能是,因为您将更改服务器上的 .p12/ PEM 文件,因此如果不更新应用程序,旧用户将不会收到推送通知。

        如果您需要更多解释,或者您有任何困惑,请告诉我。

        【讨论】:

          猜你喜欢
          • 2022-06-17
          • 1970-01-01
          • 1970-01-01
          • 2016-06-20
          • 1970-01-01
          • 2011-02-17
          • 1970-01-01
          • 2015-05-15
          • 2013-05-18
          相关资源
          最近更新 更多