添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

看到Xcode有新版本,没忍住点了升级,然后问题来了。

2023/06/24更新:关于Xcode 14.3版本打出来的包在iOS 13版本报错的问题,经过iOS 13.7版本真机实测,这个问题在Xcode 14.3.1版本已经修复,建议升级。 Xcode 14.3.1的发布说明 也提及了这个问题的修复。

2023/04/23更新:关于Xcode 14.3版本目前涉及到的三个问题,一是本篇文章的运行报错;二是打包报错,参考这篇文章 iOS问题记录 - Xcode 14.3版本打包项目报错 ;三是打出来的包在iOS 13.1~13.7会报错(因为我手头没条件暂时未验证),参考 苹果开发者论坛的帖子

目前而言,推荐暂时用回Xcode 14.2版本,等待第三个问题修复后再升级, Xcode历史版本官方下载地址 (需要登录)。 当然,到时候升级后可能还会遇到运行/打包项目报错,不过这都是小问题。如果想知道这些小问题为什么会发生,请继续阅读本篇文章。

  • macOS: 13.3
  • Xcode: 14.3

Xcode 14.2版本运行项目一切正常,升级到14.3版本后运行报错。

运行到模拟器的报错信息:

ld: file not found: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphonesimulator.a
clang: error: linker command failed with exit code 1 (use -v to see invocation)

运行到真机的报错信息:

ld: file not found: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphoneos.a
clang: error: linker command failed with exit code 1 (use -v to see invocation)

从报错信息看,都是在链接库的时候因为找不到静态库(libarclite_iphonesimulator.a/libarclite_iphoneos.a)而报错。利用访达的前往文件夹功能快速来到报错信息中的目录,发现连arc目录都不存在,更不用说静态库文件。

现在可以确定的是Xcode 14.2版本肯定是正常的,那会不会是14.3版本移除了整个arc目录?找到一台还没升级到Xcode 14.3版本的电脑,在同样的路径下,果然存在arc目录:

既然是因为找不到库导致的问题,那我复制arc目录到Xcode 14.3版本中是否可行呢?实测可行,不管是模拟器还是真机,运行一切正常。不过,既然Xcode决定移除这个arc目录,说明这个可能真的已经过时,难道以后都不需要再链接这些库用于支持ARC

找到Xcode 14.3的发布说明,翻了翻并没有看到有关这方面的说明。看来只能去苹果开发者论坛找找看,搜索报错信息找到相关的问题,一位苹果员工给出了回复:

这个回复简单概括起来就是说,因为系统已经内置有ARC相关的库,所以没必要再额外链接,至少Xcode 14支持的最低部署目标iOS 11及以上版本的系统肯定是没问题的。如果应用部署目标不低于iOS 11还出现问题,那么应该是第三方库的部署目标有问题。

现在Xcode 14.3移除arc目录的原因已经很清楚,是因为支持的最低部署版本的系统都已经内置了ARC相关的库。如果应用最低部署目标版本本身不低于iOS 11,解决这个问题很简单,只需要将第三方库部署目标的iOS版本设置成和应用最低部署目标的iOS版本一致。

在我的项目中,应用最低部署目标是iOS 11.0版本:

Podfile文件中加上:

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.0'

这段代码的作用是先获取Pods项目(pods_project)中的目标数组(targets),然后遍历目标数组通过目标对象(target)获取构建配置数组(build_configurations),最后遍历构建配置数组修改构建配置对象中的构建设置(build_settings),将iOS 部署目标版本设为11.0

经过以上操作,实测不再报错。不过,还有疑问没解决,我手上还有老项目的最低部署目标是iOS 9版本,难道老项目只能用Xcode 14.3以下版本或复制一份arc目录到Xcode 14.3?

带着疑问,我用Xcode 14.3运行了老项目,结果一切正常!这差点给我整不会了。找到老项目中的Podfile文件,发现已经有设置第三方库部署目标的iOS版本:

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '9.0'

🤔️咦,难道iOS 9.0系统就已经内置了ARC相关的库?

先试试将9.0改为8.0,执行pod install命令后重新运行项目,结果报错。将8.0恢复为9.0,再做一次测试,执行pod install命令后手动修改某个库的部署目标为8.0,重新运行项目,不出意外还是报错,而且就剩刚才改过部署目标的库在报错。实测将8.0改为iOS 8的最后一个版本8.4.1还是报错。

综上,由于Xcode 14.3版本移除了ARC相关的库,从而导致一些默认部署目标是iOS 8版本的第三方库出现报错。只要最低部署目标不低于iOS 9版本,运行项目时就不会去链接ARC相关的库,也就不会出现找不到库的报错。

  • 如果应用最低部署目标大等于iOS 9版本

Podfile文件中加上:

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.0'

11.0版本不是固定的,首先肯定要大于9.0版本,其次也不能高于应用最低部署目标版本,然后太低也可能会低于一些第三方库的部署目标版本,所以尽可能和应用最低部署目标版本保持一致即可。

2023/04/09更新:修改Podfile文件后需要重新执行pod install命令使改动生效。

  • 如果应用最低部署目标小于iOS 9版本

这种老项目应该很少了吧,如果真的是属于这种情况,又不想升最低部署目标版本,建议从以下方法任选一种:

  1. 下载arc目录解压后复制到指定目录路径:
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib
  2. Xcode使用14.3以下版本,Xcode历史版本官方下载(需要登录)

2023/04/08更新:如果用Xcode 14.3版本打包项目出现报错,可以参考这篇文章iOS问题记录 - Xcode 14.3版本打包项目报错

补充内容(Xcode 15.0)

升级Xcode 15.0后,有个项目运行时遇到了崩溃问题:

Thread 1: EXC_BAD_ACCESS (code=1, address=0x0)

经测试,初步可知iOS 17.0以下版本都会有这个崩溃问题。在网上搜索到了类似的问题,应该是Xcode 15.0的兼容性有点问题。

暂时不确定Xcode后续会不会修复这个问题,但是这里有一个临时解决方法,将第三方库部署目标的iOS版本提高到Xcode 15所支持的最低部署目标版本iOS 12

Podfile文件中设置:

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '12.0'

同时最好也将应用最低部署目标设置为iOS 12版本:

如果这篇文章对你有所帮助,点赞👍收藏🌟支持一下吧,谢谢~

本篇文章由@crasowas发布于CSDN。

file not found: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphonesimulator.a/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphoneos.a
Xcode适配可以调试、编译、运行、打包系统版本号为iOS 14.3 版本的设备,解决"Could not find Developer Disk Image"问题 使用详情 请前往https://blog.csdn.net/u010731949/article/details/52576792
问题描述: 引入了一个新的cocoapods依赖之后,启动运行,显示Fail,报错File not found: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphonesimulator.a. 找不到文件:/Applications/X...
Xcode升级到iOS15以后发现无法创建category了,现已找到解决方案供大家参考。 这是由于Xcode15缺少了"CategoryNSObject"和"ExtensionNSObject"两个文件夹导致的,解决办法就是将这两个加进去就好了。 如果你有旧的Xcode项目,可以去旧的Xcode项目中复制。 路径为:/Applications/Xcode.app/Contents/Developer/Library/Xcode/Templates/File Templates/MultiPlatform/Source/Objective-C File.xctemplate 当然,你也可以从附件中下载这两个文件,放到上面的文件夹里 ———————————————— 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 原文链接:https://blog.csdn.net/u012930828/article/details
适用于iOS的信号量CI 此示例iOS应用程序包括一个完全配置的CI管道,演示了如何使用为iOS应用程序构建,测试和生成App Store屏幕截图。 该项目需要Xcode 11,并使用SwiftUI用Swift 5.1编写。 运行示例应用程序并在本地进行测试 要运行示例应用程序,请分叉该存储库并在本地克隆它。 打开TallestTowers.xcodeproj ,选择一个已安装的模拟器,然后从“产品”菜单中选择“运行”或按⌘R。 该项目还包括单元测试和UI测试。 要在本地运行所有测试,请从“产品”菜单中选择“测试”或按⌘U。 设置代码签名 在真实设备或Semaphore上运行示例应用程序之前,您需要配置代码签名。 首先,您将需要配置Xcode项目以使用您的开发团队。 打开TallestTowers.xcodeproj并为每个TallestTowers , TallestTowersTests , TallestTowersUITests和TallestTowersScreenshots目标设置开发团队,如下所示: 在项目导航器中选择TallestTowers项目。 切换到“签
iOS10 适配-Xcode8 问题解决: IOS开发者,系统版本的更新,必定要跟着更新,不然有些功能不知道,开发的时候对可以体验,大打折扣了。 前段时间升级了Xcode8,整体来说对OC的影响不大,但是还是跳一个坑,消耗了不少时间。这里总结下遇到的适配问题。 1、权限问题   Xcode8 访问相机、相册等需要权限的地方崩溃   解决办法:   在使用私有权限时,添加Info.plist文件中添加配置: 下面是各种key,需要哪个添哪个   NSBluetoothPeripheralUsageDescription   NSCalendarsUsageDescription   NSCa
This package includes audio, graphics, hardware I/O, and other auxiliary tools. These tools include AU Lab, OpenGL Driver Monitor, OpenGL Profiler, Pixie, Quartz Debug, CarPlay Simulator, HomeKit Accessory Simulator, IO Registry Explorer, Network Link Conditioner, PacketLogger, Printer Simulator, 64BitConversion, Clipboard Viewer, Crash Reporter Prefs, Dictionary Development Kit, Help Indexer, and Modem Scripts.
Xcode 14.3是一个开发工具,用于编写、调试和部署iOS、iPadOS、tvOS、watchOS和macOS应用程序。它包括Swift 5.8和适用于不同操作系统版本的软件开发工具包(SDK)。Xcode 14.3还支持在iOS 11及更高版本、tvOS 11及更高版本和watchOS 4及更高版本上进行设备调试。要使用Xcode 14.3,需要在运行macOS Ventura 13.0或更高版本的Mac上安装。如果您对深入学习Xcode感兴趣,还有很多知识需要继续学习和探索。您可以查阅相关教程和文档来了解更多关于Xcode 14.3的用法和功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Apple Xcode 14.3 (14E222b) 正式版发布下载](https://blog.csdn.net/netgc/article/details/130083854)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [IOS开发入门之Xcode使用教程详细讲解(全)](https://blog.csdn.net/qq_38432165/article/details/87901488)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
Android问题记录 - Unable to make field private final java.lang.String java.io.File.path accessible(持续更新) 45466