能否在Xcode 16.4中指定watchOS 9.4 SDK编译Rust XCFramework?
解决方法
可以不用安装Xcode 14.3,通过拷贝对应SDK到Xcode 16.4目录,再指定SDK编译就能解决问题,具体步骤如下:
1. 获取watchOS 9.4 SDK
你需要拿到Xcode 14.3附带的WatchOS9.4.sdk文件夹,途径包括:
- 从已安装Xcode 14.3的设备上拷贝,路径为
/Applications/Xcode-14.3.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS9.4.sdk - 从Xcode 14.3的安装包中提取(右键安装包选择"显示包内容",按上述路径找到SDK)
2. 将SDK复制到Xcode 16.4目录
用终端执行命令,把SDK拷贝到Xcode 16.4的对应路径下(替换源路径为你实际的SDK位置):
sudo cp -r /path/to/WatchOS9.4.sdk /Applications/Xcode-16.4.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/
输入系统密码完成拷贝,确保权限正确。
3. 指定SDK编译
有两种方式让cargo swift package使用watchOS 9.4 SDK:
方式一:临时设置环境变量
编译前先设置SDKROOT指向9.4 SDK路径,再执行编译命令:
export SDKROOT=/Applications/Xcode-16.4.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS9.4.sdk cargo swift package [你的编译参数]
方式二:直接给命令指定SDK参数
在cargo swift package命令后添加--sdk参数,直接指定SDK版本或路径:
# 指定版本 cargo swift package --sdk watchos9.4 [你的编译参数] # 或指定完整路径 cargo swift package --sdk /Applications/Xcode-16.4.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS9.4.sdk [你的编译参数]
4. 验证配置是否生效
执行以下命令,若输出watchOS 9.4的SDK路径,说明配置成功:
xcrun --sdk watchos9.4 --show-sdk-path
完成以上步骤后,编译出来的XCFramework就会基于watchOS 9.4 SDK构建,和你设置的最低部署目标9.6匹配,SDK版本不兼容的警告就会消失。
内容的提问来源于stack exchange,提问作者Seto
相关产品推荐
相关产品推荐

