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


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

    1.iOS17 SDK 安装失败

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

    解决:

    终端执行以下命令:

    1. # sudo xcode-select -s /Applications/Xcode.app
    2. # xcodebuild -runFirstLaunch
    3. # 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.在终端执行命令:

    1. # sudo xcode-select -s /Applications/Xcode.app
    2. # xcodebuild -runFirstLaunch
    3. # ""里面是文件路径最后是文件名,一定要记住文件类型要加上
    4. # xcrun simctl runtime add "/Users/xxx/Downloads/iOS_17.2_Simulator_Runtime.dmg"

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

    注意

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

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

    如果提示:(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文件添加:

    1. post_install do |installer|
    2. installer.pods_project.targets.each do |target|
    3. target.build_configurations.each do |config|
    4. flutter_additional_ios_build_settings(target)
    5. xcconfig_path = config.base_configuration_reference.real_path
    6. xcconfig = File.read(xcconfig_path)
    7. xcconfig_mod = xcconfig.gsub(/DT_TOOLCHAIN_DIR/, "TOOLCHAIN_DIR")
    8. File.open(xcconfig_path, "w") { |file| file << xcconfig_mod }
    9. end
    10. end
    11. 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.

    解决:

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

    持续更新中。。。

  • 相关阅读:
    代码随想录 - Day34 - 回溯:递增子序列+排列问题
    牛客小白赛60(F.被抓住的小竹)&61(E.排队)(数学+推公式)
    物联网协议之MQTT
    redisson分布式锁原理剖析
    【TypeScript】项目中对于TypeScript的打包处理
    nodejs+vue+elementui高校体育馆场地预订系统
    web网页设计期末课程大作业:美食餐饮文化主题网站设计——中华美德6页面HTML+CSS+JavaScript
    LeetCode·20.有效的括号·栈模拟
    第9章 Spring的数据库编程
    【Linux】结合当前软件工程技术的背景,评价当前市面上流行的操作系统的局限性
  • 原文地址:https://blog.csdn.net/PianZhideNanRen/article/details/133037418