Xcode 编译项目为什么一定要依赖模拟器?

100 天前
Gorvery  Gorvery

买的 macbook pro 只有 512G ,磁盘空间捉襟见肘。Xcode Simulator Runtime 就占了 20G 。

实际上我每次编译的时候,都是真机编译调试,这个模拟器 runtime 感觉用不上,但如果删掉真机也没办法编译了。

有大佬知道怎么才能删掉 runtime 还能保证真机编译正常使用吗?

3231 次点击
所在节点   Xcode  Xcode
19 条回复
pheyer
pheyer
100 天前
有可能担心你手机掉了没办法调试了^_^
feikaras
feikaras
100 天前
去扩容呗。解决模拟器完了你还要解决其他事情。
drymonfidelia
drymonfidelia
100 天前
我之前也问过这个问题 /t/1084220
不过我硬盘有 2TB ,只是单纯不想存苹果的屎
Gorvery
Gorvery
100 天前
@feikaras 有靠谱的扩容店铺吗?
Gorvery
Gorvery
100 天前
@drymonfidelia 后来你有找到什么解决方案吗
Belmode
Belmode
100 天前
干嘛不一次性到位呢,嘿嘿
songray
songray
100 天前
调试没办法,不过打包我都是用 docker-osx 这个项目,在服务器上 ci/cd 打包的。
docker-osx 是一个 macos 容器项目,同时还支持真机调试。
songray
songray
100 天前
@songray 再提一嘴,没有 gpu 加速
MacsedProtoss
MacsedProtoss
100 天前
有没有一种可能 虽然它叫做 simruntime 但是里面有真机的 sdk
so898
so898
100 天前
simulator 和 runtime 的安装包是绑定的,你可以安装完了单独把 simulator 给全干掉,不过这样做也节约不了多少硬盘空间
更进一步解决问题需要把 Runtime 带的 Framework 里面的 x86&arm64 simulator 对应的 arch 也给干掉
不过上面只是理论上可行,建议可以弄个大硬盘,并从外置硬盘启动 MacOS
BernieDu
BernieDu
100 天前
不算模拟器吧,每个 iOS 版本都有不同的库来支持新特性,你在不同版本的手机编译的时候,就会从手机 copy Runtime 到你的电脑上。 比如 iOS17 的 tipkit 框架,17.4 的 Translation 框架,18 又有 swiftdata2 ,sfsymbol6 ,还有一些框架的小修补,不可能你手机升级就要升级 xcode 来支持吧(我印象中远古时代真的是这样。。),所以想减少这个文件大小就是少编译几个不同的 iOS 版本,比如固定版本的模拟器或者测试机
iamqk
iamqk
99 天前
像楼上说的 手机升级后会留下很多历史的硬件版本 可以删除节省空间 如果以前用了模拟器 也可以把模拟器全部删掉节省空间 在不行就外接 typecssd 把不经常用的资料导出去一些 扩容也是一条方案 我以前开发机 512 一般可以满足需求了
lqw3030
lqw3030
98 天前
“每次编译的时候,都是真机编译调试”这个不具备普遍性,开发工具需要尽量多的满足场景
Gorvery
Gorvery
98 天前
@lqw3030 真机调试可以满足基本上所有场景,但是反之不成立呀。除非是手头没有其他设备,为了不同设备之间的 ui 适配,不然一般在有真机的情况下优先选真机的。
Gorvery
Gorvery
98 天前
@Belmode 😂消费力比较弱,当时舍不得。现在如果再来一次我一定会选 1T 的
Gorvery
Gorvery
98 天前
@MacsedProtoss 那个不是设备支持文件吗?新的真机首次连接的时候,xcode 需要复制一个几个 G 的支持文件,我以为那个就是真机的库😂
Gorvery
Gorvery
98 天前
@so898 嗯嗯,这个是好办法,我已经买了一个三星的 ssd 移动硬盘了,好多不是经常访问的数据都丢进去了
Gorvery
Gorvery
98 天前
@BernieDu 你说的这个是不是每一个新机连接 Xcode 的时候需要复制的那个文件?好像是设备支持文件,这个也有好几个 G ,但跟 runtime 那个不是一个文件。。
MacsedProtoss
MacsedProtoss
98 天前
@Gorvery 那个新机连接产生的 device support 文件不影响你编译 影响你调试运行… 在你从来没插入过物理机的时候你只要有 simruntime 就可以编译出包并且这个包可以在物理机器上跑

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1092012

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX