Xcode模拟器设置及列表清理工具

2,910 阅读1分钟

起因:

1、在运行app的时候发现模拟器列表很长,选择不方便,而且很多模拟器从来没用过,以后也不大可能用到。
2、可以手动设置不显示在列表里,但是由于模拟器太多,设置比较麻烦。
3、加上模拟器还可以支持一些特殊设置,如边框颜色、支持全屏模式等
4、不能用的模拟器需要清理
我就想把这些操作写成一个命令行工具,以方便使用。

主要原理是通过defaults exportdefaults import来实现的,就是偏好设置的导出和导入。
先导出,然后修改,再导入就行了。

主要步骤如下:

导出模拟器配置

defaults export com.apple.iphonesimulator

对模拟器进行设置

        // 显示单点触摸圆点
        simulatorPlistInfo[@"ShowSingleTouches"] = @(1);
        // 允许全屏显示模式
        simulatorPlistInfo[@"AllowFullscreenMode"] = @(1);

        // 设置模拟器边框颜色
        NSMutableDictionary<NSString *,NSMutableDictionary<NSString *, NSString *> *> *devicePreferences = simulatorPlistInfo[@"DevicePreferences"];
        [devicePreferences enumerateKeysAndObjectsUsingBlock:^(NSString *key, NSMutableDictionary<NSString *,NSString *> *obj, BOOL *stop) {
            obj[@"ChromeTint"] = @"#53d4a2"; //simulator color
        }];

导入修改过的模拟器配置

defaults import com.apple.iphonesimulator

导出Xcode配置

defaults export com.apple.dt.Xcode

删除不可用的模拟器

xcrun simctl delete unavailable

获取模拟器列表,两种方法都行

xcrun simctl list -j
xcrun xcdevice list

获取要修改的,不显示为运行目标的数组,进行修改

        NSMutableArray *ignoreDeviceIdArray = plistInfo[@"DVTIgnoredDevices"];

把修改后的Xcode配置导入

defaults import com.apple.dt.Xcode

源码地址在

github.com/dacaiguoguo…