V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Gorvery
V2EX  ›  Xcode

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

  •  
  •   Gorvery · 3 天前 · 2356 次点击

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

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

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

    19 条回复    2024-11-25 09:45:00 +08:00
    pheyer
        1
    pheyer  
       3 天前
    有可能担心你手机掉了没办法调试了^_^
    feikaras
        2
    feikaras  
       3 天前 via iPhone
    去扩容呗。解决模拟器完了你还要解决其他事情。
    drymonfidelia
        3
    drymonfidelia  
       3 天前
    我之前也问过这个问题 /t/1084220
    不过我硬盘有 2TB ,只是单纯不想存苹果的屎
    Gorvery
        4
    Gorvery  
    OP
       3 天前
    @feikaras 有靠谱的扩容店铺吗?
    Gorvery
        5
    Gorvery  
    OP
       3 天前
    @drymonfidelia 后来你有找到什么解决方案吗
    Belmode
        6
    Belmode  
       3 天前
    干嘛不一次性到位呢,嘿嘿
    songray
        7
    songray  
       3 天前 via iPhone
    调试没办法,不过打包我都是用 docker-osx 这个项目,在服务器上 ci/cd 打包的。
    docker-osx 是一个 macos 容器项目,同时还支持真机调试。
    songray
        8
    songray  
       3 天前 via iPhone   ❤️ 1
    @songray 再提一嘴,没有 gpu 加速
    MacsedProtoss
        9
    MacsedProtoss  
       3 天前 via iPhone   ❤️ 1
    有没有一种可能 虽然它叫做 simruntime 但是里面有真机的 sdk
    so898
        10
    so898  
       3 天前
    simulator 和 runtime 的安装包是绑定的,你可以安装完了单独把 simulator 给全干掉,不过这样做也节约不了多少硬盘空间
    更进一步解决问题需要把 Runtime 带的 Framework 里面的 x86&arm64 simulator 对应的 arch 也给干掉
    不过上面只是理论上可行,建议可以弄个大硬盘,并从外置硬盘启动 MacOS
    BernieDu
        11
    BernieDu  
       3 天前
    不算模拟器吧,每个 iOS 版本都有不同的库来支持新特性,你在不同版本的手机编译的时候,就会从手机 copy Runtime 到你的电脑上。 比如 iOS17 的 tipkit 框架,17.4 的 Translation 框架,18 又有 swiftdata2 ,sfsymbol6 ,还有一些框架的小修补,不可能你手机升级就要升级 xcode 来支持吧(我印象中远古时代真的是这样。。),所以想减少这个文件大小就是少编译几个不同的 iOS 版本,比如固定版本的模拟器或者测试机
    iamqk
        12
    iamqk  
       3 天前   ❤️ 1
    像楼上说的 手机升级后会留下很多历史的硬件版本 可以删除节省空间 如果以前用了模拟器 也可以把模拟器全部删掉节省空间 在不行就外接 typecssd 把不经常用的资料导出去一些 扩容也是一条方案 我以前开发机 512 一般可以满足需求了
    lqw3030
        13
    lqw3030  
       2 天前
    “每次编译的时候,都是真机编译调试”这个不具备普遍性,开发工具需要尽量多的满足场景
    Gorvery
        14
    Gorvery  
    OP
       2 天前 via Android
    @lqw3030 真机调试可以满足基本上所有场景,但是反之不成立呀。除非是手头没有其他设备,为了不同设备之间的 ui 适配,不然一般在有真机的情况下优先选真机的。
    Gorvery
        15
    Gorvery  
    OP
       2 天前 via Android
    @Belmode 😂消费力比较弱,当时舍不得。现在如果再来一次我一定会选 1T 的
    Gorvery
        16
    Gorvery  
    OP
       2 天前 via Android
    @MacsedProtoss 那个不是设备支持文件吗?新的真机首次连接的时候,xcode 需要复制一个几个 G 的支持文件,我以为那个就是真机的库😂
    Gorvery
        17
    Gorvery  
    OP
       2 天前 via Android
    @so898 嗯嗯,这个是好办法,我已经买了一个三星的 ssd 移动硬盘了,好多不是经常访问的数据都丢进去了
    Gorvery
        18
    Gorvery  
    OP
       2 天前 via Android
    @BernieDu 你说的这个是不是每一个新机连接 Xcode 的时候需要复制的那个文件?好像是设备支持文件,这个也有好几个 G ,但跟 runtime 那个不是一个文件。。
    MacsedProtoss
        19
    MacsedProtoss  
       2 天前 via iPhone
    @Gorvery 那个新机连接产生的 device support 文件不影响你编译 影响你调试运行… 在你从来没插入过物理机的时候你只要有 simruntime 就可以编译出包并且这个包可以在物理机器上跑
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5480 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 07:38 · PVG 15:38 · LAX 23:38 · JFK 02:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.