Xcode target build settings Architectures

本文详细介绍了ARM处理器的低功耗和小尺寸特点,着重阐述了ARMv6、ARMv7、ARMv7s、ARM64指令集的兼容性和iOS设备的指令集应用。通过实例解释了iOS模拟器与实际设备指令集的区别,并讨论了BuildActiveArchitectureOnly属性的作用。同时,提供了解决xcode报错问题的方法。

先介绍一下 arm

Arm处理器,因为其低功耗和小尺寸而闻名,几乎所有的手机处理器都基于arm,其在嵌入式系统中的应用非常广泛,它的性能在同等功耗产品中也很出色。
Armv6、armv7、armv7s、arm64都是arm处理器的指令集,所有指令集原则上都是向下兼容的,如iPhone4S的CPU默认指令集为armv7指令集,但它同时也兼容armv6指令集,只是使用armv6指令集时无法充分发挥其性能,即无法使用armv7指令集中的新特性,同理,iPhone5的处理器标配armv7s指令集,同时也支持armv7指令集,只是无法进行相关的性能优化,从而导致程序的执行效率没那么高。
需要注意的是iOS模拟器没有运行arm指令集,编译运行的是x86指令集,所以,只有在iOS设备上,才会执行设备对应的arm指令集。
//关于Build Active Architecture Only属性
这个属性设置为yes,是为了debug的时候编译速度更快,它只编译当前的architecture版本。

编译出的版本是向下兼容的,比如你设置此值为yes,用iphone4编译出来的是armv7版本的,iphone5也可以运行,但是armv6的设备就不能运行。

所以,一般debug的时候可以选择设置为yes,release的时候要改为no,以适应不同设备
//xcode报错问题
//例如:No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=i386).

 1. Targets—>Build Settings—>Architectures—>Other,修改为$(ARCHS_STANDARD_32_BIT) 
 2. TARGETS->Build Setting -> Architectures ->Valid Architectures 改为 armv7 armv7s 3. 如果还不行把Build Active Architecture Only 改成No
目前IOS的指令集

armv6    iPhone、iPhone2、iPhone3G、第一代和第二代iPod Touch

armv7    iPhone4、iPhone4S

armv7s   iPhone5、iPhone5C

arm64    iPhone5S

详细请看 : http://www.cnblogs.com/meteoric_cry/p/3720831.html
http://www.cnblogs.com/mylizh/p/3971579.html?utm_source=tuicool&utm_medium=referral

### Xcode 处理方法与相关信息 Xcode 是苹果公司提供的集成开发环境(IDE),广泛用于 macOS、iOS、watchOS 和 tvOS 应用的开发。以下是对 Xcode 相关处理方法和信息的详细说明,涵盖可能涉及的功能需求和错误处理。 #### 1. Xcode 编译器标志配置 在 Xcode 中,编译器标志可以通过项目设置进行调整。例如,`OTHER_CPLUSPLUSFLAGS` 是一个常见的配置项,用于指定 C++ 编译器的附加标志[^1]。如果需要添加特定的头文件路径,可以使用 `-isystem` 标志,指向所需的目录。以下是一个示例代码片段,展示如何通过命令行或脚本动态修改这些标志: ```bash # 示例:动态添加 OTHER_CPLUSPLUSFLAGS xcodebuild -project YourProject.xcodeproj -target YourTarget clean build \ OTHER_CPLUSPLUSFLAGS="-isystem /path/to/your/headers" ``` #### 2. Subversion 工具支持 自 Xcode 的某些版本起,Subversion 命令行工具的支持已被移除。这意味着默认情况下,Xcode 不再提供 `svn` 或相关工具的内置支持[^2]。如果需要使用这些工具,可以安装独立的 Command Line Tools 包。以下是安装步骤: - 打开终端并运行以下命令: ```bash xcode-select --install ``` - 安装完成后,确保路径已正确配置,并验证工具是否可用: ```bash svn --version ``` #### 3. Xcode 错误处理 Xcode 在开发过程中可能会遇到各种错误,包括但不限于编译错误、链接错误和运行时错误。以下是几种常见错误及其解决方法: - **缺少头文件**:如果项目中引用了不存在的头文件,可能会导致编译失败。检查 `Header Search Paths` 设置,确保路径正确[^1]。 - **Command Line Tools 未安装**:如上所述,若需要使用 `svn` 等工具,需手动安装 Command Line Tools[^2]。 - **架构不匹配**:在多平台开发中,确保目标架构与设备兼容。检查 `Build Settings` 中的 `Architectures` 和 `Valid Architectures`。 #### 4. 功能扩展与插件 Xcode 支持通过插件扩展其功能。虽然官方插件支持有所限制,但用户可以通过第三方工具(如 Alcatraz)安装和管理插件。需要注意的是,部分插件可能会影响 Xcode 的稳定性,因此建议谨慎选择。 ```bash # 示例:安装 Alcatraz 插件管理器 curl -fsSL https://raw.githubusercontent.com/supermarin/Alcatraz/master/Scripts/install.sh | sh ``` ### 示例代码:动态配置 Xcode 构建设置 以下是一个 Python 脚本示例,用于动态修改 Xcode 项目的构建设置: ```python import plistlib import os # 加载 Xcode 项目配置文件 project_file = "YourProject.xcodeproj/project.pbxproj" with open(project_file, "rb") as f: project_data = plistlib.load(f) # 修改构建设置 for target in project_data["objects"]: if project_data["objects"][target]["isa"] == "PBXNativeTarget": build_settings = project_data["objects"][target]["buildSettings"] build_settings["OTHER_CPLUSPLUSFLAGS"] = "-isystem /path/to/your/headers" # 保存更改 with open(project_file, "wb") as f: plistlib.dump(project_data, f) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值