Xcode15+iOS17适配以及遇到的问题

今天更新了 Xcode15,遇到了一些问题,做下记录希望大家少走点坑。

1.iOS17 SDK 安装失败

Xcode更新完成后,打开项目一直显示 no fund  iOS17 sdk,根据项目不同提示可能有区别,根据提示下载后提示安装失败,试了几次还不行,就去官网查看一下情况,苹果已经给出解决方案;

解决:

终端执行以下命令:

# sudo xcode-select -s /Applications/Xcode.app 
# xcodebuild -runFirstLaunch
# xcrun simctl runtime add "~/Downloads/iOS_17_Simulator_Runtime.dmg"

当然网络也是一方面;

成功的提示:

D: 40037F44-7F14-4FE3-B2A7-34EA5F24AC36 iOS (17.0 - 21A328) (Ready)

出现这个之后会提示验证,验证通过重启 Xcode 即可。

2023.10.07

今天打开电脑直接提示更新14.0 Macos版本,更新成功后打开Xcode会提示下载 iOS17SDK,看来新版本苹果已经修复此问题,大家遇到此问题最好看看系统版本。 

2023.10.23

今天更新Xcode15.0.1版本,又出现的同样的问题,看来此问题会长期存在,推荐大家一种简单有效的方式:

1.直接在Apple官网找到你要下载的文件,https://developer.apple.com/download/all/ 

2.下载到本地

3.下载完成后,进入~/Library/Caches文件,找到com.apple.dt.Xcode文件,选择显示包内容,里面有Downloads文件夹,把刚才下载的文件原封不动的复制到Downloads下,没有Downloads则自己创建一个或者在xcode->settings->Platforms,随便下载个SDK,出现了Downloads文件在取消就行

4.在终端执行命令:

# sudo xcode-select -s /Applications/Xcode.app
# xcodebuild -runFirstLaunch
# 后面的路径最后是文件名,一定要记住文件类型要加上
# xcrun simctl runtime add ~/Downloads/iOS_17.0.1_Simulator_Runtime.dmg

会进入验证状态,验证通过后重启Xcode即可使用;

注意

此方式可以避免很多坑,因为文件很大,很多时候5个G以上,网络很容易挂掉,xcode下载还没有断点续传,下载一断就需要重新下载,我们避开了Xcdoe的下载方式,只需要Xcode验证安装文件就行;

在下载前最好先清掉xcode内部Downloads以前下载的内容,这样避免安装的时候识别有误;

下载的文件名字里可能有空格,但是在终端执行命令时空格会转成下划线,最好是直接复制文件名,在终端粘贴的时候会自动转,大家千万不要在命令里空格,那样就会出现下面的问题

如果提示:(2) No such file or directory 说明路径有问题,多检查下。

2.项目编译失败,提示.a里的文件重复添加

我很确定文件没有重复添加,

解决:

Build Settings -> Other Linker Flags 中添加 -ld64

重新编译即可。

3.swift项目或者flutter项目报:DT_TOOLCHAIN_DIR cannot be used to evaluate LIBRARY_SEARCH_PATHS, use TOOLCHAIN_DIR instead

原因应该是Xcode15改变了某些配置路径,导致pod获取的配置和xcode不匹配,

解决:

有两个方法解决

1.Pod已经立刻进行了版本更新,1.13.0版本已经修复了此问题;

2.在podfile文件添加:

post_install do |installer|
  installer.pods_project.targets.each do |target|
      target.build_configurations.each do |config|
      flutter_additional_ios_build_settings(target)
      xcconfig_path = config.base_configuration_reference.real_path
      xcconfig = File.read(xcconfig_path)
      xcconfig_mod = xcconfig.gsub(/DT_TOOLCHAIN_DIR/, "TOOLCHAIN_DIR")
      File.open(xcconfig_path, "w") { |file| file << xcconfig_mod }
      end
  end
end

重新install既可

4.项目中有使用沙盒的读写的,会报:Sandbox: bash(xxx) deny(1) file-write-create 

解决:

在项目的project里,设置User Script Sanboxing改为NO以及编译的Xcode版本选择最新的Xcdoe15,pod工程右则工具栏一样改成Xcode15.0

重新编译应该就可以了

5.Cycle inside xxx;   building could produce unreliable results.

解决:

根绝错误提示重新排序即可

持续更新中。。。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>