• Xcode的Architectures、Valid Architectures和Build Active Architecture Only属性


    转自http://www.tuicool.com/articles/aeiaUr

    Architectures 
    这代表,在这个项目里你想要Xcode编译的目标设备列表。 
    Valid Architectures 
    还不是太明确这个设置的意图,但是一般来说是不需要更改的,和Architectures一样就可以。

    在Xcode5.1里的  Valid Architectures  设置里,  默认为 Standard architectures(armv7,armv7s,arm64),如果你想改的话,自己在other中更改。

    原因解释如下: 
    使用  standard architectures (including 64-bit)(armv7,armv7s,arm64) 参数,则打的包里面有32位、64位两份代码, 

    在iPhone5s( iPhone5s的cpu是64位的 )下,会首选运行64位代码包, 

    其余的iPhone( 其余iPhone都是32位的,iPhone5c也是32位 ), 只能运行32位包,

    但是包含两种架构的代码包,只有运行在ios6,ios7系统上。 

    这也就是说,这种打包方式,对手机几乎没啥要求,但是对系统有要求,即ios6以上。 
    而使用  standard architectures (armv7,armv7s) 参数, 则打的包里只有32位代码, iPhone5s的cpu是64位,但是可以兼容32位代码,即可以运行32位代码。但是这会降低iPhone5s的性能。 其余的iPhone对32位代码包更没问题, 而32位代码包,对系统也几乎也没什么限制。  
    所以总结如下:   

    要发挥iPhone5s的64位性能,就要包含64位包,那么系统最低要求为ios6。 如果要兼容ios5以及更低的系统,只能打32位的包,系统都能通用,但是会丧失iPhone5s的性能。

    Build Active Architecture Only

    这个属性设置为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 
    arm64:iPhone5s,ipad air,ipad mini2 
    编译出的版本是向下兼容的,比如你设置此值为yes,用iphone4编译出来的是armv7版本的,iphone5也可以运行,但是armv6的设备就不能运行。 
    所以,一般debug的时候可以选择设置为yes,release的时候要改为no,以适应不同设备。

    通过对以上参数配置的了解,我解决了问题。

    xcode5.1你的程序如果支持了arm64,那么你的所有静态库或者framework都要支持才可以,所以你要重新编译一遍。

    更多参考http://my.oschina.net/shede333/blog/172785#OSC_h3_2 这个更好

  • 相关阅读:
    [文摘20070723]最经典的爱情观
    [转]ASP .Net C# 下 Word开发资料
    [引]如何藉由使用 Visual C# . NET 處理 Word 中的事件
    简单的搭建Web系统常用的框架页面
    Gentle 简单配置方法之一种
    在 可编辑的 Div 的 光标位置 插入 文字 或 HTML
    [转]使用FileUpload控件上传图片并自动生成缩略图、自动生成带文字和图片的水印图
    VS2005 添加 Microsoft.Office.Tools.Word.dll 等引用
    要事第一 事不过三
    VC slider用法
  • 原文地址:https://www.cnblogs.com/chancier/p/4127940.html
Copyright © 2020-2023  润新知