【问题标题】:Remove stock photos from iOS simulator从 iOS 模拟器中删除库存照片
【发布时间】:2016-09-04 01:49:29
【问题描述】:

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

是否有任何可靠的方法可以通过命令行从 iOS 模拟器中删除库存照片?是否可以在每次运行测试套件时重复它?

【问题讨论】:

    标签: ios xcode ios-simulator appium


    【解决方案1】:

    所有模拟器照片数据都存储在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。你的里程数可能会有所不同。

    【讨论】:

    • 这似乎不起作用,至少不适用于 appium。 Appium 似乎在脚本删除照片后重置了设备。
    • @netbrain 不知道你在使用 Appium。将尝试为您找到其他解决方案。
    • 脚本中有一些拼写错误(udid 应该是uuid)。
    猜你喜欢
    • 2015-11-07
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 2011-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多