ios 开发这么离谱的吗

5 天前
 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'

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

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

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

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


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

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


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

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

https://yangjunhui.monster/t/1129398

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

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

© 2021 V2EX