iOS问题记录 - Xcode 14安装低版本iOS模拟器(持续更新)

这篇具有很好参考价值的文章主要介绍了iOS问题记录 - Xcode 14安装低版本iOS模拟器(持续更新)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

最近客服跟我反馈说,有一个用户打开老项目的iOS App闪退,我回顾了下这项目上次发布改了啥,发现就改了一些文本和链接,这就很奇怪。到后台查了下这个用户的设备信息和应用版本,用的是手机型号是iPhone X,系统版本是iOS 11.2,以及最新版的应用。

很长时间都忙着Flutter开发,这个项目确实没什么大改动的,最近最大的变化就是升级了Xcode 14,用关键词"Xcode 14 闪退"搜索,果然不是只有我遇到了这个问题。Xcode 14打出来的包在低版本系统运行时会崩溃,报错信息是Library not loaded: /usr/lib/swift/libswiftCoreGraphics.dylib,在苹果开发者论坛搜索报错信息,可以看到会闪退的最高版本是iOS 12.1。

苹果员工回复截图:

xcode ios模拟器,问题记录,iOS,xcode,ios

那么这篇文章要讨论的问题来了,上述报错的解决方案网上一搜一大堆,但是手头却没有这么低系统版本的真机或模拟器来测试。真机刷低版本系统是不可行的,苹果早就关闭了这么低版本的刷机验证,模拟器目前Xcode 14能下载的最低版本是iOS 12.4,真是巧妇难为无米之炊。不得不说,果子的做法我是举双手赞成的,是个开发者都不想兼容那么多老版本,对吧?但是买了手机后从不升级系统的大有人在,就问你能怎么办?

2022/12/10更新:Xcode 14.1版本已经修复了这个崩溃问题(Library not loaded: /usr/lib/swift/libswiftCoreGraphics.dylib),自测通过Xcode 14.1打包的应用在iOS 12.0上正常运行不崩溃。如果你正准备处理这个问题则可以通过升级Xcode版本解决,对于已经处理过的可以移除之前的处理方法。具体请看苹果开发者论坛或苹果员工新回复截图。

苹果员工新回复截图:

xcode ios模拟器,问题记录,iOS,xcode,ios

开发环境

  • macOS: 12.6
  • Xcode: 14.0.1

问题描述

Xcode 14无法安装低版本iOS模拟器,目前只支持iOS 12.4及以上。

问题分析

选一个Xcode 14目前能下的模拟器安装,你就会发现下载安装后的模拟器是放在这个路径的/Library/Developer/CoreSimulator/Profiles/Runtimes,是.simruntime后缀的文件。那么我们找到低版本的模拟器文件放在这文件夹是不是就能实现安装低版本iOS模拟器了?

现在首先要找到iOS 11或iOS 12甚至更老的iOS 10的模拟器文件,我网上找了找并没有发现好的下载源(当然可能是我偷懒了没细找),这东西就连苹果开发者官方下载(需要登录)都是不提供的。那看来得换种方式下载,我们都知道(假装你也知道)Xcode升级后会逐渐移除老版本的模拟器,那我们装一个老版本的Xcode不就可以通过正常途径下载低版本的模拟器文件。

Xcode版本和iOS版本名称大概差2,所以如果想要下载iOS 11.2模拟器,那大概要装一个Xcode 9.4.1。至于为什么不是9.0,那是因为我试过,9.0版本能下载的最高版本是iOS 10.3.1,9.4.1版本能下载的最高版本是iOS 11.3,还得是实践出真知。Xcode历史版本苹果官方提供下载,速度还是可以的,直接从苹果开发者官方下载(需要登录)搜索下载一个Xcode 9.4.1就好了,不过下载完成的xip文件解压后安装会提示不兼容:

xcode ios模拟器,问题记录,iOS,xcode,ios

这可麻烦了,总不能去装个低版本的macOS吧。还好我家底殷实(并没有),翻箱倒柜找到了一个六七年前买的mac mini,还好还没二手出掉,装的还是macOS 10.13.6,这不巧了嘛,隔空投送安装包过去安装,完美运行!Xcode 9.4.1能装下面这些版本的iOS模拟器:

xcode ios模拟器,问题记录,iOS,xcode,ios

先下载安装一个iOS 11.2模拟器,安装完成后找到/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 11.2.simruntime文件隔空投送到开发用的电脑上,同时放到相同的位置。打开Xcode可以看到iOS 11.2确实出现了,但是创建模拟器的时候却无法选择,这是怎么回事呢?

xcode ios模拟器,问题记录,iOS,xcode,ios

xcode ios模拟器,问题记录,iOS,xcode,ios

原来苹果还留了一手,在其他地方限制了版本,具体详情请看这篇文章在Xcode 12執行低版本的iOS模擬器。按这篇文章写的方法,修改Info.plist文件中的CFBundleIdentifier属性值(建议复制一份修改后再复制回去),重新打开Xcode后,已经能正常创建iOS 11.2的模拟器啦🎉!

xcode ios模拟器,问题记录,iOS,xcode,ios

可是问题到这真的解决了吗?实测iOS 11.2的模拟器创建以后能正常跑起来,但是进到系统以后界面是卡死的,无法进行任何操作,更谈不上调试应用了。这应该又是受到限制了,既然iOS 11.2不行,那继续尝试iOS 11.4,结果还是不行,看来只能下载安装Xcode 10.1试试iOS 12版本的模拟器。Xcode 10.1版本能下载的最高版本是iOS 12.0,如果iOS 12.0还不行,Xcode版本再升就要升级macOS了😣。

最终实测iOS 12.0模拟器能正常运行和调试,由此推测iOS 12.0后续的小版本应该也是支持的。

2023/01/07更新:注意,Xcode 14目前最低只能正常安装使用iOS 12.0版本的模拟器,iOS 11相关版本的模拟器虽然能安装但是无法正常使用。

解决方案

1. 模拟器文件

目前已上传的模拟器文件:

最后更新日期:2024/01/18

  • iOS 10.3
  • iOS 11.4
  • iOS 12.0 / iOS 12.4
  • iOS 13.0 / iOS 13.4 / iOS 13.5 / iOS 13.6 / iOS 13.7
  • iOS 14.0 / iOS 14.5
  • iOS 15.0 / iOS 15.5
  • iOS 16.0 / iOS 16.4
  • iOS 17.0 / iOS 17.2

2023/10/12更新:从Xcode 15开始不再自带iOS模拟器,需要手动安装。不过,iOS模拟器经常下载失败,还没有断点续传,每次失败都要重新开始,为了方便大家,新增iOS 17.0模拟器文件下载。当然,你也可以通过官方网站下载,需要登录的同时下载也还算稳定。从官方网站下载的是.dmg文件,可以通过执行命令安装或手动打开文件将里面的xxx.simruntime文件复制到/Library/Developer/CoreSimulator/Profiles/Runtimes/目录下。

2024/01/18更新:iOS 17.0模拟器文件已替换为iOS 17.0.1,同时新增iOS 17.2模拟器文件下载。

如果某个版本有补丁版本,那上传的模拟器文件是这个版本的最后一个补丁版本。例如iOS 14.0模拟器文件实际是iOS 14.0.1版本,这不是我特意改的名称,而是原版文件名称就是如此。在Xcode可供下载的模拟器列表中显示的是iOS 14.0.1版本,实际下载下来的文件名称是iOS 14,像这种有补丁版本的,能下载的都是最后一个补丁版本。

注意:为了绕开Xcode限制,iOS 10.3/11.4/12.0这三个版本的模拟器文件已经修改了Info.plist文件中的CFBundleIdentifier属性值,在原有值的后面加上了"-1",无需再修改。其他后面更新的都是原版未修改文件,如果随着Xcode的升级不再支持这些版本,请手动修改Info.plist文件中的CFBundleIdentifier属性值,从而绕过Xcode限制。

2. 分享链接

  • 百度网盘

如果有其他版本需要或分享链接失效,欢迎留言告诉我。

你可能还需要这些(不确定什么时候过期失效):

  • 新用户免费领VIP会员3天(老用户只有30天有效期的500G空间):https://pan.baidu.com/comps/view/MV83MzlfODg2XzI0NTRfb25saW5l
  • 每天免费刮奖领超级会员:https://pan.baidu.com/component/view/840

3. 使用方法

下载后的文件解压后复制到/Library/Developer/CoreSimulator/Profiles/Runtimes/目录下。

注意:下载解压后建议先使用xattr -d com.apple.quarantine 模拟器文件路径命令删除文件扩展属性com.apple.quarantine,这能有效避免出现以下所列的第二个问题。

使用过程中可能会遇到以下问题(使用前必看):

  1. 不存在Profiles目录及Runtimes子目录

这是因为你没有用Xcode下载安装过其他版本的模拟器,解决方法很简单,手动创建Profiles目录及Runtimes子目录即可。

  1. 出现弹框提示[无法打开“iOS xx.x.simruntime”,因为无法验证开发者]或[“iOS xx.x.simruntime”已损坏,无法打开]

xcode ios模拟器,问题记录,iOS,xcode,ios

在[系统偏好设置] -> [安全性与隐私]出现提示[已阻止使用“iOS xx.x.simruntime”,因为来自身份不明的开发者]。从macOS 13开始,[系统偏好设置] 改为了[系统设置],[安全性与隐私]改为了[隐私与安全性]。

xcode ios模拟器,问题记录,iOS,xcode,ios

这时候点这个[仍要打开]是没有用的,要执行命令允许安装任何来源软件(需要输入密码):

sudo spctl --master-disable

为了安全起见,建议模拟器安装成功不弹框后,将允许[任何来源]改回[App Store"或"App Store和被认可的开发者]。

除了上面的方法,个人更推荐先尝试使用xattr -d com.apple.quarantine 模拟器文件路径命令删除文件扩展属性com.apple.quarantine,这个能有效避免安装受到限制。

查询文件扩展属性的命令是xattr 文件路径,删除文件全部扩展属性的命令是xattr -c 文件路径

  1. 出现弹框一直提示[正在验证“iOS xx.x.simruntime”]无法关闭

xcode ios模拟器,问题记录,iOS,xcode,ios

这个问题不用在意,电脑重启后会消失,就算是Xcode 14支持的模拟器版本我也遇到过这个问题。

  1. 创建模拟器设备后运行时找不到

会导致这个问题的原因有两个,请逐一排查解决:

  • 最低部署目标(Minimum Deployments)版本高于模拟器版本

xcode ios模拟器,问题记录,iOS,xcode,ios

请降低最低部署目标版本或使用更高的模拟器版本。

  • 只支持x86_64架构的模拟器被默认隐藏

如果你用的是M系列芯片的Mac,Xcode可能默认只显示了支持arm架构的模拟器。请按这个步骤[Xcode菜单栏] -> [Product] -> [Destination] -> [Destination Architectures] -> [Show Both]操作,显示全部iOS模拟器。

如果你的Xcode版本已经升至Xcode 15,遇到问题请先看这篇文章iOS问题记录 - Xcode 15安装低版本iOS模拟器(持续更新)。欢迎留言告诉我你遇到的问题,我会不断完善这篇文章,让更多人受益。

总结

为了解决这个问题,我下载了Xcode 9/9.4.1/10.1/12.5.1多个版本,一开始想着Xcode 12.5.1应该还可以下载iOS 11的模拟器,结果因为macOS系统的原因已经无法安装Xcode 12.5.1了。既然都已经装上Xcode 14,我猜你的系统版本应该也不低,不然也不会遇到这个问题。

最后

如果这篇文章对你有所帮助,点赞👍收藏🌟支持一下吧,谢谢~


本篇文章由@crasowas发布于CSDN。文章来源地址https://www.toymoban.com/news/detail-612844.html

到了这里,关于iOS问题记录 - Xcode 14安装低版本iOS模拟器(持续更新)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Xcode安装特定版本系统的模拟器(不支持断点下载所以总是下载失败)

    Xcode里下载太慢就算了,他不支持断点下载,一直一直一直下载失败,根本就装不上嘛!!! 添加模拟器 没有要的iOS版本则点击Download more 然而因为Xcode不支持断点下载,我在这就没成功下载过= = 所以我们找出下载地址,换个下载器(支持断点速度也快多了),用safari下都比

    2024年02月14日
    浏览(48)
  • mac使用Simulator打开IOS模拟器(不使用Xcode打开IOS模拟器)

    提示:打开模拟器的前提必须是安装了Xcode。 在mac电脑上有Xcode可以用来模拟不同类型的手机进行来解决ios兼容问题,这里记录一下不使用Xcode打开ios模拟器的方法 快捷键:command+空格。搜索simulator,第一个就是模拟器 使用以下命令打开模拟器 结果如下图

    2024年02月15日
    浏览(54)
  • xcode15下载ios17模拟器失败

    升级到xcode15后需要安装ios17模拟器 但是在下载过程中会遇到报错 如下图这种 网上搜索了一下发现有人遇到过无法下载的问题,并且在apple官网也有人提出类似问题 https://developer.apple.com/forums/thread/737648 解决方案就是从https://developer.apple.com/download/all/下载ios模拟器到本地 然后执

    2024年02月07日
    浏览(71)
  • Xcode 离线使用命令行手动添加 iOS / watchOS 模拟器 Xcode install Simulator from the command line

    在 Xcode 中可以使用 Settings - Platforms 来下载和管理各种设备的模拟器。 不过在很多时候,因为网络或者其他原因需要手动下载模拟器的 dmg 文件并且手动添加模拟器,可以使用如下命令来手动添加。 1. 去 Apple Developer 下载相应设备的 Xcode 和模拟器文件,这里以 Xcode 15.0 和 

    2024年02月05日
    浏览(50)
  • 解决 Xcode 无法启动模拟器问题

    当使用 Flutter 运行应用程序时,有时会遇到 Xcode 无法启动模拟器的问题。这可能是由于不同的原因导致的,包括模拟器损坏、Xcode 配置问题或者其他因素。下面是一些可能的解决方法,帮助您解决这个问题。 检查 Xcode 和模拟器版本 确保您的 Xcode 和模拟器版本是最新的。打

    2024年02月04日
    浏览(53)
  • (flutter)黑苹果系统 Xcode iOS flutter 跑通真机模拟器 此oc clover 彼oc swift

    前段时间写了关于flutter的一系列基础知识和入门的一些坑,中间把ios端的项目编译部署等工作一带而过,这里我觉得还是有必要专门写一篇文章来讲讲这个,顺便把环境问题也一起说了。 我们都知道开发ios应用需要用到苹果电脑,即使flutter也不例外,flutter编译构建需要Xc

    2024年02月07日
    浏览(61)
  • Xcode 15 运行<iOS 14, 启动崩溃问题

    如题. Xcode 15 启动 iOS 14(没具体验证过, 我的问题设备是iOS 13.7)真机设备 出现启动崩溃 解决方案:

    2024年02月08日
    浏览(59)
  • iOS-bug Xcode 14.3版本运行项目报错File not found: /Applications/Xcode.app/Contents/Developer/...

    Xcode14.3 File not found: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeD..... Xcode15: SDK does not contain \\\'libarclite\\\' at the path \\\'/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/liba.... 1、下载arc目录解压后复制到指定目录路径: /Applications/Xcode.app/Contents/Developer/Toolchains

    2024年02月12日
    浏览(42)
  • 使用Xcode 14.3 打包,在iOS13 系统上闪退问题

    Date/Time:           2023-04-21 16:49:28.3937 +0800 Launch Time:         2023-04-21 16:49:27.7110 +0800 OS Version:          iPhone OS 13.4.1 (17E262) Release Type:        User Baseband Version:    1.05.28 Report Version:      104 Exception Type:  EXC_CRASH (SIGABRT) Exception Codes: 0x0000000000000000, 0x0000000000000000 Exception No

    2024年02月06日
    浏览(67)
  • uniapp 安装安卓、IOS模拟器并调试

    一、安装Android模拟器并调试 1.下载并安装Android Studio。 2.创建简单project。 3.安装模拟器。  完成安卓模拟器的安装。 4.启动模拟器。 5.hbuilderx选择模拟器、运行。 点击刷新按钮后出现模拟器,勾选并运行。 6.调试。 在  HBuilderX  中,项目启动后,在下方的控制台选择  deb

    2024年04月25日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包