极光推送模拟器报错(关于Build Active Architecture Only属性)

JPush 模拟器报错例子

报错信息

Undefined symbols for architecture i386:
  "_OBJC_CLASS_$_JPUSHService", referenced from:
      objc-class-ref in LoginViewController.o
      objc-class-ref in AppDelegate.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
极光推送模拟器报错(关于Build Active Architecture Only属性)_第1张图片
报错图

极光官方文档说明

极光推送模拟器报错(关于Build Active Architecture Only属性)_第2张图片
59A4341E-74B7-4FC1-AA8D-2E17D7B4EAB9.png

解决方法

极光推送模拟器报错(关于Build Active Architecture Only属性)_第3张图片
配置图
这个属性设置为yes,是为了debug的时候编译速度更快,它只编译当前的architecture版本。

而设置为no时,会编译所有的版本。

这个是设备对应的architecture:

 armv6:iPhone 2G/3G,iPod 1G/2G

 armv7:iPhone 3GS/4/4s,iPod 3G/4G,iPad 1G/2G/3G

 armv7s:iPhone5, iPod5 


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

所以,一般debug的时候可以选择设置为yes,release的时候要改为no,以适应不同设备。

你可能感兴趣的:(极光推送模拟器报错(关于Build Active Architecture Only属性))