【问题标题】:When signed with a certificate which is not included in the provisioning profile, still app is able to install how?当使用未包含在配置文件中的证书签名时,应用程序仍然可以安装吗?
【发布时间】:2017-05-10 06:08:51
【问题描述】:

当使用未包含在配置文件中的证书进行签名时,应用仍然能够在设备上成功安装,如何?

我有两个通配符签名身份 一种 乙

我使用签名身份 A 创建了配置文件

现在我从命令行使用相同的配置文件将其与 B 签约。

应用安装成功,如何?

【问题讨论】:

  • 首先,如果不在配置文件中包含证书,就无法在您的设备上安装应用程序。可能是您为您创建的 xcode 证书。
  • 因为您使用的是通配符签名身份,如果配置文件中包含该通配符签名身份,则有可能在设备上安装
  • @SivajeeBattina 它不是来自 Xcode 而是来自命令行 我创建了一个配置文件,其中我故意包含了一些其他通配符签名身份 我应该在设备日志中遇到什么错误?
  • @SivajeeBattina 从技术上讲,您不需要在应用程序中包含配置文件。 iOS 唯一关心的是设备上是否存在该签名身份的有效配置文件。通常,这是通过将配置文件与应用程序打包到 embedded.mobileprovision 文件中作为捆绑包的一部分来完成的。但是,还有其他方法可以在设备上获取有效的配置文件,例如以前的安装(尤其是在使用通配符 id 时),或者让 MDM 将配置文件推送到受管设备。

标签: ios provisioning-profile code-signing-certificate


【解决方案1】:

您需要了解,要在 iOS 设备上运行应用程序,您只需要一个有效的配置文件。

您有两个通配符配置文件,因此从技术上讲,两者都可以工作。但是,您声明您的配置文件是使用签名身份 A 创建的。首先,确认您的配置文件仅选择了身份 A 的证书。从技术上讲,一个配置文件可以对多个证书有效。

如果您确认您的个人资料没有与用于签署身份的证书相关联,这意味着如果您使用身份 B 签署了应用程序,则该个人资料应该无效,另一个可能的原因是您已经安装了该应用程序(或其他一些应用程序)使用配置文件和签名身份 A。如果是这种情况,则设备上有一个有效的配置文件,表明您的应用程序应该被允许运行。我在this post 中发布了有关与应用程序打包的配置文件可能无效/过期等情况的更多详细信息,但应用程序仍将在设备上运行。

如果您希望使用代码签名/配置文件来阻止应用成功安装,那么您的配置文件中应该有一个专用的、明确的捆绑 ID,以及一个专门用于该应用 ID 的证书。然后,当您需要阻止应用程序在设备上运行时,您可以使配置文件过期并撤销证书。

编辑:要检查这是否是由于现有的配置文件,打开 Xcode,转到Window->Devices 右键单击​​有问题的设备并选择“配置文件”,如下所示:

如果您想试用,可以从设备中删除所有配置文件并尝试重新安装。如果您真的只有一个配置文件被配置为接受签名身份 A,并且您使用签名身份 B 对二进制文件进行签名,那么它应该不起作用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-09
    • 2018-10-31
    • 1970-01-01
    • 2011-07-28
    • 2019-10-16
    • 1970-01-01
    相关资源
    最近更新 更多