V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iOS 开发实用技术导航
NSHipster 中文版
http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
http://www.cocos2d-iphone.org/
CocoaPods
http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
http://code.google.com/mobile/analytics/
WWDC
https://developer.apple.com/wwdc/
Design Guides and Resources
https://developer.apple.com/design/
Transcripts of WWDC sessions
http://asciiwwdc.com
Cocoa with Love
http://cocoawithlove.com/
Cocoa Dev Central
http://cocoadevcentral.com/
NSHipster
http://nshipster.com/
Style Guides
Google Objective-C Style Guide
NYTimes Objective-C Style Guide
Useful Tools and Services
Charles Web Debugging Proxy
Smore
hwdq0012
V2EX  ›  iDev

ios 开发这么离谱的吗

  •  
  •   hwdq0012 ·
    nocanstillbb · 4 天前 · 8159 次点击

    我的 mac book 版本是 14.7.4 (23H420) Sonoma
    我安装了 xcode 16.2 , 想开发 ios 16.0 的版本(因为我的 iphone 是这个版本
    但是 xcode16.2 内置的 ios sdk 是 18.2
    于是我又下载了一个 xcode 14.0.1 (内置 ios sdk 16.0 ), 但是 Sonoma 不支持这个版本的 xocde
    我又把 xcode 14.0.1 内置 的 ios sdk 16.0 复制到 xcode 16.2 中, 还是不能使用 16.0 的 ios sdk

    ❯ xcrun --sdk ios --show-sdk-version
    2025-05-02 14:42:44.267 xcodebuild[40697:13592334] [MT] DVTSDK: Skipped SDK /Applications/Xcode16.2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS16.0.sdk; its version (16.0) is below required minimum (18.2) for the iphoneos platform.
    2025-05-02 14:42:44.430 xcodebuild[40697:13592334] Writing error result bundle to /var/folders/pr/vrpq9jvn4jgff8c5jmlm12mm0000gp/T/ResultBundle_2025-02-05_14-42-0044.xcresult
    xcodebuild: error: SDK "ios" cannot be located.
    2025-05-02 14:42:45.664 xcodebuild[40699:13592356] [MT] DVTSDK: Skipped SDK /Applications/Xcode16.2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS16.0.sdk; its version (16.0) is below required minimum (18.2) for the iphoneos platform.
    2025-05-02 14:42:45.837 xcodebuild[40699:13592356] Writing error result bundle to /var/folders/pr/vrpq9jvn4jgff8c5jmlm12mm0000gp/T/ResultBundle_2025-02-05_14-42-0045.xcresult
    xcodebuild: error: SDK "ios" cannot be located.
    xcrun: error: Failed to open property list '/Users/hbb/source/repos/rn/AwesomeProject/ios/SDKSettings.plist'
    2025-05-02 14:42:47.075 xcodebuild[40700:13592367] [MT] DVTSDK: Skipped SDK /Applications/Xcode16.2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS16.0.sdk; its version (16.0) is below required minimum (18.2) for the iphoneos platform.
    2025-05-02 14:42:47.241 xcodebuild[40700:13592367] Writing error result bundle to /var/folders/pr/vrpq9jvn4jgff8c5jmlm12mm0000gp/T/ResultBundle_2025-02-05_14-42-0047.xcresult
    xcodebuild: error: SDK "ios" cannot be located.
    xcrun: error: unable to lookup item 'SDKVersion' in SDK 'ios'
    
    

    各位佬都怎么设备 开发环境的,如果要支持旧环境的话, 不然要装旧的操作系统吧

    第 1 条附言  ·  4 天前
    防止其他 v 友看不仔细 我反复回复
    ============
    我的 xcode 是页面下载的,下载即有 ios 18.2 的 sdk
    我从 xcode 中创建了 16.0 的 simulator ,但在项目中选择不了, 只有下载了 18.2 的 simulator 才会显示 16.0 的 simulator

    所以假如没有没有其他问题的话
    要编译一个项目部署到旧版本的 simulator 中的步骤是

    + 下载最新的 xcode , 安装最新的 simulator
    + 查看 xcode 支持的最低的 sdk 版本,
    + 安装在这个范围内的 simulator 编译是仍然用的是最新版本的 sdk ,比如编译 ios 16.2 用的使用 ios 18.2sdk (内置)
    + 有 pod 依赖的话, 修改 Podfile, 改 platform :ios, 16.0 ,然后 pod install 安装依赖
    + 在 xcode 中设置 minimum deployment 版本为 16.0 ,build setting 里几个 deployement 相关的 ios sdk 版本也都设置 16.0 , 那个显示 18.2 灰色的不用改,不影响

    然后编译
    第 2 条附言  ·  3 天前

    android + ios sdk 选型 : react_native笔记

    100 条回复    2025-05-06 15:23:52 +08:00
    paopaosa
        1
    paopaosa  
       4 天前
    “设置”里组件选:“iOS 16.0 Simulator” 不行吗?
    MakHoCheung
        2
    MakHoCheung  
       4 天前   ❤️ 1
    你的操作也离谱。正确做法是在项目设置那设置 minimum deployments 为 16
    kekeabab
        3
    kekeabab  
       4 天前
    你在折腾什么,用 18 的 sdk 也一样能开发 ios16 啊
    salor
        4
    salor  
       4 天前 via iPhone
    但凡问了 AI 一句也不至于搞出这么多离谱无用功。
    hwdq0012
        5
    hwdq0012  
    OP
       4 天前
    @paopaosa
    @MakHoCheung 必然是操作过这个了
    @kekeabab
    @salor ai 不是万能的

    https://www.reddit.com/r/Xcode/comments/1gh366e/why_does_xcode_require_the_latest_update_to_run/

    不完装最新的模拟器,其他旧的模拟器不会显示出来
    kera0a
        6
    kera0a  
       4 天前 via iPhone
    @hwdq0012 别嘴硬,人家是没安装最新的模拟器,你是去安装旧的 Xcode 去开发 iOS16 ,完全两码事。

    解决办法只是改个配置值,楼上已经说了,你要嘴硬就继续折腾吧。
    hwdq0012
        7
    hwdq0012  
    OP
       4 天前
    @kera0a 我发现 ios 程序员怎么好像有一种天然的傲慢,我已经设置过 minimum deplymentments 为 16.0,也下载了 ios 模拟器 15.0 和 16.0 ,但是都选中不了,我才会试其他方式,直到刚才我下载了最新的模拟器才可以选中之前创建的旧的 device simulator

    承认吧,ios 开发环境就是烂
    Seanfuck
        8
    Seanfuck  
       4 天前
    模拟器?不都是直接用手机调试嘛
    hwdq0012
        9
    hwdq0012  
    OP
       4 天前
    @Seanfuck 模拟器有什么坑吗,还没入门,跟 react native 文档编译 aweomproject 测试环境,还没编译过
    macwenbo
        10
    macwenbo  
       4 天前
    @hwdq0012 有点。为了装 xcode 16 , 连 macos 都升到最新了。就怕出幺蛾子。
    hwdq0012
        11
    hwdq0012  
    OP
       4 天前
    @macwenbo macos 是之前为了跟着文档编译 chromium 升级的,我的系统是之前 m2 air 上备份过来的,也是比较旧了就升了
    qiaobeier
        12
    qiaobeier  
       4 天前
    @salor 没有基础知识,连怎么问 AI 都不会。我组里那个妹子用了 AI 后,质量没见提高,堆💩的速度倒是快了很多,我真是服了。
    feikaras
        13
    feikaras  
       4 天前
    @hwdq0012 我觉得人家没有任何义务给你手把手帮忙。有这个需求的人肯定有真机,不知道在折腾啥。而且设置一个 plist 的 key 值又不需要旧版 sdk 。
    salor
        14
    salor  
       4 天前 via iPhone
    @hwdq0012 Xcode 设置里就能下载老版 sdk ,插上真机 run 一下它也会给你下载手机对应版本的 sdk ,说了让你问 AI 你说 AI 不是万能的,那你哪怕用大白话去问过吗?
    自己把两分钟就能解决的问题折腾出几个钟头都解决不了。反过来自己起个吊炸天的标题开群嘲怪地球没引力某个开发群体傲慢。
    chiaf
        15
    chiaf  
       4 天前
    设置➡️component ,左下角➕选择 iOS 16 的 simulator (四个版本,0 ,1 ,2 ,4 )
    项目中的 minimum deployment 选择 iOS 16 (多个版本,自己挑选)
    chiaf
        16
    chiaf  
       4 天前
    @chiaf 有真机直接在真机运行,不需要安装相应版本的模拟器,安装最新的就行。

    只要 minimum deployment 不大于你手机系统的版本就行,不包括最后一位,比如 iOS 16.1.1 ,iOS 16.1.2 ,都属于 iOS 16.1
    hwdq0012
        17
    hwdq0012  
    OP
       4 天前
    @feikaras 他们也没给出建设性的建议呀,说话还难听

    @salor 你告诉我怎么问,我问了他让我下载 xcode 14.0.1 ,再复制 ios sdk ,这个就是问 ai 问出来的


    @chiaf simulator 已经下载了 16.0 的版本了,选中不了创建的 16.0 的仿真设备,得先下载最新的仿真器,否则一直显示#5 楼那个外链那个界面
    chiaf
        18
    chiaf  
       4 天前
    你点击那个地方,有弹窗,选择 manage run destinations ,这里面添加对应系统的模拟器

    hwdq0012
        19
    hwdq0012  
    OP
       4 天前
    @chiaf 创建过了,选中不了,直到安装了 18.3 的模拟器,一下全显示在下拉窗口中了,否则全不显示,你看看 5 楼那个外显,我和他一样的情况
    MacsedProtoss
        20
    MacsedProtoss  
       4 天前 via iPhone   ❤️ 2
    1.这就是为什么苹果可以做到让旧版本系统迅速退场,Xcode 是与 macOS 系统版本绑定的 虽然有办法高版本系统跨大版本运行旧的 Xcode ,但是会造成一些奇怪的问题
    2.现在安装特定版本模拟器的方法是去官网下载对应的 simulator 版本然后跑指令安装进去就完事了
    3.iOS simulator runtime 里面其实分为 sdk 和 simulator ,两个用处并不一样,sdk 用来编译的,你不装新的只装旧的的操作闻所未闻
    4.Xcode 有做过一些调整,你现在的操作只有旧版本 Xcode 能这么干
    5.手机是 16.0 的那还装啥模拟器,一般这么复杂的整模拟器就是因为老版本系统手机手里没有,但是线上又出了问题需要排查
    6.实际上你折腾半天也依然是用的 iOS18 的 sdk 去编译的 编译 sdk 与 Xcode 有关系 这也是为啥你必须要有个对应的新版本系统的 simulator runtime 才能编译
    7.你不求甚解就开始说什么 iOS 开发傲慢,正是因为你不懂,所以你在做一个“很新的”事情,一般 iOS 开发根本不需要你这种神秘操作,因此别人才说你的操作离谱
    8.接 7 其实你的需求我完全没看懂?手机是 iOS16 的?所以呢?你把 target version 改掉的时候其实就已经自动标记了 iOS17/18 的 API ,你用到的时候会提示的。同 6 ,不同 sdk 编出来的包其实表现是有差异的,反而你不做骚操作的话大部分情况下不同 iOS 系统的 API 表现是一致的,而且苹果对于 App Store 的 sdk 有限制需要用最新的,所以正常开发不会有用旧版 sdk 的事情
    chiaf
        21
    chiaf  
       4 天前
    @hwdq0012 #19 5 楼的也看不出什么,那张图里的 18.1 的都没安装,第一次打开 Xcode 没有安装 iOS 的组件。

    你最好把你的图发出来看看,不然不好分析什么原因。

    现在 Xcode 默认只有 macOS 的组件,其他的 iOS ,watchOS vision OS ,都是用户自己选择要不要安装。
    hefish
        22
    hefish  
       4 天前
    为啥一定要用模拟器? 直接接手机不是更好?
    hwdq0012
        23
    hwdq0012  
    OP
       4 天前
    @MacsedProtoss 很反直觉,我最开始的操作是想让开发出来的程序可以兼容 ios 15 ,我没有 ios 15 的机器,,所以用了模拟器,但工程选择不了这个创建的模拟器,15.0 16.0 都不能正常使用,这才有后面一堆的在你们看来很神秘的操作,但是我之前编译 chromium mac 版本的时候,了解到开发环境可以有多个 xcode ,可以切换不同的 xcode 再切换 sdk ,ai 的回答在我看来不神秘,而且合理,因为我即有 sdk (从旧版本中复制过来,ai 指示的),也有 simulator 了

    a2: 我直接在 xcode 16.2 里操作的下载仿真操作系统,创建设备

    a7: 我只是在编译一个 react native 的入门文档上的项目,尝试修改 deploymennt target 版本
    treblex
        24
    treblex  
       4 天前
    是这样的,前段时间还看熊猫短信的开发者说自己电脑上好几个 xcode 同时存在,虽然他是因为有旧项目没升级
    xcode14 好像是 flutter 支持的最低版本,我在之前没遇到过这种问题
    可能是新系统又更新了什么,没了解过,换 win 了
    hwdq0012
        25
    hwdq0012  
    OP
       4 天前
    @chiaf #21 外链中最后两楼人的评论也是安装了最新的 simulator 才能用 旧的 simulator


    @hefish #22 业余尝试入门, 我想支持尽可能旧的设备,xcode 可以创建旧的 simulator 却不选择它们,参考#5 楼外链中最后两楼评论
    chiaf
        26
    chiaf  
       4 天前
    @hwdq0012 #25 首先必须安装 iOS 18 ( Xcode 16 )的 sdk 😂,然后才能安装旧的 sdk


    外链中 OP 说了


    I have the older simulator, but if I don't install the latest one, the old one won't even be displayed. After adding the latest one, I can choose any of the old simulators. It's weird.


    他已经解决了🤪
    hwdq0012
        27
    hwdq0012  
    OP
       4 天前
    @chiaf #26 我没按倒 2 楼说的操作之前,编译都编译不了,因为没有选择一个 deploymennt ,所以安装了最新 simulator 后我也解决了编译不了的问题, 现在又有其他报错又是其他的事了,已经不是 0 楼描述问题的范围了
    icyalala
        28
    icyalala  
       4 天前
    虽然众所周知 Xcode 是最不靠谱 IDE 。。但是 OP 比它还要不靠谱。。。
    给个建设性意见:系统和支持看这里 https://developer.apple.com/support/xcode/
    操作优先在 Xcode 里进,先不要命令行或者复制来复制去
    hwdq0012
        29
    hwdq0012  
    OP
       4 天前
    @icyalala 我看的是 https://developer.apple.com/download/all/?q=xcode , 没什么区别

    我优先在 xcode 里安装 ios 16.0 simulator ,并不好用 没有安装最新的 simulator 之前,根本选不了
    icyalala
        30
    icyalala  
       4 天前
    @hwdq0012 你第一次打开 Xcode ,会有个选项让你选择你需要的组件,macOS/iOS/watchOS/tvOS ,如果你勾选 iOS 就会自动下载 iOS SDK 和最新模拟器,你要不勾选当然就没有了。
    MacsedProtoss
        31
    MacsedProtoss  
       4 天前 via iPhone
    @hwdq0012 旧的 Xcode 很大但是直接打包了 iOS sdk 因此可以直接复制旧的 simulator 进去 新的 Xcode 启动的时候就提示了要安装 iOS 依赖但是你没有安装 然后你又用一知半解的方案尝试直接安装旧版本 simulator 自然出了问题
    Xcode 把 sdk 和 simulator 打包在一起的操作确实是会令人产生迷惑 但是大部分人并不会遇到 因为如果只是想要让 app 能在低版本系统上运行并不需要你安装旧版本的 simulator
    你把你的情况重新整理一下就能懂:Xcode 需要使用对应版本的 sdk 才能编译,安装 Xcode 时候会提醒你安装 sdk 但是你没有执行。之后你尝试安装旧版本的 simulator 但是无法选择,原因很简单,没有 sdk 编译都不行还选个 P 的 simulator 作为 target 呢?
    而且正常人开发都是支持某个版本及以上的所有 iOS ,因此开发的时候都是用最新的系统版本进行的,只需要声明最低支持的 iOS 版本来对 API 可用性进行标记即可,并不是说你声明 iOS15+就是用 iOS15 的 sdk 来编译的,依然是用 iOS18 的 sdk 来编译,一般是测试时候才会用旧版本真机验证,有问题的时候如果开发没有真机才会用旧版模拟器去测试。
    因此你确实是不求甚解地进行操作,只要你懂为什么你就知道为啥自己的操作,就知道自己错在哪里,就不会觉得 Xcode 有啥问题
    hwdq0012
        32
    hwdq0012  
    OP
       4 天前
    @icyalala #30 我没有想要安装最新的仿真工具,我只是想兼容旧设备, 看的文档是 https://reactnative.dev/docs/getting-started-without-a-framework?package-manager=yarn
    并没有 xcode 相关的说明 ,我也是摸索着配置部署到旧设备上
    hwdq0012
        33
    hwdq0012  
    OP
       4 天前
    @MacsedProtoss 我的问题是选择不了 deployement 还没有到编译的步骤,并不是你说的那样,我看了 iphone.platform/sdks 里是有 18.2 sdk 的目录的,只是没下载 18.2 的 simulator 而已,从 xcode 14.0.1 复制 16.0 的 sdk 之前我确认过了,所以很确定。 我的 xcode 是从网页下载的,并没有看到什么自动安装的选项
    有 18.2 的 ios sdk + 16.0 的 ios simulator 也并不能选择 ,下拉框只有一个 18.2 的条目,选择了就会让下载 18.2 的 simulator ,但我一直没安装,因为我不用它,我从 xcode device/simulator 安装的 16.0 并不会显示在这里,直到你安装了 18.2 的 simulator 才会显示出来
    MacsedProtoss
        34
    MacsedProtoss  
       4 天前 via iPhone   ❤️ 1
    @hwdq0012 有点无语 确实是感觉听不进去的 上面都说了 sdk 在 simulator 里面包含着且 Xcode 与 sdk 版本是绑定的,你不信的话那也没办法,一切的根源就是你不了解 Xcode 的情况下就想要用自己的猜测去配置…Xcode 不管从哪里下载的 都会在首次启动的时候有个 install 界面 只要你勾选了 iOS 就没有任何问题了
    & 就像上面说的 你的目标是 iOS15 不代表你需要 iOS15 的模拟器 你只需要设置最低 target 之后用 iOS18 模拟器开发 也是可以正常在 iOS15 上运行的
    xiangyuecn
        35
    xiangyuecn  
       4 天前
    不过说句实在的,从敲代码的角度来讲,xcode 确实很屎,随便拎一个编辑器都比这玩意好使
    okakuyang
        36
    okakuyang  
       4 天前
    网页下载的安装包那是面向高级用户的,别人清楚下载下来是什么。入门去 appstore 里下载就行了。xcode 是和 iOS 的最新 sdk 绑定了,不下最新 sdk 用都用不了。
    hwdq0012
        37
    hwdq0012  
    OP
       4 天前
    @MacsedProtoss 我刚从废纸篓里找出 xcode 16.2 的 .xip 重新解压了一次,很确定的告诉你两件事
    1. 解压即有 ios 18.2 sdk
    2. 打开后没有跳出什么界面让安装什么东西


    @okakuyang 你不能拿自己的标准来衡量别人,在你看来很高级的东西, 在我看来只是入门知识
    nailuoGG
        38
    nailuoGG  
       4 天前   ❤️ 3
    来看 op 怒喷全场
    nailuoGG
        39
    nailuoGG  
       4 天前
    不过 Xcode 确实有些不一样,习惯习惯就好
    icyalala
        40
    icyalala  
       4 天前
    @hwdq0012 一个 Xcode 3GB ,一套 Runtime 8GB ,怎么可能自带。。。
    hwdq0012
        41
    hwdq0012  
    OP
       4 天前
    @icyalala 好的,你是对的,虽然在 finder 里显示了 12GB

    ```bash
    iPhoneOS.platform/Developer/SDKs
    ❯ pwd
    /Users/hbb/Downloads/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs

    iPhoneOS.platform/Developer/SDKs
    ❯ ll
    total 0
    drwxrwxr-x 8 hbb staff 256B 5 2 21:13 iPhoneOS.sdk
    lrwxr-xr-x 1 hbb staff 12B 5 2 21:13 iPhoneOS18.2.sdk -> iPhoneOS.sdk

    iPhoneOS.platform/Developer/SDKs
    ❯ du -h -d .
    77M .
    ```

    但确实 没有弹什么窗口要安装什么
    hwdq0012
        42
    hwdq0012  
    OP
       4 天前
    @hwdq0012

    但是我看我正常编译的环境,这个目录也是这么大
    ```bash
    ❯ cd /Applications/Xcode16.2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs

    iPhoneOS.platform/Developer/SDKs
    ❯ ll
    total 0
    drwxrwxr-x 8 hbb staff 256B 3 16 17:30 iPhoneOS.sdk
    lrwxr-xr-x 1 hbb staff 12B 3 16 17:31 iPhoneOS18.2.sdk -> iPhoneOS.sdk

    iPhoneOS.platform/Developer/SDKs
    ❯ du -h -d 1
    74M ./iPhoneOS.sdk
    74M .

    ```
    okakuyang
        43
    okakuyang  
       4 天前
    @hwdq0012 某名奇妙的回复,xcode 是和 sdk 绑定的,你要用最新的 xcode ,必须要下最新 sdk 。你不下最新的 sdk ,自己移动一个旧版的 sdk 到路径下去,我觉得 xcode 都没法正常工作。ios 开发环境有什么烂的,iOS 本来就是平台开发,自然会有平台的历史因素和操作惯性,这种问题哪个开发平台都会有。
    hwdq0012
        44
    hwdq0012  
    OP
       4 天前
    @okakuyang
    1. 下载 xcode 16.2 解压后
    .../Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs
    .../Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs
    这两个路径都已经有 18.2 的 sdk 了
    2. 在 1 的基础上我安装了 16.0 的 simulator ,创建了设备, 在工程中选中不了, 直到安装了 18.2 的 simulator

    3. 在这个基础上我问 ai , ai 让下载 14.0.1 的 xcode,我下载后发现运行不了, ai 又让我尝试复制 xcode 14.0.1 的 ios sdk 到 xcode 16.2 的目录, 我测试了还是不行, 这时我才来 V2EX 发贴

    4. xcode 就是烂, 没一个地方说 18.2 的 simulator 非装不可, 给人的感觉就是配置想要的版本后再下载就行了
    这也是合理的思维,按需要安装 simualtor,

    5. 我看你们是在屎坑里玩久了玩出优越感了
    feikaras
        45
    feikaras  
       3 天前 via iPhone
    @hwdq0012 环境都搭建不来你还有什么可以喷别人的。你觉得人家没回复你,我看人家早就回复你了,我还再回复了一遍,你还在里面兜圈子。人家说什么你是一个字都没看进。
    yoyoyoyolol
        46
    yoyoyoyolol  
       3 天前 via iPhone   ❤️ 1
    android 配置 gradle 啥的坑才多,苹果开发已经是傻瓜式的了
    KingCloser
        47
    KingCloser  
       3 天前   ❤️ 3
    我看了 op 的全部回复,但凡承认一下自己的错误有这么难吗?还嘲讽 ios 开发的傲慢,回复里都有正确的答案,你也是真离谱
    hwdq0012
        48
    hwdq0012  
    OP
       3 天前 via iPhone
    @KingCloser
    @feikaras
    然而我在五楼就已经自己解决了 而现 48 楼
    MacsedProtoss
        49
    MacsedProtoss  
       3 天前 via iPhone   ❤️ 1
    你的 append 就是错误的 没有任何官方页面下载的 Xcode 自带 iOS sdk 不用嘴硬了
    确实是感觉故意听不进去一样 懒得再回复了
    di11wei
        50
    di11wei  
       3 天前 via iPhone
    哈哈哈哈,我不是开发者,我围观一下
    但我觉我要是 OP 可能写完 append 我就不对下面回复再做回复了。
    我要是想回答问题的,可能再看到 30 楼左右时候也不回复了。
    但我什么也不是,我只是一个失业在家闲的发慌的人。哈哈哈哈
    chiaf
        51
    chiaf  
       3 天前
    @hwdq0012 #44 我查看我的没有装 iOS sdk 的电脑,这两个目录确实有,不只这两个,苹果所有平台 SDK 都有,但是,这俩目录默认 300M 左右,一个 iOS SDK 8G 。而且每次更新系统后,打开 Xcode 都会让用户选择是否需要安装其他的 SDK 。


    还有你说是在页面下载的,什么页面,我试试是不是没有弹窗,从 Xcode 15 才把除了 macOS 的 SDK ,其他的变成按需安装。


    Xcode 烂是烂在开发调试,跟别的 IDE 比,没见过安装就喷烂的,App Store 里面直接安装,安装完打开。


    下面附一个选择安装的图片,刚刚截图的,新鲜的。


    barkure
        52
    barkure  
       3 天前 via iPhone
    op 好像没有安静地读完一条回复的能力
    hwdq0012
        53
    hwdq0012  
    OP
       3 天前 via iPhone
    @barkure 我在 5 楼时就已经确定问题了并解决了 也说明了问题了 你们要有耐心就不会现在还在挖坟了

    @chiaf 这个界面我重新解压 xip 打开确实没有, 就是要登苹果账号才能下载的那个 https://developer.apple.com/download/all/?q=xcode
    不确定是不是同个版本第一次关掉后就没有这个窗口 还是本来就没有
    hwdq0012
        54
    hwdq0012  
    OP
       3 天前 via iPhone
    @chiaf 并且我在我能编译的环境看这两个目录大小也是这么大 没有变化 我 xip 解压后的 xcode 是 12gb
    dxk611
        55
    dxk611  
       3 天前
    测试了,可以选择。好好看看别人的回复,先别嘴硬。iOS 开发工具确实有些奇怪的问题,但不是你遇到的这个问题
    sobigfish
        56
    sobigfish  
       3 天前
    尝试了安装 17.2 的模拟器,发现了可能问题所在,手机也会影响最低的 iOS 版本,比如 iPhone16 是不能用 iOS17.2 的模拟器的,iPhone15 就可以
    hwdq0012
        57
    hwdq0012  
    OP
       3 天前
    @sobigfish 我还没上真机,就是 xcode 16.2 的 xip 解压出来的 xcode 打开后安装 16.0 simualtor 就不能选中, 他们都说 simulator 和 sdk 是一起下载的, 但我看并非如此, 因为下载前后这两个目录大小没有变化
    .../Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs
    .../Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs


    @dxk611 那你也睁大眼睛好好看五楼我贴的外链
    zoharSoul
        58
    zoharSoul  
       3 天前
    xcode 确实离谱
    也不知道 iOS 开发怎么忍的
    体验比 as 差多了
    okakuyang
        59
    okakuyang  
       3 天前
    嘴真臭 我寻思我也没攻击你吧?
    hwdq0012
        60
    hwdq0012  
    OP
       3 天前
    @okakuyang 你在回几楼,太多楼了,忙不过来了
    MacsedProtoss
        61
    MacsedProtoss  
       3 天前 via iPhone
    @zoharSoul as 大工程直接挂得很彻底 index 的时间很久又完全无法使用 而且直接 ide run 卡的要死还得先 gradle 编译好装上去再 attach debugger
    说到 debugger ,android 的断点调试几乎可以说是没有,更大概率靠日志
    kekeabab
        62
    kekeabab  
       3 天前
    不是,你这么在意 Xcode 版本干什么,Xcode 是 Xcode ,sdk 是 sdk ,模拟器是模拟器,拿出来都是能单独用的。

    你命令都用错了知道吗,根本没有 `xcrun --sdk ios --show-sdk-version` 这个命令,正确的命令是 `xcrun --sdk iphoneos --show-sdk-version`

    你一开始的问题就是设置个`minimum deployments`的问题,至于模拟器,你一开始根本没有提到模拟器,后面硬在那犟嘴扯什么模拟器。你要启动旧版本模拟器,直接可以用`xcrun simctl list devices`查看已有模拟器,然后`xcrun simctl boot UUID`选中模拟器,之后`open -a simulator`就能启动。就那么几个命令,你随便看看 help ,甚至问问 ai 都行。

    你用最新的 18 的 sdk ,一样能开发低版本 ios 的东西,当然你非要用低版本的 sdk 也完全没有问题,你甚至用 Linux 、用手机平板开发编译都没问题。

    下面是我用 x86_64 Linux 使用 16 的 sdk 开发 ios13 arm64 程序的截图

    https://imgur.com/w9N6AxX.png

    另外 Xcode 确实是个垃圾东西,但 iOS 开发和用不用 Xcode 根本没关系,我身边认识三个搞 iOS 的,包括我自己业余的,就一个用 Xcode 的。
    hwdq0012
        63
    hwdq0012  
    OP
       3 天前
    @kekeabab 一开始没提到是因为选择不了旧的 simulator 导致我以为需要用不同的 sdk 版本才能选择中,并拷打了 ai 后再来提问的, 然而 5 楼的时候就已经解决 了还一堆人回复 着 ‘不要嘴硬’ ‘听不见去’ ‘承认错误’ ‘不认真看’ 之类的,实在是有些搞笑 5 楼之后都是没有意义的回复
    kekeabab
        64
    kekeabab  
       3 天前
    补图
    kk2syc
        65
    kk2syc  
       3 天前
    如果超过三个人提到了相同的修复办法,而你用这个办法没办法修复问题,那么不是你的文字叙述有偏差就是个人能力有问题。
    hwdq0012
        66
    hwdq0012  
    OP
       3 天前
    @kk2syc 又来一个,5 楼已定位问题,7 楼已正常选择编译用的 simulaotr ,你看了吗
    kk2syc
        67
    kk2syc  
       3 天前
    @hwdq0012 我看了,很高兴你解决问题了。但是,我说的是你回复别人的态度。大家是陌生人,你不必把自己的愚钝摆到台面来,然后说什么群体是什么样的。
    hwdq0012
        68
    hwdq0012  
    OP
       3 天前
    @kk2syc 我只是被 5 楼那个 xcode 这个奇葩问题一时被拐弯了而已,难道不是这样吗 5 楼之后 90%都是像你这样跳过 5 楼直接教育我的, 你们呢,承认 xcode 坑不行吗, 疯狂洗这洗那的, ‘会弹个安装窗口的’ ‘simulator 包含 sdk 的’ 'xcode 不管从哪 安装没有自带 sdk 的' 然而事实就是我从 xip 解压出来的 xcode 一解压出来就是 12gb , 也没弹什么窗口让安装 ios sdk , 我只是安装了 16.0 的 simulator 用不了, 向 ai 求助后 ai 让我安装低版本的 xcode 从中复制,也不行,最后安装了一个 18.2 的 simulator 就正常了,3-4 楼,6 楼 5 楼之后不看仔细 append 和 5 楼外链上来就一顿教育我的 难道不是像我 7 楼所说的那样傲慢吗 xcode 难道不是真的烂吗
    kk2syc
        69
    kk2syc  
       3 天前
    @hwdq0012 你还不明白吗?你一直以为#5 是解决问题的正确方式,其实只是你误打误撞的结果,大家只是试图告诉你正确的,然而你似乎没有能力理解。比如 @kekeabab #62 ,然后你还是在掰扯,反正不能是你自身有问题就对了。

    接受批评也是一种编程能力。

    当然,你要说 xcode 烂是你的事情。
    hwdq0012
        70
    hwdq0012  
    OP
       3 天前 via iPhone
    @kk2syc 所以你认为外链中那几个也是误打误撞解决了 你认为 xcode 不安装最新的 simulator 不能设置其他 simulator 为 target 进行编译操作也是正常的呗
    zoharSoul
        71
    zoharSoul  
       3 天前
    @MacsedProtoss #61 as debug 很好用啊 怎么会没有呢
    MacsedProtoss
        72
    MacsedProtoss  
       3 天前 via iPhone
    @zoharSoul 用 pixel 的话才是好用的 大部分系统断点就是 anr 会强杀 国内调试还要插卡 哪怕是 pixel 也得保持亮屏 且 crash 不能保存现场 调试 native 的话也容易挂
    综合来说 as 调试肯定是不如 Xcode 的
    hwdq0012
        73
    hwdq0012  
    OP
       3 天前
    @kk2syc 到家又把 62 楼看了一次, 他说是 minimum deployemnts 的事, 但我的问题是选择不了一个 simulator 作为编译部署环境,点编译马上弹窗 这种情况设置 minimum deployments 有什么用请问,你所有回复都是没有看我的 append 和 5 楼外链的情况下的乱回复,顺带还给我一又一顿教育, 还 cpu 我虚心接受你的教育, 人在极度无语的时候真的会笑一下
    saltpi
        74
    saltpi  
       3 天前
    @MacsedProtoss iOS 、Windows 和 Android 都深入开发过一段时间,Xcode 的调试吊打 Android Studio ,个人感觉 Xcode > Visual Sudio > Android Studio. Xcode 功能也比以前丰富了,内置 vim 、书签,就 AI 功能差了点。Android Studio 的调试一样难尽,有线都常常卡的一批。
    jamesjammy061
        75
    jamesjammy061  
       3 天前
    是的确实逆天,必须要老系统才能用超级老的 xcode 。特么更逆天的是 Sequoia 不支持,得回退系统
    jamesjammy061
        76
    jamesjammy061  
       3 天前
    xcode 16 还砍掉了 wireless 连接那个按钮,只能走 mDNS 自动发现,但是公司开发网基本都是会禁用多播。就很蠢
    pipasese
        77
    pipasese  
       3 天前
    得用最新的 Xcode16 版本,4/24 号以后只能使用 Xcode16 进行编译以及提交到 appstore 了。
    angrylid
        78
    angrylid  
       3 天前
    我没搞过 iOS 开发光看上面的回答都把逻辑捋明白了。
    1. XCode 版本和 macOS 的版本是有一一对应关系的,装旧的版本可能会引发奇怪的问题。
    2. 安装好 XCode 之后应该会提醒安装相应版本的 SDK 和模拟器。如 51 楼所示。
    3. 一般情况下只需要在工程里面设置最低系统要求的版本就是编译产物兼容的版本。
    4. 如果你调试的时候有在特定操作系统复现的必要,而又恰好有物理机器,直接把真机接上去就行了。
    5. 如果没有相应的机器,可以完成第 2 步后在交互界面里面找到旧版的模拟器下载并安装。

    假设上述观点为事实的前提下,再去看你的操作,确实是你被 AI 带歪在瞎搞。
    jqtmviyu
        79
    jqtmviyu  
       3 天前
    必须新系统才能安装新的 Xcode, 建议离 Xcode 远点, 移动端就 expo, pc 端就 electron, 又不是不能用.
    hwdq0012
        80
    hwdq0012  
    OP
       3 天前 via iPhone
    @angrylid 在 ai 带我瞎搞之前是 xcode 反直觉需要下载 18.2 的模拟器才能选择其他模拟器(看 5 楼外链 我不是唯一被坑的人) 导致我以为是需要安装别 xcode 或 sdk 我的 xcode 是登苹果官方网站下载的 xip 解压出来的 解压出来就 12gb 不是他们说的 3gb 也没有跳什么弹窗
    oIMOo
        81
    oIMOo  
       2 天前
    OP: 只想支持旧版本 (新版本无所谓)
    Xcode:可以设置支持的最旧版本,但是强制要求支持最新版本

    你俩的矛盾点在这里吧?
    hwdq0012
        82
    hwdq0012  
    OP
       2 天前
    @oIMOo 不是,就是用 simulator 开发时,得下载最新的才能选其他的,我一直没下最新的 simulator 一直选中不了旧的,参见 5 楼外链
    oIMOo
        83
    oIMOo  
       2 天前
    @hwdq0012 #82 对啊
    “得下载最新的” = 强制要求支持最新版本 ( SDK ), “才能选其他的” = 可以设置支持的最旧版本。

    可能你不理解为什么为什么一定要下最新的 (为什么一直要支持最新版本),而苹果(甚至任何厂家)都希望你尽可能只支持新的,和厂商一起‘督促’用户升级。
    hwdq0012
        84
    hwdq0012  
    OP
       2 天前
    @oIMOo 所以我才说你们在屎坑里久了,觉得这是正常的, 你创建旧的 Simulator 可以, 但显示不出来,你如果是一个没接触过 Xcode 的人,你只会想弄明白为什么界面上显示不出来,怀疑是不是版本不支持需要安装其他版本, 而不是安装一个最新的
    nailuoGG
        85
    nailuoGG  
       2 天前
    初次接触某个领域确实会踩一连串坑,产生某种理念“颠覆自己的认知”、觉得某种操作“反直觉” 等等都是很常见的事情,佛系一点认真系统学习下就好。另外感想就是确实没有捷径
    hwdq0012
        86
    hwdq0012  
    OP
       2 天前 via iPhone
    @nailuoGG 怪不得都说 mac 用户自洽能力较强 不用太考虑交互逻辑 他们会说服自己的
    nailuoGG
        87
    nailuoGG  
       1 天前   ❤️ 1
    @hwdq0012 #86 🤷‍♂️ 那祝你一切顺利,生活愉快
    volvo007
        88
    volvo007  
       1 天前
    @qiaobeier 我最近组里的也是这样…… 有事就问 ai ,然后 ai 解决不了的就说没办法了,也不愿意深入,头疼
    maix27
        89
    maix27  
       1 天前
    @hwdq0012 看到你说屎坑 我都想笑。 你一说 Apple 屎坑,我就想到了 C#,进而想到.Net -> 微软 -> Github

    就这些屎坑你还得踩,踩了还要骂。
    hwdq0012
        90
    hwdq0012  
    OP
       1 天前
    @maix27 现在是你的幻想时间, 微软的工具除了 wix 打包工具我都没有什么不适,github 只是用来提交代码有什么屎坑,目前没遇到过
    maix27
        91
    maix27  
       1 天前
    @hwdq0012 对我来说是屎坑,别想太多,有点素质。祝你一切顺利,生活愉快
    gdgoldlion
        92
    gdgoldlion  
       1 天前
    xcode 绑定系统版本,绑定 sdk ,绑定模拟器都好多年了
    从水平上来说,这就是个二流 ide ,但你要在苹果生态里面讨生活,只能忍受
    苹果开发环境最烂还用洗么,吹苹果开发环境好的都是因为 unix 兼容,和苹果有什么关系
    anan1314git
        93
    anan1314git  
       19 小时 1 分钟前
    @xiangyuecn AI 时代, 能看出来 Xcode 屎的高度又更上一层楼了
    eGlhb2Jhb2Jhbw
        94
    eGlhb2Jhb2Jhbw  
       15 小时 37 分钟前   ❤️ 1
    标题:
    “Xcode 如何管理老版本环境” ✅
    “ios 开发这么离谱的吗” ❌

    “我发现 ios 程序员怎么好像有一种天然的傲慢”
    “他们也没给出建设性的建议呀,说话还难听”
    “所以我才说你们在屎坑里久了,觉得这是正常的”

    但凡 OP 会好好说话一点,这个帖子都不会变成这样。带着敌意来的,迎接你的只会是敌意。
    hwdq0012
        95
    hwdq0012  
    OP
       14 小时 38 分钟前
    @eGlhb2Jhb2Jhbw 当你有了观点,你就有了敌人,我的敌意对准 xcode , 有人为他而战
    rxswift
        96
    rxswift  
       14 小时 19 分钟前
    iOS ?狗都不干
    xcode ?狗都不用
    vvard3n
        97
    vvard3n  
       13 小时 54 分钟前

    不是可以下各个版本模拟器吗
    xcode 你得用新的,模拟器 runtime 你得单独下
    minimum deployemnts 是项目支持的最低版本 ios ,各是各的不要混淆
    eGlhb2Jhb2Jhbw
        98
    eGlhb2Jhb2Jhbw  
       13 小时 51 分钟前
    @hwdq0012 #95 你是来输出观点的,还是想来解决问题的?
    你要是只是来输出观点的,那我没其他问题了。
    你要是想解决问题,那我个人的建议是你别带着任何敌意去提问。

    平常大家提问,我还会看看回复,空闲了自己也动手试试,就当自我学习了。
    你这帖子一进来,全都是扯头发的戏码,莫名其妙的 “你们 iOS 程序员” "屎坑" 之类的。

    算逑了,你自己玩吧。
    hwdq0012
        99
    hwdq0012  
    OP
       12 小时 42 分钟前
    @eGlhb2Jhb2Jhbw 我在 5 楼时已经解决问题了,也在那时对 xcode 充满敌意,因为这一个 ui 上的交互问题导致我浪费了很多业余的时间,可惜没有关闭帖子的功能,或者有我不知道, 但是我不惹事也不怕事,也不怕事来,也不怕事不来
    hwdq0012
        100
    hwdq0012  
    OP
       12 小时 39 分钟前
    @vvard3n 5 楼外链那图片上显示, 没安装 ios 18 (没说是 sdk 还是 runtime ),不安装就一直不会显示已安装的 simulator ,但是我确实是想开发旧的版本 ,所以我不会想下载最新的 18.x , 所以就到处折腾
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   927 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 20:03 · PVG 04:03 · LAX 13:03 · JFK 16:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.