转自:

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. SQL性能优化的47个小技巧,你了解多少?

    大家好,我是哪吒. 1.先了解MySQL的执行过程 了解了MySQL的执行过程,我们才知道如何进行sql优化. 客户端发送一条查询语句到服务器: 服务器先查询缓存,如果命中缓存,则立即返回存储在缓存中 ...

  2. Postgresql 除法保留小数位

    一.示例 select 8/(100-3) as c1,  round(8/(100-3) ,4) as c2,  round(8/(100-3)::numeric ,4) as c3,  8/(10 ...

  3. PG统计信息和系统表

    一.PG统计信息概述 pg的统计信息主要分为两种: 第一类统计信息是是负载指标"统计信息"(Monitoring stats),通过stat collector进程进行实时采集更新 ...

  4. Java第三讲动手动脑

    1 以上代码无法通过编译主要是由于在Foo类中自定义了有参的构造函数,系统不在提供默认的构造函数(无参),而在上述的引用中并没有提供参数导致无法通过编译. 2. 运行结果 由运行结果分析可知,在运行时 ...

  5. Abp返回时间格式化

    private void ConfigureDateTime() { Configure<MvcNewtonsoftJsonOptions>(options => { options ...

  6. linux常用操作指令记录

    https://maker.pro/linux/tutorial/basic-linux-commands-for-beginners ## 打开终端 ## **Ctrl+Alt+T** ## ls ...

  7. 自我生啃 AMBA AXI 总线笔记

    视频1:https://www.youtube.com/watch?v=1zw1HBsjDH8&list=PLkqJVNOiuuHtNrVaNK4O1BSgczja4obeW (What is ...

  8. 设备树编译链接报错arch/arm/boot/dts/imx50.dtsi:16:42: fatal error: dt-bindings/

    1.vim scripts/Makefile.lib, add 3 lines into dtc_cpp_flags dtc_cpp_flags  = -Wp,-MD,$(depfile).pre.t ...

  9. 打卡ts day02--使用typescript 写评论demo

    demo.ts // DataHelpler 类 用于操作localStorage class DataHelpler { dataKey: string; //localstorage key pr ...

  10. node、mongodb、服务器相关

    1.CentOs搭建NodeJs服务器-Mongodb安装 2.如何将 node+mongodb 项目部署在服务器上 3.如何通过cmd开一个本地服务器 4.如何部署一个本地的web项目到服务器-搭建 ...