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

为什么只有 M 芯片的 Macbook 才兼容部分 iPad , iOS App?

  •  
  •   4ever911 · 2023-11-30 13:54:53 +08:00 · 4386 次点击
    这是一个创建于 384 天前的主题,其中的信息可能已经有所发展或是发生改变。

    理论上, 不管是 Intel 还是 M 芯片的 Macbook 都可以用来开发 iOS 或者 iPad App ,模拟器里面可以直接运行编译好的程序,对 Mac 芯片并没有过多要求,

    但是为什么 App Store 里面,只有 M 芯片的 Macbook 才显示部分兼容的 iPhone ,iPad app ?

    33 条回复    2023-12-04 10:20:28 +08:00
    murmur
        1
    murmur  
       2023-11-30 13:57:25 +08:00
    intel 要是兼容你会买 m1 么,仿真器那垃圾玩意连摄像头都没模拟的,除了能证明点亮基本测不出啥来
    4ever911
        2
    4ever911  
    OP
       2023-11-30 13:57:55 +08:00
    我理解实际是能跑的,只是模拟器或者转译器翻译的成本,效率性能不够的考虑?
    但是不少程序,尤其非游戏,webkit 内核或者网页程序,并不会有太大性能差异吧?
    mxT52CRuqR6o5
        3
    mxT52CRuqR6o5  
       2023-11-30 14:00:25 +08:00
    Intel 的 M 芯片用 Xcode 开发 ios app 时,模拟器是 x86 的 ios 模拟器,运行的是 x86 的 ipa
    vcn8yjOogEL
        4
    vcn8yjOogEL  
       2023-11-30 14:00:26 +08:00 via Android
    厨子都准备淘汰 Intel Mac 了, 哪还会给它们做新功能
    light000
        5
    light000  
       2023-11-30 14:01:11 +08:00
    架构问题吧,intel 是 x86 的架构,M 系列的芯片和手机 A 系列芯片是 ARM 架构的。
    hguandl
        6
    hguandl  
       2023-11-30 14:01:16 +08:00
    Intel 平台上的 Xcode 是把 iOS 应用代码编译成 x86 然后再运行的,而 App Store 是只提交 ARM 的。
    dzdh
        7
    dzdh  
       2023-11-30 14:09:08 +08:00
    intel 花大半年甚至不止的时间搞个兼容芯片或者转译器,你用来跑 webkit ?那必须是能丝滑玩游戏才行,不然发不出来找骂吗
    mooyo
        8
    mooyo  
       2023-11-30 14:10:48 +08:00
    本质在于,凭啥给你一个快淘汰的产品做 feature ,价值在哪?
    xuan_lengyue
        9
    xuan_lengyue  
       2023-11-30 14:24:59 +08:00
    因为 Intel 平台的 Xcode 里那个 iOS 模拟器里跑的其实是编译成 x86 的版本,但 App Store 里的 iOS 程序都是 ARM 的。
    ShadowPower
        10
    ShadowPower  
       2023-11-30 14:25:05 +08:00   ❤️ 1
    @dzdh Intel 在 10 年前就搞出来了,给 Android 用的……
    现在 Windows 平台的 Android 模拟器还在用,能丝滑玩游戏
    jacksonj297
        11
    jacksonj297  
       2023-11-30 14:31:33 +08:00 via iPhone
    @ShadowPower 现在苹果很多功能比如 vision pro 都只支持 M 芯片了,苹果那千万美元年薪的工程师给钉子户开发新功能不值得。
    @mooyo
    jacksonj297
        12
    jacksonj297  
       2023-11-30 14:34:46 +08:00 via iPhone
    开发了之后岂不是更多英特尔钉子户,M 芯片新款 Mac 还怎么卖。吃力不讨好的功能。苹果 iMessage 到现在都没开放给安卓。Windows iTunes 也很难用。
    Donaldo
        13
    Donaldo  
       2023-11-30 14:34:55 +08:00
    @murmur #1 会啊,功耗续航发热都不是一个级别的,Intel Mac 那风扇随便用一下就开始呼啸了。
    seanzxx
        14
    seanzxx  
       2023-11-30 14:36:19 +08:00
    因为 x86 的 Mac 做开发,运行的是 x86 版本的 iOS 应用,并不能运行 arm 版本的 iOS 应用。
    只有 M 系列 CPU 才能无缝运行 arm 版本的 iOS 应用。
    murmur
        15
    murmur  
       2023-11-30 14:39:48 +08:00   ❤️ 1
    @Donaldo

    楼主的问题是,ios 可以在 x86 开发,ios 很多库也支持 x86 仿真器,那为什么 ios 开发的应用不能在 x86 mac 上运行,不考虑上架阉割 x86 部分

    安卓的仿真器可是几乎全功能的,更别提第三方的仿真器了
    jsq2627
        16
    jsq2627  
       2023-11-30 17:01:14 +08:00 via iPhone   ❤️ 1
    商业策略问题。你猜这两年 mac 上原生 arm 生态成熟后,苹果后续会不会砍掉运行 ios app 的能力。
    DouHun
        17
    DouHun  
       2023-11-30 17:28:51 +08:00
    good morning ,wow amazing ,only apple can do !
    guo4224
        18
    guo4224  
       2023-11-30 19:17:00 +08:00 via iPhone
    直接放,别脱了
    ysc3839
        19
    ysc3839  
       2023-11-30 19:22:12 +08:00 via Android
    iOS 模拟器并没有跨架构模拟能力,在 Intel Mac 上就是 x86 版本。
    IslandOwnerHuang
        20
    IslandOwnerHuang  
       2023-12-01 00:20:23 +08:00
    但是我没记错的话 macOS 10.15 的时候苹果出过一个套件叫“macOS catalyst”,用这个套件可以直接移植 iOS ,iPadOS 上的软件啊,为啥这个现在也不再宣传了呢?
    bao3
        21
    bao3  
       2023-12-01 01:30:07 +08:00
    其实我想了想,你想问的是,能不能在 X86 上模拟出一个跑 iPadOS 的环境。应该是不行。
    FreshOldMan
        22
    FreshOldMan  
       2023-12-01 09:39:46 +08:00
    现在 intel 芯片机器越来越少了,再弄就没有意义了
    seanzxx
        23
    seanzxx  
       2023-12-01 10:35:31 +08:00
    @IslandOwnerHuang 那玩意移植的应用,感觉不太行。 比如 nPlayer ,还有 Jira Cloud for Mac ,这玩意当年还是大力宣传的应用,我还挺期待的,但上手以后发现是个垃圾,连复制粘贴都有问题,后来再看,己经停止开发了。
    LUO12826
        24
    LUO12826  
       2023-12-01 14:42:14 +08:00
    感觉上面很多理由并不充分。Intel 机器上跑的模拟器确实跑的是 x86 架构的 iOS App 。或者更准确的说那就是一个 macOS App ,你可以在活动监视器里见到它并把它强制关掉。虽然 App store 里给 iOS 设备的 App 确实都是 arm 架构的,但苹果真要推这个功能的话,大可以允许商店上架 x86 版本的 App (类似于,Android 也有 x86 版本,能下载到 x86 版的 App )。所以主要还是商业策略的问题。苹果大力统一多个平台时候,m1 已经在酝酿中了,给即将放弃的 x86 平台加这种功能不划算。
    IslandOwnerHuang
        25
    IslandOwnerHuang  
       2023-12-02 03:06:19 +08:00
    @seanzxx 是啊,intel 的 Mac 就被无情的抛弃了。但是我已经买不起新 Mac 了,一台两万块的电脑才用了两年就被抛弃了,实在是很难让人接受……
    saki22oimo
        26
    saki22oimo  
       2023-12-03 14:16:32 +08:00
    赚钱
    flyqie
        27
    flyqie  
       2023-12-03 15:51:50 +08:00
    请注意,你在 Xcode 里面跑的是 Simulator 而不是 Emulator 。

    如果你想在 x86 下跑 appstore 拉下来的 IPA ,目前的方案并不完善。

    主流实现方向与 aosp 下的 libhoudini 是一致的,arm 指令用 unicorn 等方式来跑,其他操作调 native 。

    corellium 的方案理论上也是可以的,但是在 x86 跑的话性能堪忧,而且`Due to a lack of GPU (Metal) support, certain applications are not able to launch. This includes the native Maps, Watch, and Find My Friends apps.`.
    flyqie
        28
    flyqie  
       2023-12-03 15:57:01 +08:00
    @flyqie #27

    apple 做的很多事情都说明了它并不打算留任何口子给移动设备(未来也可能包括桌面设备 Mac)。

    纯商业结果,技术不是最大问题。。
    flyqie
        29
    flyqie  
       2023-12-03 15:59:57 +08:00
    @flyqie #27

    对了,哪怕像 libhoudini 这样做,也需要把 IPA 进行一部分处理才能运行,似乎不太可能实现 IPA 直接装上或者解压就能用的体验。
    flyqie
        30
    flyqie  
       2023-12-03 16:01:28 +08:00
    @flyqie #29

    主要原因还是 Xcode 里的是 Simulator 而不是 Emulator 。。。
    shiroyuri
        31
    shiroyuri  
       2023-12-03 18:27:34 +08:00
    CPU 架构不一样,指令集不一样,移动端的 U 很多都是 ARM 架构设计的
    nuevepicos
        32
    nuevepicos  
       2023-12-04 03:02:07 +08:00
    这得要求苹果开发一个 反向的 Rosetta2 才行吧……但对于苹果来说,无利可图,为啥要开发?


    Intel Mac 退役日期已经确定了,没有增加新功能的必要了。
    huoshanhui
        33
    huoshanhui  
       2023-12-04 10:20:28 +08:00
    换个思路。如果 App Store 支持 x86 架构的 App 上架。然后手机都不能用这个 x86 版本,剩下只能是 mac 能用。
    那这么一绕,不就还是 mac 软件嘛。

    毕竟是先有手机架构再考虑其他的。iPhone 只有 arm 。Mac 的目的是向 iPhone 兼容,不是 iPhone 向 Mac 兼容。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3500 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 04:53 · PVG 12:53 · LAX 20:53 · JFK 23:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.