【发布时间】:2016-09-04 01:49:29
【问题描述】:
我有一个针对 Android 和 iOS 设备的移动测试套件。但是,为了为 android 和 iOS 提供类似的环境,我希望删除模拟器创建的 iOS 设备中的库存照片。
是否有任何可靠的方法可以通过命令行从 iOS 模拟器中删除库存照片?是否可以在每次运行测试套件时重复它?
【问题讨论】:
标签: ios xcode ios-simulator appium
我有一个针对 Android 和 iOS 设备的移动测试套件。但是,为了为 android 和 iOS 提供类似的环境,我希望删除模拟器创建的 iOS 设备中的库存照片。
是否有任何可靠的方法可以通过命令行从 iOS 模拟器中删除库存照片?是否可以在每次运行测试套件时重复它?
【问题讨论】:
标签: ios xcode ios-simulator appium
所有模拟器照片数据都存储在path/to/[Simulator UDID]/data/Media/DCIM/ 和path/to/[Simulator UDID]/data/Media/PhotoData/ 中。您可以编写一个脚本来获取要删除的所有 Simulator UDID(或您自己的)照片。您可以使用xcrun simctl list 或instruments -s devices 列出所有当前连接的设备UDID。
这是一个适合您需要的小型 ruby 脚本:
simulatorList = []
# Get all of the simulator UUIDs from Xcode
rawSimulatorList = `xcrun simctl list`
rawSimulatorList.each_line do |line|
if line.start_with?(" ")
simulator = line.strip
# Ignore any simulators that aren't working
if !simulator.include?("unavailable")
# Extract the UUID
uuid = simulator.match(/\([A-Z0-9\-]+\)/)[0]
uuid = uuid.gsub("(","")
uuid = uuid.gsub(")","")
# Extract the device name
deviceName = simulator.split(' ')[0] + " " + simulator.split(' ')[1]
device = { "name" => deviceName, "uuid" => uuid }
simulatorList.push(device)
end
end
end
simulatorList.each do |simulator|
`rm -rf ~/Library/Developer/CoreSimulator/Devices/#{simulator['udid']}/data/Media/DCIM/`
`rm -rf ~/Library/Developer/CoreSimulator/Devices/#{simulator['udid']}/data/Media/PhotoData/`
end
Ruby 不是我的第一语言,这个脚本改编自 Ian Spence 的 reset.rb script。你的里程数可能会有所不同。
【讨论】:
udid 应该是uuid)。