ios 开发这么离谱的吗

174 天前
 hwdq0012

我的 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'

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

13055 次点击
所在节点    iDev
109 条回复
usVexMownCzar
174 天前
@hwdq0012 #19 5 楼的也看不出什么,那张图里的 18.1 的都没安装,第一次打开 Xcode 没有安装 iOS 的组件。

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

现在 Xcode 默认只有 macOS 的组件,其他的 iOS ,watchOS vision OS ,都是用户自己选择要不要安装。
hefish
174 天前
为啥一定要用模拟器? 直接接手机不是更好?
hwdq0012
174 天前
@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
174 天前
是这样的,前段时间还看熊猫短信的开发者说自己电脑上好几个 xcode 同时存在,虽然他是因为有旧项目没升级
xcode14 好像是 flutter 支持的最低版本,我在之前没遇到过这种问题
可能是新系统又更新了什么,没了解过,换 win 了
hwdq0012
174 天前
@chiaf #21 外链中最后两楼人的评论也是安装了最新的 simulator 才能用 旧的 simulator


@hefish #22 业余尝试入门, 我想支持尽可能旧的设备,xcode 可以创建旧的 simulator 却不选择它们,参考#5 楼外链中最后两楼评论
usVexMownCzar
174 天前
@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
174 天前
@chiaf #26 我没按倒 2 楼说的操作之前,编译都编译不了,因为没有选择一个 deploymennt ,所以安装了最新 simulator 后我也解决了编译不了的问题, 现在又有其他报错又是其他的事了,已经不是 0 楼描述问题的范围了
icyalala
173 天前
虽然众所周知 Xcode 是最不靠谱 IDE 。。但是 OP 比它还要不靠谱。。。
给个建设性意见:系统和支持看这里 https://developer.apple.com/support/xcode/
操作优先在 Xcode 里进,先不要命令行或者复制来复制去
hwdq0012
173 天前
@icyalala 我看的是 https://developer.apple.com/download/all/?q=xcode , 没什么区别

我优先在 xcode 里安装 ios 16.0 simulator ,并不好用 没有安装最新的 simulator 之前,根本选不了
icyalala
173 天前
@hwdq0012 你第一次打开 Xcode ,会有个选项让你选择你需要的组件,macOS/iOS/watchOS/tvOS ,如果你勾选 iOS 就会自动下载 iOS SDK 和最新模拟器,你要不勾选当然就没有了。
MacsedProtoss
173 天前
@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
173 天前
@icyalala #30 我没有想要安装最新的仿真工具,我只是想兼容旧设备, 看的文档是 https://reactnative.dev/docs/getting-started-without-a-framework?package-manager=yarn
并没有 xcode 相关的说明 ,我也是摸索着配置部署到旧设备上
hwdq0012
173 天前
@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
173 天前
@hwdq0012 有点无语 确实是感觉听不进去的 上面都说了 sdk 在 simulator 里面包含着且 Xcode 与 sdk 版本是绑定的,你不信的话那也没办法,一切的根源就是你不了解 Xcode 的情况下就想要用自己的猜测去配置…Xcode 不管从哪里下载的 都会在首次启动的时候有个 install 界面 只要你勾选了 iOS 就没有任何问题了
& 就像上面说的 你的目标是 iOS15 不代表你需要 iOS15 的模拟器 你只需要设置最低 target 之后用 iOS18 模拟器开发 也是可以正常在 iOS15 上运行的
xiangyuecn
173 天前
不过说句实在的,从敲代码的角度来讲,xcode 确实很屎,随便拎一个编辑器都比这玩意好使
okakuyang
173 天前
网页下载的安装包那是面向高级用户的,别人清楚下载下来是什么。入门去 appstore 里下载就行了。xcode 是和 iOS 的最新 sdk 绑定了,不下最新 sdk 用都用不了。
hwdq0012
173 天前
@MacsedProtoss 我刚从废纸篓里找出 xcode 16.2 的 .xip 重新解压了一次,很确定的告诉你两件事
1. 解压即有 ios 18.2 sdk
2. 打开后没有跳出什么界面让安装什么东西


@okakuyang 你不能拿自己的标准来衡量别人,在你看来很高级的东西, 在我看来只是入门知识
nailuoGG
173 天前
来看 op 怒喷全场
nailuoGG
173 天前
不过 Xcode 确实有些不一样,习惯习惯就好
icyalala
173 天前
@hwdq0012 一个 Xcode 3GB ,一套 Runtime 8GB ,怎么可能自带。。。

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

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

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

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

© 2021 V2EX