在xcode IOS模拟器中启用密码锁

4

我正在使用IOS模拟器v6.0。

设备是iPhone(所有iPhone设备在我遇到问题时都表现相同)

IOS版本是6.1

我试图通过内置的Safari浏览器使用Web应用程序下载p12。

当下载完成后,用户会自动进入设置应用程序(我理解这是完成p12安装所必需的),但没有选项可以完成安装。我读到需要启用证书导入才能使用密码锁定。然而,我找不到如何在iPhone IOS模拟器中启用密码锁定。

我阅读的文档说该选项应在:“设置 -> 通用 -> 密码锁”中。

除了它没有。这是模拟器特定的限制吗?我能克服它吗?

1个回答

4

Neil,

正如您所指出的那样,iOS Simulator并不能完全准确地复制实际iOS设备中的操作环境 - 某些依赖于专用硬件(相机、陀螺仪、磁力计、硬件加密技术等)的交互类自然无法在模拟环境中支持。Simulator还禁止了看似只是“软件”的一些交互类别(如推送通知、iCloud等),原因有以下两点:

  1. 与物理设备不同,您无法为iOS Simulator配置预设文件(Provisioning Profiles)。由于Provisioning Profiles包括这些苹果服务的授权,因此目前(当前)没有方法让模拟器理解如何连接到您特定应用程序的这些服务部分。
  2. Simulator没有唯一的硬件标识符,因此来自您的模拟器的连接与任何其他开发者的模拟器上的连接没有区别。

最后,还有一些交互类别既不属于上述任何一个排除范畴,也只能归因于苹果公司的设计决策。例如,注销密码锁可以被注重安全性的iOS设备用户轻松启用...或者IT部门可以通过移动设备配置策略(通过ActiveSync、MDM服务器等)来强制执行。添加仅通用、非IT指定版本的密码锁将导致在模拟器内部功能上只有最通用的密码锁行为得到支持,而留下了使用MDM的用户。为了避免这种情况,苹果公司会给Simulator提供知识以支持.mobileconfiguration文件配置文件,连接并定期检查MDM服务器(从而需要唯一的硬件标识符),并最终在Simulator中包含Mail.app,以允许建立Exchange连接以执行ActiveSync管理配置。

如您所见,相对简单的功能很快就扩散成需要模拟的其他iOS元素的一系列问题。将其推向最不可能的极限案例,Simulator将成为一个完全的软件iPhone,在OS X上直接从iPhone形状的界面接收电话和短信、检查电子邮件等,尽管这些用户是他们的第三方开发者,但苹果公司不希望用户有这种体验。

虽然我们可以轻易地推断出某些交互类别被排除在模拟器之外的理由,但只有苹果公司才真正知道为什么他们选择排除模拟器之外的其他交互类别。

所以,回到您的问题:

这是模拟器特定的限制吗?

是的,在Xcode 4.6.2中,iOS Simulator目前不支持此功能。

我能克服它吗?

据我所知,目前没有办法。

我认为你提出的有关在模拟器中安装证书的问题,是可以解决的。事实上,大约两个月前,我安装了一个自签名证书机构到我的模拟器上,以进行一些安全测试。这在很大程度上是基于Charles web proxy开发人员的工作成果。

如果你下载他们的shell脚本,你就可以看到他们是如何将自签名证书注入到模拟器密钥库中的。假设你的最终目标是安装证书,你可能可以采用类似的过程来使用你自己的证书。

确保备份默认的密钥库;因为在那个文件中意外破坏二进制数据会导致你的模拟器无法进行所有SSL连接,这非常容易发生。

显然地,这不是iOS Simulator中的支持操作——要自行调整模拟器存在风险。

祝你好运,如果一切失败,请将你的应用推送到设备上,在那里你肯定可以安装证书。


1
直到今天我仍然看不到iOS模拟器中的密码设置过程 :( - Rohit Singh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接