如何确定哪个设备& os版的模拟器?

时间:2014-11-07 10:34:35

标签: iphone ios-simulator finder

当我浏览器跟随时,我得到一堆序列号。

 cd ~/Library/Developer/CoreSimulator/Devices/

enter image description here

我确切知道哪个模拟器(例如带有iOS8.1的iPhone 5)已用于运行我的应用程序。但有时,我发现很难探索模拟器来检查文件目录和其他的东西。一切都是序列号。

是否可以轻松地探索模拟器,如下所示?

  • iOS 5的iPhone 5
  • 带iOS 8.1等的iPhone 6 Plus。

3 个答案:

答案 0 :(得分:1)

你可以运行xcrun simctl list来查看每个模拟器设备的UDID是什么,或者你可以直接从device.plist中取出它。

答案 1 :(得分:0)

以上是上述请求的shell脚本。

cd ~/Desktop
mkdir Simulators_Shortcuts
destination="`pwd`/Simulators_Shortcuts"
cd $destination
cd ~/Library/Developer/CoreSimulator/Devices/
for d in *; do
    if [ -d $d ] ; then
        cd $d;
        deviceName=`/usr/libexec/PlistBuddy -c "print :deviceType" device.plist | sed -e 's/com.apple.CoreSimulator.SimDeviceType.//g'`
        osName=`/usr/libexec/PlistBuddy -c "print :runtime" device.plist | sed -e 's/com.apple.CoreSimulator.SimRuntime.//g'`
        linkName="$deviceName-$osName"
        currentPath=`pwd`
        ln -s $currentPath "$destination/$linkName"
        cd ..
    fi
done

cd $destination

以下是输出文件夹的快照。

enter image description here

答案 2 :(得分:0)

这是一种使用Swift访问Simulator中运行的模拟器的tmp,文档或其他文件夹的简单方法。将它放在AppDelegate.swift didFinishLaunchWithOptions中,它将在控制台窗口中提供文件路径的输出。然后你可以复制并粘贴到Finder>去>转到文件夹...

    if UIDevice.currentDevice().model == "iPhone Simulator" || UIDevice.currentDevice().model == "iPad Simulator" {
        var locale:String = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask).description
        locale = (locale as NSString).substringFromIndex(8)
        locale = (locale as NSString).substringWithRange(NSRange(location: 0, length:(locale as NSString).length - 1))
        println("\n\n\(locale)\n\n")
    }

这是Xcode控制台窗口的示例输出:

/Users/brope001/Library/Developer/CoreSimulator/Devices/59E93965-6DEA-4A06-95EC-01FA155226D7/data/Containers/Data/Application/59115DEA-25C7-4400-8548-8A6ADD02E339/Documents/