我的应用使用了定位服务。为了测试当模拟器在应用首次启动时询问是否允许访问位置服务时,用户选择“不允许”会发生什么,我需要重置模拟器。这是因为在开发过程中一开始就回答了允许,所以不再出现问题。
使用“重置内容和设置”重置模拟器并不能在启动时重新出现这个问题。我做错了什么?
我的应用使用了定位服务。为了测试当模拟器在应用首次启动时询问是否允许访问位置服务时,用户选择“不允许”会发生什么,我需要重置模拟器。这是因为在开发过程中一开始就回答了允许,所以不再出现问题。
使用“重置内容和设置”重置模拟器并不能在启动时重新出现这个问题。我做错了什么?
设备
> 抹掉所有内容和设置...
硬件
> 抹掉所有内容和设置...
模拟器
> 重置内容和设置...
(在模拟器的早期版本中,顶部菜单条目标签为“iOS Simulator”)
对于 iOS 11 及更新版本,您需要进入顶部系统菜单并选择:
"硬件" > "抹掉所有内容和设置..."
如果您正在使用Snow Leopard操作系统:
进入您的Mac系统偏好设置(不是模拟器的偏好设置), 选择“安全性与隐私”部分。 在“位置服务”前面,点击“重置警告”按钮, 这样就完成了设置。
如果您想在命令行中管理iOS模拟器,可以选择simctl
。
$ xcrun simctl erase all
会清除所有模拟器中的所有内容。
如需了解更多信息,可以阅读此来自XCBlog的博客:https://medium.com/xcblog/simctl-control-ios-simulators-from-command-line-78b9006a20dc
我试过在模拟器10.0上使用“擦除所有内容和设置”,但它没有起作用。对我有用的是,在模拟器10.0中,设置应用程序是内置的。您可以通过以下方式重置:
然后您的授权状态将被重置为.notDetermined。
这是一个很好用的工具。强大的 Fastlane 命令行工具(https://github.com/fastlane/snapshot)
snapshot reset_simulators
reset_simulators会移除所有的模拟器,仅为最新版本的iOS系统创建新的模拟器。如果您想要重新创建其他版本的模拟器,需要在--ios参数后面提供版本列表,例如:
snapshot reset_simulators --ios 8.3,8.4,9.0,9.1