我有一个针对Android和iOS设备的移动测试套件。然而,为了拥有类似的Android和iOS环境,我希望删除模拟器创建的iOS设备中的库存照片。
有没有可靠的方法通过命令行从iOS模拟器中删除库存照片?以这种方式可以为测试套件的每次运行重复它?
答案 0 :(得分:2)
所有模拟器照片数据都存储在path/to/[Simulator UDID]/data/Media/DCIM/
和path/to/[Simulator UDID]/data/Media/PhotoData/
中。您可以编写一个脚本来获取要删除的所有模拟器UDID(或您自己的)。您可以使用xcrun simctl list
或instruments -s devices
列出所有当前连接的设备UDID。
这是一个小红宝石脚本,应该符合您的需求:
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。你的这种情况可能会有所不同。