XCode Architecture与IPA包大小关系 iOS

Cool.Cat 2014-05-05 1194

XCode里的3个重要参数:
-----------------------------------------------------------------------------------------------------------------------
Architecture项目可支持的指令集
Valid architectures项目编译时的指令集,一般与Architecture保持一致,特殊情况见下3
Build Active Architecture Only是否只编译基于当前构架的指令集
-----------------------------------------------------------------------------------------------------------------------

1、设置A

优点:IPA包在各个构架上运行最流畅最高效;

缺点:IPA包里需要包含各个构架的指令集(armv6/armv7/armv7s/arm64)体积过大,可能会比设置B多8M左右大小。。。

具体设置方法:

Valid architectures】= 例如:armv6 armv7 armv7s arm64,因此在不同构架上运行时,会优先调用当前构架的指令集,使代码运行优化高效。
Build Active Architecture Only】= No


2、设置B

优点:如果想IPA包体积最小,则IPA包里只需要包含能运行的最低构架的指令集即可(高版本指令集会向下兼容低版本);

缺点:在高版本构架上代码可能不是最优化,效率有可能会降低。

具体设置方法:

【Valid architectures】= 项目可以正常运行的最低指令集,现在一般填写armv7即可,即:可以在iPhone 4/4S及以后的机型上运行。
【Build Active Architecture Only】= Yes/No,任意均可。


3、如果项目需要在模拟器上调试,同时项目里有第三方库,可以在真机运行,但是模拟器编译却失败,可能需要增加对i386指令集的支持:

具体设置方法:

【Valid architectures】 = 增加对i386指令集的支持即可,例如:armv7 i386

最新回复 (0)
返回
发新帖
X