从iOS模拟器中删除库存照片

时间:2016-05-09 12:14:06

标签: ios xcode ios-simulator appium

我有一个针对Android和iOS设备的移动测试套件。然而,为了拥有类似的Android和iOS环境,我希望删除模拟器创建的iOS设备中的库存照片。

有没有可靠的方法通过命令行从iOS模拟器中删除库存照片?以这种方式可以为测试套件的每次运行重复它?

1 个答案:

答案 0 :(得分:2)

所有模拟器照片数据都存储在path/to/[Simulator UDID]/data/Media/DCIM/path/to/[Simulator UDID]/data/Media/PhotoData/中。您可以编写一个脚本来获取要删除的所有模拟器UDID(或您自己的)。您可以使用xcrun simctl listinstruments -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。你的这种情况可能会有所不同。