转自:

https://hiraku.tw/2021/04/6428/

感谢原作者,如有侵权请评论联系删除文章

在升級到 Xcode 12 之後,有些人發現雖然 Xcode 允許安裝低版本的模擬器,但卻怎樣都無法新增該版本的模擬器裝置。詳細的文章內容可以參考這裡

實際上 Xcode 12 官方支援的最低版本為 iOS 11.4 的模擬器,如果沒有特別需求的話,我們從 Xcode 安裝 11.4 的模擬器就可以正常使用了。

但,若我因為某些原因,就是想安裝 11.3,甚至更低版本的 10.3.1 模擬器,該怎麼辦呢?

這時候就要用神奇的修改方式來繞過檢查啦~

首先,透過逆向工程得知,/Library/Developer/PrivateFrameworks/CoreSimulator.framework/Versions/A/CoreSimulator 是實際上在設定模擬器 runtime 版本上限的 Framework。根據偷看的結果,發現裡面寫死了一個 map,裡面包含各個版本對應的 macOS 系統上限。在這邊有兩個作法繞過,第一個就是直接 hook 或修改 binary,使得 Framework 不檢查版本限制,但這樣太麻煩了,我們用簡單一點的方法:把 runtime 改到不在限制列表當中即可。

具體作法很簡單,關閉模擬器跟 Xcode,然後舉例來說我要強制執行 10.3 模擬器,就編輯 /Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 10.3.simruntime/Contents/Info.plist,把 CFBundleIdentifier 從 com.apple.CoreSimulator.SimRuntime.iOS-10-3 改成 com.apple.CoreSimulator.SimRuntime.iOS-10-3-1,透過後面加一個 -1 的方式,把讓版本限制檢查的函數找不到該 bundle name,然後再打開 Xcode 就可以加入了!

PS: 此方法最低可正常 debug 版本經測試為 iOS 10.x(我只測試 10.3),iOS 9.3 雖然可以執行模擬器,但是無法掛載 App 以及進行 debug。iOS 8 模擬器則是會直接造成電腦 kernal panic 重開機。

Xcode 12.x下载了iOS10.x模拟器无法创建对应Device问题修复的更多相关文章

  1. Apple Xcode 12.5 (12E262) 正式版发布 - 构建 Universal App

    请访问原文链接:https://sysin.org/article/apple-xcode-12/,查看最新版.转载请保留出处. Xcode 12 简介 Xcode 12 采用全新设计,在 macOS ...

  2. Quartus II 12.0 下载、安装和破解

    转载:http://www.cnblogs.com/imapla/archive/2012/09/10/2678814.html 20130417 Quartus II 12.0 不支持波形仿真,推荐 ...

  3. Xcode版本太低引发的bug,xcode各种版本下载方式详解

    问题描述: mac系统10.9.5 .之前用的xcode 是5.1.接sdk时,一直报错,编译不过去.最后发现原因是xcode版本太低导致的. 于是去网上找xcode历史版本下载.因为系统版本原因,我 ...

  4. TortoiseGit2.12.0-64下载和安装【Windows10】

    TortoiseGit2.12.0-64下载和安装[Windows10] 下载 下载地址:https://tortoisegit.org/download/ 找到合适自己版本的点击后会自动下载 安装 ...

  5. Xcode全系列下载地址

    Xcode全系列下载地址,不断更新dmg 格式 下载链接:http://pan.baidu.com/s/1mgyxLP2

  6. [Mac]Mac Xcode 删除已经下载好的模拟器版本

    Delete simulator refences for xCode: Delete the particular simulator runtime references (*.simruntim ...

  7. Xcode iOS9.3 配置包 iOS10.0 配置包 iOS10.2 配置包 could not find developer disk image

    在Finder状态下前往目录.快捷键:shift+command+G,填写路径/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS ...

  8. Xcode 各个版本下载地址

    从Xcode8开始不支持uiautomation了,需要下载老版本的xcode Xcode 的各种版本的下载地址  https://developer.apple.com/download/more/

  9. iOS开发之用Xcode 在真机上截屏与模拟器截屏

    一.真机截屏 1.打开Xcode 6 2.在xcode 选择模拟器或者真机设备的地方选中你的真机 3.Debug-->View Debugging-->Take Screenshot of ...

  10. 我超级推荐的Navicat Premium 12的下载,破解方法

    今天给大家推荐一款炒鸡好用的数据库管理工具,使用它,可以很方便的连接各种主流数据库软件----Navicat Premium 12 但是,它是要钱的,不过我们可以使用破解机来破解它,步骤稍有些复杂,简 ...

随机推荐

  1. 学习Java Day24

    今天明白了 一.面向对象(面向过程) 1. 面向对象 找对象(封装了过程)来干. 例如:洗衣服(洗衣机就是对象). 2. 面向对象思想特点 是一种更符合我们思想习惯的思想. 可以将复杂的事情简单化.  ...

  2. mingw + cmake + vscode

    .vscode settings.json {     "cmake.generator": "MinGW Makefiles" } cmake-kits.js ...

  3. SpringBoot整合Mybatis、SpringBoot整合Spring Data JPA

    Springboot Mybatis <?xml version="1.0" encoding="UTF-8"?> <project xmln ...

  4. 文盘Rust -- 本地库引发的依赖冲突

    作者:京东科技 贾世闻 问题描述 clickhouse 的原生 rust 客户端目前比较好的有两个clickhouse-rs 和 clickhouse.rs .clickhouse-rs 是 tcp ...

  5. 使用命名行指令去运行和打包.net6项目

    如何使用命名行指令去运行和打包.net6项目 前言 之前发布了一个.net webApi入门项目,项目文章,在文章中我推荐的是Docker部署,只说明了如何打包,但是没有说怎么运行,考虑到很多人写代码 ...

  6. JZOJ 1077. 【GDKOI2006】防御力量

    \(\text{Solution}\) 首先这个题目描述得不清不楚 反正做法是过 \(A\) 城引一条直线,算出直线两侧点数的 \(min\) 找到最优直线,即 \(min\) 最小的 那么重点在判断 ...

  7. 张量局部保留投影TensorLPP

    Tensor locality preserving projection for hyperspectral image classification 复现的代码python:https://git ...

  8. 关于xtr的一些基础

    Q&A 如何找到QSEQ方式的xtt呢? 我们可以去版本的代码中寻找,具体位置在:(modem_proc/rf/rftarget_denali/mtp/xtt/etc/QSEQ/) 在QSEQ ...

  9. Voletile-多线程小例子

    public class Test{ public static volatile int t = 0; //如果没有下面的全局锁标识,则结果不一定为10*1000 public static Str ...

  10. Linux环境使用Docker安装SqlServer2017

    系统环境: CentOS 7.6 64位(同样适用于Ubuntu) 安装步骤: 1.创建文件夹 /home/docker/sqlserver/mssql 2.下载镜像并用外部匿名卷挂载数据 $ doc ...