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