ios 开发这么离谱的吗

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

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

8193 次点击
所在节点    iDev
100 条回复
paopaosa
4 天前
“设置”里组件选:“iOS 16.0 Simulator” 不行吗?
MakHoCheung
4 天前
你的操作也离谱。正确做法是在项目设置那设置 minimum deployments 为 16
kekeabab
4 天前
你在折腾什么,用 18 的 sdk 也一样能开发 ios16 啊
salor
4 天前
但凡问了 AI 一句也不至于搞出这么多离谱无用功。
hwdq0012
4 天前
@paopaosa
@MakHoCheung 必然是操作过这个了
@kekeabab
@salor ai 不是万能的

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

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

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

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

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

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


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

hwdq0012
4 天前
@chiaf 创建过了,选中不了,直到安装了 18.3 的模拟器,一下全显示在下拉窗口中了,否则全不显示,你看看 5 楼那个外显,我和他一样的情况
MacsedProtoss
4 天前
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 的事情

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

https://yangjunhui.monster/t/1129398

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

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

© 2021 V2EX