应用程序通过 MDM 分发时密钥链数据丢失

GBD*_*GBD 8 objective-c keychain mdm ios ios12

在我们的 iPad 应用程序中,用户必须输入他的详细信息进行注册。在用户输入他的详细信息后,我们将这些详细信息保存在设备的钥匙串中。

因此,下次用户启动应用程序时,用户无需再次注册即可使用该应用程序。由于我们将其保存在钥匙串中,因此即使通过删除重新安装应用程序也可以正常工作。

我们的一位客户使用他们的 MaaS360 MDM 将此应用程序分发给他们的用户。但是当用户通过 MDM 应用程序安装它并在第二天之后,钥匙串数据丢失并要求用户再次进行设备注册。

最初,我们认为这是由于他们包含的政策之一。但没有运气。有人可以告诉我这里发生了什么以及如何解决这个问题。

ARG*_*Geo 0

有两种可能的情况:

\n

第一个场景:

\n

这是MaaS360 MDM服务器的配置问题。请查看这些配置示例

\n

第二种情况:

\n

这不是MaaS360 MDM问题,而是问题certificate。您的客户在分发应用程序时可能会遇到类似的错误:

\n
"Could not find a valid private-key/certificate pair for this profile in your keychain."\n
Run Code Online (Sandbox Code Playgroud)\n

苹果文档对此有如下说明:

\n
\n

此错误消息表明您的 system\xe2\x80\x99s 钥匙串缺少用于签署应用程序的证书的公钥或私钥。当您尝试从与最初用于请求代码签名证书的系统不同的系统来签名和构建应用程序时,通常会发生这种情况。如果您的证书已过期或已被吊销,也可能会发生这种情况。确保您的 app\xe2\x80\x99s 配置文件包含有效的代码签名证书,并且您的 system\xe2\x80\x99s 钥匙串包含该证书、最初用于生成该证书的私钥以及 WWDR 中间证书。

\n
\n

请阅读代码签名说明以了解如何解决该问题

\n