ARCHS[@]:Xcode 12 中未绑定的变量

Ale*_*lex 15 ios swift xcode12

我们的 iOS 项目在 Xcode 11 中成功构建。 但是,在 Xcode 12 上,它显示如下错误:

PhaseScriptExecution [CP]\ Embed\ Pods\ Frameworks/Users/NgoHoangLien/Library/Developer/Xcode/DerivedData/BeneKitten-asctqxwawireafgebpjujkfxjvcg/Build/Intermediates.noindex/BeneKitten.build/Debug-iphoneos/BeneKitten\Dev.build/BeneKitten\Dev.build/BeneKitten/DerivedData/BeneKitten-asctqxwawireafgebpjujkfxjvcg .sh(在项目“BeneKitten”的目标“BeneKitten Dev”中) cd /Users/NgoHoangLien/Project/Benekitten-iOS /bin/sh -c /Users/NgoHoangLien/Library/Developer/Xcode/DerivedData/BeneKitten-asctqxwawireafgebpjujkfxjvcg /Intermediates.noindex/BeneKitten.build/Debug-iphoneos/BeneKitten\\ Dev.build/Script-6F989132ECCA2B13FEF9458F.sh

发送 1868986 字节接收 70 字节 3738112.00 字节/秒总大小为 1868525 加速为 1.00 /Users/NgoHoangLien/Project/Benekitten-iOS/Pods/Target Support Files/Pods-BeneKitten Dev/Pods-BeneKitten line Dev-frameworks. : ARCHS[@]: 未绑定变量命令 PhaseScriptExecution 失败,退出代码非零。

我按照互联网上的指南为 EXCLUDED_ARCHS 制作了“arm64”。删除 VALID_ARCHS。但它仍然无法编译。希望各位高级工程师,像你们这样的专家能帮帮我。

She*_*epa 27

我在我的React Native应用程序中遇到了这个错误,终于找到了问题并解决了。

  • 最初,我在Build Settings -> Architectures -> Exclusion Architecture中为所有 4 个添加了 arm64 。这是我的问题。 错误配置

  • 但应该是这样的。仅适用于调试和发布状态下的 任何 iOS 模拟器 SDK 。正确配置

然后我的错误修复了。

我想这会对你有帮助。快乐编码!


Nik*_*Kov 11

在我们的例子中,我们需要将 x86_64 添加到 VALID_ARCHS 以在模拟器上构建。 在此输入图像描述


小智 11

就我的 Xcode 13.1 而言,这就是我所做的:

  1. 构建设置->仅构建活动架构->调试->(项目和 pods 项目)
  2. 在项目和 pods 项目的构建设置中删除“排除的架构”中的“arm64” 。

我在真实设备上运行,如果您尝试使用模拟器,您可能需要执行相反的操作


Kar*_*430 11

这里的所有答案对于您的项目来说可能都是错误的,并且有可能破坏您的项目。仅当所有 pod 都使用 xcframework 并准备好使用 arm64 模拟器架构时,您才能完全删除排除的架构。

正确的答案是直接从“调试”和“发布”右侧删除排除的架构,并仅针对“任何 iOS 模拟器 SDK”为排除的架构添加 arm64:

在此输入图像描述

直接将arm64作为排除架构添加到“调试”和“发布”右侧,将为物理iOS设备排除arm64,而所有物理iOS设备都是arm64,因此无法打包构建。


Har*_*ngh 10

注意:- React Native 开发人员 在浪费了几个小时之后,唯一对我有用的解决方案是

打开 VSCode 并转到目录 ios/App/App.xcodeproj/project.pbxproj 该文件并执行搜索EXCLUDED_ARCHS

EXCLUDED_ARCHS = arm64; 
Run Code Online (Sandbox Code Playgroud)

并删除包含EXCLUDED_ARCHS 的每一行

  • 如果没有找到 EXCLUDED_ARCHS = arm64; 在 VSCode 和 ios/App/App.xcodeproj/project.pbxproj 中,然后在 Xcode 中打开项目,然后在 Xcode 中搜索并删除包含 EXCLUDED_ARCHS 的整行。 (2认同)

Sun*_*rge 9

您可以尝试以下步骤:

  1. 在 Main Project(Not TARGETS) 中,转到 build settings 并在里面添加Simulator-iOS 14.0 SDKvalue并对项目重复相同的操作。arm64Excluded ArchitecturePod
  2. VALID_ARCHS从你的主项目和 Pod 项目中删除。(你可以在编辑器中打开项目文件来删除它)[你已经这样做了吗?]
  3. 将所有 Pod 升级到可用的最新版本。

最后,清理项目并重新构建。

  • @PersianBlue “VALID_ARCHS” 应该位于 **Xcode 12** 项目的“构建设置”底部的“用户定义”部分中。但此“VALID_ARCHS”设置仅适用于使用 Xcode 11 及更低版本创建的项目;因此,如果您在 Xcode 12 项目中没有找到它,没关系,您没有它。前者被“EXCLUDED_ARCHS”设置取代。(有关此内容的更多信息,请参阅 [Xcode 12 发行说明的构建系统弃用部分](https://developer.apple.com/documentation/xcode-release-notes/xcode-12-release-notes#Build-System) ) (2认同)

Shi*_*jaj 7

对于 Xcode 12.3,当没有 VALID_ARCHS 属性时,请按照以下步骤操作:

  1. 构建设置 ->仅构建活动架构-> 调试 -> 是
  2. 项目和 pods 项目的构建设置中的“ Excluded Architectures ”中添加“ arm64 ” ,以在模拟器中运行应用程序。在设备上进行构建或归档应用程序时将其删除。

  • 这对我有用!为什么需要这样做? (2认同)

小智 7

确保在您的项目 -> 构建设置 -> 排除的架构和 Pods -> 构建设置 -> 排除的架构中

相同的价值观。

就我而言,这个肥皂是由于项目架构是arm64,但在Pods中什么都没有

如果您启动存档或在真实设备上安装,只需从排除架构中删除arm64


小智 6

在此输入图像描述

您需要打开此页面并删除其中排除的架构debugrelease部分(如果是默认arm64删除它!)

  • 清理你的项目(cmd + shift + k)
  • 清理派生数据(dev.cleaner)
  • 并重新启动你的Mac