iOS 开发中的架构问题

  • 架构: 指的CPU的架构,也叫指令集架构

iOS开发中架构的种类分为: 真机模拟器

查看项目的架构:

命令行工具 lipo
查看架构  lipo -info 类库的路径

真机架构:

armv 7            对应--> iPhone4s 
armv 7s           对应--> iPhone5/c
armv8(arm64)      对应--> iPhone 5s iPhone 6 iPhone 6s

模拟器架构:

i386             对应--> iPhone 4s iPhone5
x86_64           对应--> iPhone 5s iPhone 5;6 iPhone6s
  • 在开发框架中,需要将支持不同架构的类库进行合成处理:

方式1:
合成指令:lipo -create 类库1路径 类库2路径 -output 生成的类库的路径

方式2: 在build setting-Architectures中设置Build active architecture Only设置为NO
缺点:

  1. 只能生成模拟器/真机中的一种
  2. 真机中不会自动生成armv7s类型的,需要手动添加该类型,在Architecture中设置即可
  • 一般架构问题在开发中遇到的报错为:Undefined symbols for architecture x86_64:在x86_64架构放下有未定义的符号

出现形似"XX架构中有未定义符号"的错误,只有两个原因:

1> 使用的类库没有导入
2> 类库使用的架构和项目使用的架构(部署的环境,产出物是部署给什么平台)不同

你可能感兴趣的:(iOS 开发中的架构问题)