首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Xcode警告:应用程序可执行文件包含不受支持的体系结构:arm,arm(-19031)

Xcode警告:应用程序可执行文件包含不受支持的体系结构:arm,arm(-19031)

这个警告是由Xcode编译器发出的,它表示应用程序的可执行文件包含了不受支持的体系结构。具体来说,这个警告是指应用程序的可执行文件中包含了arm和arm64两种体系结构,而Xcode只支持其中一种体系结构。

体系结构是指计算机系统中处理器的设计和组织方式。在移动设备中,常见的体系结构有arm和arm64。arm是一种32位的体系结构,而arm64是一种64位的体系结构。不同的设备可能采用不同的体系结构。

这个警告通常出现在开发者在编译应用程序时选择了错误的体系结构或者使用了不兼容的库文件。为了解决这个问题,我们可以按照以下步骤进行操作:

  1. 检查项目的Build Settings,确保选择了正确的目标设备和体系结构。可以在Xcode的项目设置中找到Build Settings,然后搜索"Architectures"和"Valid Architectures"相关的设置项,确保选择了适合目标设备的体系结构。
  2. 检查项目中使用的第三方库文件是否支持当前选择的体系结构。如果某个库文件不支持当前选择的体系结构,可以尝试更新该库文件或者选择其他兼容的库文件。
  3. 如果以上步骤都没有解决问题,可以尝试清理项目并重新编译。可以在Xcode的菜单栏中选择Product -> Clean Build Folder来清理项目。

总结起来,Xcode警告"应用程序可执行文件包含不受支持的体系结构:arm,arm(-19031)"表示应用程序的可执行文件中包含了不受支持的体系结构。为了解决这个问题,我们需要检查项目的Build Settings,确保选择了正确的目标设备和体系结构,并且确保使用的第三方库文件支持当前选择的体系结构。如果问题仍然存在,可以尝试清理项目并重新编译。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何创建可在 Apple 自研芯片和基于 Intel Mac 机上运行应用程序

前言 原生应用程序比转换应用程序运行效率更高,因为编译器能够针对目标架构来优化代码。如果一个应用程序支持 x86_64 架构,那必须在 Apple 芯片上 Rosetta 转换下运行。...通用二进制文件本身就可以在 Apple 芯片和基于 Intel Mac 机上运行,因为它包含了两种架构可执行代码。 以下列表包含了最通用可执行文件类型,它们可以转换为通用二进制文件。...Xcode12 早期版本 Xcode包含构建和测试 macOS 代码通用版本所需支持。...更新 Xcode 工程架构列表 Xcode 12 及更高版本会自动将 arm64 架构添加到所有 macOS 二进制文件(包括应用程序和库)标准架构列表中。...通用 macOS 应用程序支持 arm64 和 x86_64 体系结构,以下示例显示了如何为这些架构编写条件代码: #if arch(arm64) // Code meant for the arm64

2.2K30

现今 Swift 包中二进制目标

这意味着如果要同时支持 M1 macs (arm64) 和 Linux arm64 机器,上面的胖二进制方法将不起作用 —— 请记住,二进制不能包含具有相同架构多个切片。...不,因为它们在 Linux 操作系统上不受支持!...工件包(Artifact Bundles) 是包含 工件 目录。这些工件需要包含支持架构所有不同二进制文件。...如果您不熟悉 目标三元组[18],它们是一种选择构建二进制文件架构方法。请注意,这不是 主机(构建可执行文件机器)体系结构,而是 目标 机器(应该运行所述可执行文件机器)。...如果你需要创建一个插件并运行一个可执行文件,你应该将其嵌入为一个工件包,其中包含适用于不同支持架构二进制文件。

1.9K20
  • 研究发现首个针对Apple M1芯片Mac恶意软件

    但是去年,苹果为Mac系列推出了自己ARM硅处理器,以期实现更好技术集成,速度和效率。具体来说,M1支持ARM64指令集体系结构。...沃德尔认为:“今天,我们确认恶意攻击者的确在设计多体系结构应用程序,这类恶意代码将在M1系统上进行本地运行。恶意GoSearch22应用程序可能是这种本地M1兼容代码第一个案例。”...M1 Macs可以借助Rosetta动态二进制翻译器运行x86软件,转换为本机ARM64指令,以便较旧应用程序可以在M1系统上无缝运行。...如果可执行文件包含Intel指令,则macOS会自动启动Rosetta并开始翻译过程。然后,系统启动翻译后可执行文件来代替原始文件。...沃德尔警告说,“(静态)分析工具或杀毒引擎可能会与ARM64二进制文件发生冲突,与Intel x86_64版本相比,知名安全软件检测结果准确性下降了15%” GoSearch22恶意软件可能不是全新或高风险

    1.5K20

    【FFmpeg】编译不同平台 FFmpeg 源码 ( 本地编译 与 交叉编译 | FFmpeg 指定目标平台编译配置参数 | 配置目标 CPU 架构 | 配置目标操作系统 )

    : Windows 平台 , Linux 平台 , MacOS 平台 , Android 平台 ; 跨体系结构 指的是 不同 CPU 架构 , 如 : x86 架构 , arm 架构 , x86_64...架构 , arm64 架构 ; " 本地编译 " 编译器 和 编译工具链 与 本地系统 体系结构 和 操作系统相匹配 , 编译过程简单直接 , 无须配置交叉编译相关选项 , 编译出来 可执行文件..." 是 在 本地系统 上 编译生成 适用于 另外一种 不同体系结构或操作系统 可执行文件 和 函数库 ; 交叉编译 使用场景 : 嵌入式系统 移动开发 跨平台开发 " 交叉编译 " 需要考虑 不同平台之间差异..., -isystem 指定路径会被编译器认为是系统头文件路径 , 编译器在编译时会忽略警告信心 ; 二、FFmpeg 指定目标平台编译配置参数 1、FFmpeg 交叉编译配置回顾 这是在 【Android...版 --extra-cflags="$FLAGS" \ // 额外编译选项 , 用于设定 gcc 编译器其它编译选项 --arch=arm \ // 指定目标体系结构ARM --target-os

    1.2K00

    CoreHook:基于.NET Core运行时实现Windows HOOK库

    支持平台 CoreHook支持在运行Windows各种体系结构上进行应用程序函数调用拦截。还计划了Linux和macOS支持。...该runtimeconfig文件必须包含用于在目标应用程序中托管.NET Core框架信息。构建任何.NET Core应用程序时,会将这些文件生成到输出目录。有关配置选项更多信息,请参见此处。...Windows 10物联网(ARM) Raspberry Pi本身仅作为部署目标受支持,但也有不受支持SDK版本。按照此链接阅读有关发布过程更多信息。...然后,您可以将该文件夹复制到您设备并启动该CoreHook.FileMonitor.exe程序。 发布脚本 PowerShell脚本publish.ps1允许您将示例发布为自包含可执行文件。...\publish -example win32 -runtime win10-arm 将创建一个名为Publish/win32/win10-arm/包含该CoreHook.FileMonitor

    1.7K20

    iOS_Apple 指令集

    (macOS) 05-21年间交付所有Intel Mac体系结构 64位 Intel 处理器 iOS7.0开始可用 iOS11放弃支持32位应用,Modern Objective-C Runtime...未在32位上受支持,是ARC模式支持先决条件 ARM处理器和Intel处理器区别 ARM处理器:使用精简指令集(RISC) Intel处理器:使用复杂指令集(CISC) ARM处理器指令集 ARM指令集...Architectures ​ 表示项目编译时候支持指令集集合,如果设置多个architecture,则编译出二进制数据包及ipa包 会包含多个指令集代码,体积会变大。...交集 确定最终数据包包含指令集代码。 ​...Xcode 12 已弃用,不再包含此设置,不鼓励使用它。而是有一个新Excluded Architectures(EXCLUDED_ARCHS)代替。

    1.1K20

    Golang - 从源码到二进制:探索在国产CPU架构上交叉编译Minio方法

    在编译过程中,编译器会根据目标平台架构和操作系统生成相应机器码。 链接生成可执行文件: 编译完成后,使用交叉链接器将编译生成目标文件链接成可执行文件。...Go 交叉编译 (跨平台编译) Go 支持所有操作系统和体系结构组合 Go 中 GOARCH 环境变量用于指定目标体系结构(Architecture),具体取决于要编译目标平台。...列出 Go 支持所有操作系统和体系结构组合 [root@VM-24-3-centos ~]# go tool dist list aix/ppc64 android/386 android/amd64...Go 支持所有操作系统和体系结构组合。...)是定义了应用程序与操作系统、库之间交互规范。

    52500

    iOS强化 : 熟悉 Mach-O 文件

    3、通用二进制应用程序通常比单一平台二进制程序大,因为需要存储多种代码。 4、由于多种架构之间有共通非执行资源,所以并不会比单一架构两倍大。...我们再实际开发中遇到设置 arm64 & armv7 这些都是对应架构: 名称 注释 arm64 真机64位处理器需要arm64架构(iphone6,iphone6p以上真机) armv7s 真机...i386 模拟器32位处理器 (iphone5,iphone5s以下模拟器) Tips: 在 Xcode 中设置 Arhitectures,Debug 属性设置为 NO 时候,会编译支持所有架构版本...(关于 Xcode 环境配置,有不清楚同学可以看这里:Xcode 多环境配置) ⚠️ 这里还有一点要注意:测试时候,如果工程只包含一种架构,此时要手动添加其他架构。...我们可以通过 file 指令,也可以通过 lipo -info 指令查看二进制文件支持架构: ? ? 可以看到,目前 test 可执行程序支持 arm64 和 arm_v7 两种架构。

    1.2K40

    APP生成与运行(一)

    接着在后端(back-end)使用LLVM编译成平台相关机器语言 。Clang支持C、C++、Objective C。...在这个过程中,会进行类型检查,如果发现错误或者警告会标注出来在哪一行。...编译器优化 LVVM优化器会进行BitCode生成,链接期优化等等 编译器后端 LLVM机器码生成器会针对不同架构,比如arm64等生成不同机器码 四、Xcode执行Build流程 dSYM...在App crash时候,第三方工具(Fabric,友盟等)会帮我们抓到崩溃调用栈,调用栈里会包含crash地址调用信息。然后,通过dSYM文件,我们就可以由地址映射到具体函数位置。...这样做,可以只编译当前版本,比如arm7/arm64等等,记得只开启Debug模式。这个选项在高版本XCode中自动开启了。 Debug模式下,关闭编译器优化

    1.1K10

    免越狱调试与分析黑盒iOS应用

    签名与重打包 有了解密应用程序,接下来要做就是对其进行重打包从而注入我们代码了。 在重打包之前,可以先查看一下原APP签名信息。...但是有助于我们了解目标应用程序。...如果是第一次启动,会提示不受信任开发者,安装提示允许即可正常运行。 注入代码灵魂 现在我们已经验证了重打包应用可行性,接下来就要开始做点有用事情了。...(for architecture arm64): Mach-O 64-bit dynamically linked shared library arm64 但是一般只需要支持armv7即可,因为iOS...] 重打包 将libtest.dylib拷贝到ipa,并注入到可执行文件中,参考上面简单重打包方法, 对最后ipa进行重新打包签名。

    1.7K40

    ARM Neon Intrinsics 学习指北:从入门、进阶到学个通透

    例如,笔者进行项目需要兼容新旧手机,且当前只能集成ARMv7a(新旧手机均能运行,即图中v7)架构so库,而Aarch64(仅新手机支持,即图中A64)架构so库尚不支持。...启用Neon 关于在iOS开发中启用Neon(Xcode,尝试版本为12.3):笔者尝试过将AndroidNDK代码迁移至iOS,在不修改Xcode任何设置情况下,arm_neon.h可找到,编译可通过...,那说明Xcode默认打开了Neon启用开关,写就完事了。...---- 2 进阶 2.1 与Neon相关ARM体系结构 利用指令集加速,无一例外地要利用专用寄存器这种在CPU上稀少、宝贵资源。...ncnn实现算子包含普通实现(无针平台加速)和针对3种平台(arm/vulkan/x86)指令集加速实现(注:可能有的算子有普通实现,但没有平台加速实现,毕竟做加速实现还是比较耗费精力,致敬nihui

    4.5K41

    Vitis指南 | Xilinx Vitis 系列(一)

    在Vitis环境中,您需要调用Arm交叉编译器以构建主应用程序代码,并调用Vitis编译器以构建硬件内核。您为主机(.elf)创建一个可执行文件,为硬件内核(.xclbin)创建一个映像。...平台创建者需要提供一个sysroot,以便通过OpenCL包含文件和库交叉编译到Arm 核心。在主机编译期间,您将需要使用适当标头。...与处理器体系结构相比,在Xilinx器件中包含可编程逻辑(PL)架构结构在应用程序执行中实现了高度并行性。...Vitis核心开发套件应用程序体系结构 目标平台包含FPGA加速内核,全局存储器以及用于存储器传输直接存储器访问(DMA)。内核可以具有一个或多个全局存储器接口,并且是可编程。...例如,存在不支持构造,包括:系统函数调用,动态内存分配和递归函数。有关更多信息,请参见《Vivado Design Suite用户指南:高级综合(UG902)》中不受支持C构造” 。

    1.9K20

    第4阶段——制作根文件系统之编译配置安装busybox(3)

    (2)init进程程序(也就是busybox,因为init程序位于busybox中) (3)/etc/inittab(用于init进程读取配置, 然后执行inittab里指定应用程序) (4)应用程序...(被inittab配置文件调用应用程序) (5)C库(glibc,被应用程序调用C库函数,比如:printf,strcmp,fopen等) 本节目的: 编译配置busybox (因为制作最小根文件系统需要...因为使用库函数glibc时,如果静态编译busybox,会出现很多警告信息: ? 库函数glibc需要放在/lib目录下 3.3 选择tar命令: ?...原因是 busybox-1.7.0顶层目录下Makefile没有使用交叉编译”arm-linux-” 在Makefile中添加”arm-linux-”: ?...从上图看出共有3个目录和1个linuxrc文件,其中 bin包含用户工具,包括了大部分命令,该子目录下所有文件指向busybox sbin目录包含操作系统工具,同样也指向busybox。

    1.6K50

    第4阶段——制作根文件系统之编译配置安装busybox(3)

    (2)init进程程序(也就是busybox,因为init程序位于busybox中) (3)/etc/inittab(用于init进程读取配置, 然后执行inittab里指定应用程序) (4)应用程序...(被inittab配置文件调用应用程序) (5)C库(glibc,被应用程序调用C库函数,比如:printf,strcmp,fopen等) 本节目的: 编译配置busybox (因为制作最小根文件系统需要...因为使用库函数glibc时,如果静态编译busybox,会出现很多警告信息: ? 库函数glibc需要放在/lib目录下 3.3 选择tar命令: ?...原因是 busybox-1.7.0顶层目录下Makefile没有使用交叉编译”arm-linux-” 在Makefile中添加”arm-linux-”: ?...从上图看出共有3个目录和1个linuxrc文件,其中 bin包含用户工具,包括了大部分命令,该子目录下所有文件指向busybox sbin目录包含操作系统工具,同样也指向busybox。

    1.3K70

    .NET平台系列17 .NET5中ARM64性能

    尽管解决CQ问题是至关重要,但有时它影响在应用程序中可能并不明显。因此,我们还希望对.NET库性能进行明显改进,以使针对ARM64.NET应用程序受益。...当在支持x86 / x64内部指令硬件上运行时,这样做可以提高此类方法性能。对于不支持x86 / x64内在函数硬件(例如ARM机器),. NET将回退到这些方法较慢实现。...具有ARM64内部函数方法AOT编译   在典型情况下,应用程序在运行时使用JIT编译为机器代码。...指令写入顺序不受保证,而是可以根据给定指令存储器访问成本来执行。这种方法不会影响单核计算机,但会对在多核计算机上运行多线程程序产生负面影响。...我们写了一个实用工具AnalyzeAsm它将扫描大约1GB文件,其中包含.NET库方法ARM64反汇编代码,并报告我们感兴趣指令模式及其使用方法频率。

    65010

    ARM汇编基础知识

    ARM 指令集是一组提供一整套运算 32 位指令。 ARM 处理器是典型 RISC 处理器,因为它们执行是加载/存储体系结构。只有加载和存储指令才能访问内存。数据处理指令只操作寄存器内容。...对于使用ARM处理器 Android手机来说,它最终会生成相应ARM elf (so)可执行文件,分析软件核心功能只能从 elf(so)文件入手。...需要任务保护应用程序通常在用户模式下执行。有些嵌入式应用程序可能完 全运行在超级用户模式或系统模式下。 进入除用户模式之外模式是为了处理异常或访问特许资源。...寄存器加载和存储指令 用于从内存加载单个寄存器值,或者在内存中存储单个寄存器值 协处理器指令 此类指令支持一种用于扩展 ARM 体系结构通用方式。用于减轻系统微处理器特定处理任务。...ARM微处理器可支持多达16个协处理器用于各种协处理操作。

    45820

    听GPT 讲Rust源代码--compiler(20)

    它定义了编译器如何生成适用于 Cortex-R7 处理器可执行文件。 该文件包含了一系列配置项,用于指定编译器在生成目标文件时行为和特性。...这些配置项包括编译器默认选项、链接器选项、目标机器特性支持、ABI(应用程序二进制接口)设置、链接库搜索路径、链接库命名约定等等。...不同目标平台可能具有不同体系结构、操作系统和ABI(应用二进制接口)。为了支持各种目标平台,Rust编译器根据目标平台特定要求和属性进行配置。...接下来,该文件定义了一个函数target_options函数,该函数返回一个TargetOptions实例,包含了BPF目标体系结构特定属性和选项。...target_pointer_width:指定目标平台指针宽度,可能是32或64。 arch:指定目标平台体系结构,这里是arm。 target_env:指定目标平台环境,这里是gnu。

    10410
    领券