缺少文件 libarclite_iphoneos.a (Xcode 14.3)

Jus*_*n A 384 xcode ios xcode14

安装 Xcode 14.3 后,以便在我的 iOS 16.3 iPhone XS上运行我的应用程序。我收到以下错误:

找不到文件:/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphoneos.a

我该如何修复它?

小智 405

将以下代码添加到 Podfile 中。这个对我有用。版本 14.3 beta 2 (14E5207e)

post_install do |installer|
    installer.generated_projects.each do |project|
        project.targets.each do |target|
            target.build_configurations.each do |config|
                config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.0'
            end
        end
    end
end
Run Code Online (Sandbox Code Playgroud)

  • 这个解决方案对我有用。我仅将 IPHONEOS_DEPLOYMENT_TARGET 设置为 11.0,而不是 13.0。我在 macOS Ventura 13.3 上使用 Xcode v14.3。确保在 podfile 上输入给定代码后再次运行 pod install。^_^ (13认同)
  • 这对我的 flutter 应用程序很有用!我将目标更改为11。Xcode 14.3,Flutter 3.7.7,在iPhone 14 Pro Max模拟器上进行测试。今天这个错误似乎是突然出现的。 (3认同)
  • [最新 Flutter 版本 (3.3.10)](https://github.com/flutter/flutter/issues/123890#issuecomment-1498164468) 包含修复!无需再搞乱“Info.plist”了。 (3认同)

Edi*_*ins 258

打开终端并转到以下文件夹:

\n
cd /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/\n
Run Code Online (Sandbox Code Playgroud)\n

创建文件夹 “arc”:

\n

转到System Preferences \xe2\x86\x92 Security & Privacy \xe2\x86\x92 Full Disk Access \xe2\x86\x92 Terminal,然后执行以下操作:

\n
sudo mkdir arc\ncd  arc\nsudo git clone https://github.com/kamyarelyasi/Libarclite-Files.git .\n
Run Code Online (Sandbox Code Playgroud)\n

授予必要的权限:

\n
sudo chmod +x *\n
Run Code Online (Sandbox Code Playgroud)\n

现在您将能够构建和运行,但不能存档。

\n

要解决此问题,请执行以下步骤:

\n

在 Xcode 中,导航至:

\n
    \n
  • Pods \xe2\x86\x92目标支持文件\xe2\x86\x92 Pods-Runner 或 Pods-App

    \n
  • \n
  • 打开文件Pods-Runner-frameworks.shPods-App-frameworks.sh

    \n
  • \n
  • 找到该行:source="$(readlink "${source}")"

    \n
  • \n
  • 将其替换为:source="$(readlink -f "${source}")"

    \n
  • \n
\n

然后...存档

\n

在此输入图像描述

\n

  • 我想指出的是,从 GitHub *root* 提供随机文件和可执行权限并不是一个好主意 (46认同)
  • 谢谢,只需将克隆文件从 Libarclite 文件夹( /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/ )移动到父文件夹(在 lib 文件夹中),然后授予它权限。 (2认同)
  • @MuhammadShahzad 我在某处读到该声明是 pod 路径正在更新,因此 pod 在旧路径上不可读,这就是发生这种情况的原因。 (2认同)

小智 174

您可以手动修改第三方框架的最低部署版本。

例如:iOS 8.0 --> iOS 11.0

显示 Xcode 中设置菜单的图像。 在左侧,选择“Pods”。 然后,选择“常规”。 在屏幕中央,标题为“最小部署”的下拉菜单突出显示,当前设置为 iOS 8.0。

  • 对我来说,我的 FMDB 依赖项需要更新到 11.0。然后一切正常了。 (5认同)

Ngu*_*Dat 74

其实,其他答案都是正确的,但对于业余爱好者来说,还是很难弄清楚。

iOS 似乎停止支持 iOS 8,因此最低版本应该是 11.0。

升级 iOS 有两种方法:

  1. 手动更新最低部署为 11.0 的所有目标。

    在此输入图像描述

    它会完美地工作,但很累,所以......

  2. 调整 pod 代码以强制所有目标的最低部署版本为 11.0。

    在此输入图像描述

     post_install do |installer|
         installer.generated_projects.each do |project|
               project.targets.each do |target|
                   target.build_configurations.each do |config|
                       config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '12.0'
                    end
               end
        end
     end
    
    Run Code Online (Sandbox Code Playgroud)

    请记住清理并取消集成 pod,然后重新安装。

     cd [project directory]
     pod deintegrate
     pod clean
     pod install
    
    Run Code Online (Sandbox Code Playgroud)

  • “pod clean”不再存在 (5认同)

小智 71

post_install do |installer|
    installer.generated_projects.each do |project|
        project.targets.each do |target|
            target.build_configurations.each do |config|
                config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.0'
            end
        end
    end
    installer.pods_project.targets.each do |target|
        flutter_additional_ios_build_settings(target)
    end
end
Run Code Online (Sandbox Code Playgroud)

这是 podfile 的正确代码。

  • 我希望我的应用程序支持至 iOS 11,这会影响吗? (2认同)

mrg*_*t96 36

post_install我将Podfile 中的更新为:

\n
post_install do |installer|\n  installer.generated_projects.each do |project|\n    project.targets.each do |target|\n      target.build_configurations.each do |config|\n        config.build_settings[\'IPHONEOS_DEPLOYMENT_TARGET\'] = \'13.0\'\n      end\n    end\n  end\n\n  installer.pods_project.targets.each do |target|\n    flutter_additional_ios_build_settings(target)\n  end\nend\n
Run Code Online (Sandbox Code Playgroud)\n

此外,我还将最小部署设置为 13 ( Runner \xe2\x86\x92 Targets \xe2\x86\x92 Runner ):

\n

Xcode 目标最低部署目标

\n

之后,我通过在终端中运行以下命令来更新项目的 Pod:

\n
cd ios;\n\n# Remove the pods\npod deintegrate;\n\n# Remove the Podfile.lock\nrm -f Podfile.lock;\n\n# Installs the pods\npod install --repo-update;\n
Run Code Online (Sandbox Code Playgroud)\n

尝试从 IDE 运行该应用程序;现在应该可以了。

\n

如果您仍然遇到问题,请尝试清理 Xcode 中的构建文件夹并在 Xcode 中运行应用程序。

\n

Xcode 清理构建文件夹

\n

从 Xcode 成功运行应用程序后,返回 IDE,您将能够运行该应用程序。

\n

  • 这可行,但现在我无法构建 xcarchive 或 ipa。你对此有什么解决办法吗?谢谢你的回答顺便说一句 (6认同)

小智 28

更新

该答案也适用于本主题中的问题

旧答案

这对我有用。

cd /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/

sudo mkdir arc

# While executing the above command, the OS will block it
# and give an error. Allow permission from the settings
# and run the command again.

cd arc
sudo git clone https://github.com/kamyarelyasi/Libarclite-Files.git .
Run Code Online (Sandbox Code Playgroud)

您可能还需要运行此命令:sudochmod +x *


Swi*_*ing 25

从 Xcode 14.3 开始,您必须将所有 Pod 设置为 iOS 11 的最低部署目标。然后它就会起作用。

  1. 在项目导航器中导航到 [Pods] 项目。
  2. 选择其下的“每个”目标并执行下面的步骤 3。
  3. 在下拉列表中将最低部署目标更改为iOS 11版本。


Dev*_*B2F 16

更新到 XCode 14.3 后,我收到了与问题中所述相同的错误消息。就我而言,这是显示的 Pod 中的错误。我的项目是一个本机 iOS 应用程序,似乎没有像其他人的答案那样抖动。

以下对我有用:

  1. 通过添加 来注释掉 Podfile 中的所有 pod # in front of each pod
  2. 关闭 XCode。
  3. 运行pod install(将删除所有 Pod)。
  4. 再次在 XCode 中打开xcworkspace项目并进行清理 ( command-shift-k)。
  5. Uncomment pods在 Podfile 中并在 Podfile 的最后一个结尾之前添加此内容 ( change 11.0 to the minimum version you want to support):
post_install do |installer|
    installer.generated_projects.each do |project|
        project.targets.each do |target|
            target.build_configurations.each do |config|
                config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.0'
            end
        end
    end
end
Run Code Online (Sandbox Code Playgroud)
  1. 关闭 XCode。
  2. 运行 Pod 安装。
  3. 在 XCode 中打开 xcworkspace 项目,错误应该消失了。


Dav*_*d_E 16

来自 Flutter 团队。

无需解决方法,只需将 Flutter 更新到最新版本3.7.11并在您的项目中运行flutter upgrade,就可以了。

https://github.com/flutter/flutter/issues/124433

刚刚在我的 Flutter 项目中进行了测试,我可以确认我可以构建并存档 xcode 项目


Ume*_*qas 14

以下是分步说明,包括图像链接:

  1. 打开 Web 浏览器并转到以下 URL: https: //github.com/kamyarelyasi/Libarclite-Files

  2. 在 GitHub 页面上,您将看到文件列表。找到名为libarclite_iphonesimulator.a.

    GitHub 文件

  3. 单击文件名 ( libarclite_iphonesimulator.a) 将其打开。

  4. 在文件页面上,单击“下载”按钮将文件下载到您的计算机。选择合适的位置来保存文件。

  5. 下载完成后,libarclite_iphonesimulator.a在计算机上找到下载的文件 ( )。

  6. 打开 Mac 上的 Finder 应用程序。

  7. 在菜单栏中,单击“前往”,然后从下拉菜单中选择“前往文件夹”。

  8. 在“转到文件夹”对话框中,输入以下路径并单击“转到”按钮: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/

    转到文件夹

  9. 如果arc指定路径中不存在该目录,请右键单击 Finder 中的“arc”文件夹,然后从上下文菜单中选择“新建文件夹”。将新创建的文件夹重命名为“arc”。

  10. 现在,找到下载的文件 ( libarclite_iphonesimulator.a) 并复制它。

  11. 返回到包含该arc目录的 Finder 窗口。

  12. 右键单击arc目录中的空白区域,然后从上下文菜单中选择“粘贴项目”。这会将复制的文件 ( libarclite_iphonesimulator.a) 粘贴到arc目录中。

  13. 成功复制文件后,您就完成了下载文件并将文件复制libarclite_iphonesimulator.a到指定位置的过程。


小智 13

只需在以下路径中创建一个名为“arc”的文件夹:

/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/

下载此存储库的内容并将其粘贴到您刚刚创建的文件夹中,然后再次构建。

https://github.com/kamyarelyasi/Libarclite-Files


dev*_*ton 12

我花了几个小时,发现了问题。Xcode 版本为 14.3。

我尝试了上述建议(更新你的 podfile)并且它有效,但问题是你无法构建IPA文件或 XCArchives。

这是我在我的案例中所做的:

  1. 我在这里下载了 Xcode 版本 14.2 https://xcodereleases.com/

  2. 只需将命令行工具设置为 Xcode 14.2

PS:为了确保安全,请先运行通常的命令:

flutter clean && flutter pub get
Run Code Online (Sandbox Code Playgroud)

有了这个,我就能够构建和创建 XCArchives。我希望这对其他 Flutter 开发者有所帮助!

Xcode 设置


pro*_*mer 11

如果您使用 Swift/Objective-C,则无需采取进一步操作,除了:

  1. 在项目导航器中导航到[Pods]项目。
  2. 选择其下的“每个”目标并执行下面的步骤 3。
  3. 将“最小部署”值更改为下拉列表中的最低可用版本。避免手动输入版本

在此输入图像描述

此后,从产品菜单中清除构建文件夹,希望您能够成功构建项目。


dr_*_*rto 10

tl;dr:更改部署目标而不降级 pod

这里的很多答案都是关于Cocoapods钩子IPHONEOS_DEPLOYMENT_TARGET中的更新。post_install我必须稍微调整这个解决方案,因为我的项目使用已经具有更高部署目标的 Pod,并且提供的解决方案会降级它们,导致它们的构建中断(例如,当 Pod 使用较新的 API 时)。

所以这是我的修补方法,仅在部署目标太低时才更改:

post_install do | installer |
  installer.generated_projects.each do |project|
    project.targets.each do |target|
      target.build_configurations.each do |config|
        if config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'].split('.').first.to_i < 11
          config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.0'
        end
      end
    end
  end
end
Run Code Online (Sandbox Code Playgroud)


Jus*_*n A 9

我解决了这个问题。我必须将导致错误的 Pod 模块的部署目标增加到 iOS 15.0。至少,这对我有用。


Kud*_*dos 9

我的系统:MacBook Pro M1

代码:14.3


要解决此问题,您必须确保 pod 的 iOS 部署目标为11.0;iOS 部署目标为 8.0 的 Pod导致了我的问题。

示例:设置为 iOS 部署目标 8.0 的 pod:leveldb-library、nanopb。

对于构建时设置为 8.0 的任何 pod,您都会收到此错误,因此请手动或使用 Podfile 中的安装后脚本将其更改为 11.0。

  • 对我来说完美的工作。 (2认同)