`
dcj3sjt126com
  • 浏览: 1870228 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

xcode armv6 armv7 armv7s arm64

    博客分类:
  • IOS
阅读更多

 之前每个版本的ipa包打出来都才20M出头,后来不知道从哪个版本起打的包每次都将近40M,但是工程中也没有明显的增加很大第三方类或者图

片、静态文件。于是就开始了各种瘦身计划:压缩图片,删除不必要静态库。做了一番改动后发现包只比原来小了1M多,收效甚微。后来听同事说了

armv6 armv7 armv7s arm64引起编译包翻倍增大的问题,于是就试了一下,果然ipa包又回到了以前的大小。下边来说一下关于ios这个指令集(一下内容

引子DevDiv社区jas,内容稍有修改)。

目前ios的指令集有以下几种:

  • armv6
    • iPhone
    • iPhone2
    • iPhone3G
    • 第一代和第二代iPod Touch
  • armv7
    • iPhone4
    • iPhone4S
  • armv7s
    • iPhone5
    • iPhone5C
  • arm64
    • iPhone5S

 机器对指令集的支持是向下兼容的,因此armv7的指令集是可以运行在iphone5S的,只是效率没那么高而已~

在xcodeTARGETS里边Architectures:

Architecture : 指你想支持的指令集。

Valid architectures : 指即将编译的指令集。

Build Active Architecture Only : 只是否只编译当前适用的指令集。

================================================

 现在是2014年初,其实4和4S的用户还是蛮多的,而iphone3之类的机器几乎没有了,所以我们的指令集最低必须基于armv7.

因此,Architecture的值选择:armv7 armv7arm64

PS:选arm64时需要最低支持5.1.1:

Convert Your App to a 64-Bit Binary After Updating It for iOS 7

Xcode 5.0.1 can build your app with both 32-bit and 64-bit binaries included. This combined binary requires a minimum deployment target of iOS 5.1.1 or later. The 64-bit binary runs only on 64-bit devices running iOS 7.0.3 and later. If you have an existing app, you should first update your app for iOS 7 and then port it to run on 64-bit processors. By updating it first for iOS 7, you can remove deprecated code paths and use modern practices. If you’re creating a new app, target iOS 7 and compile 32-bit and 64-bit versions of your app.

The architecture for 64-bit apps on iOS is almost identical to the architecture for OS X apps, making it easy to create a common code base that runs in both operating systems. Converting a Cocoa Touch app to 64-bit follows a similar transition process as the one for Cocoa apps on OS X. Pointers and some common C types change from 32 bits to 64 bits. Code that relies on the NSInteger and CGFloat types needs to be carefully examined.

Start by building the app for the 64-bit runtime, fixing any warnings that occur as well as searching your code for specific 64-bit issues. For example:

  • Make sure all function calls have a proper prototype.

  • Avoid truncating 64-bit values by accidentally assigning them to a 32-bit data type.

  • Ensure that calculations are performed correctly in the 64-bit version of your app.

  • Create data structures whose layouts are identical in the 32-bit and 64-bit versions of your app (such as when you write a data file to iCloud).

1,如果想自己的app在各个机器都能够最高效率的运行,则需要将Build Active Architecture Only改为NO,Valid architectures选择对应的指令集:armv7 armv7arm64。这个会为各个指令集编译对应的代码,因此最后的 ipa体积基本翻了3倍,Release版本必须NO。

2,如果想让app体积保持最小,则现阶段应该选择Valid architectures为armv7,这样Build Active Architecture Only选YES或NO就无所谓了

分享到:
评论

相关推荐

    lame开源库吃支持armv6 armv7 i386 armv7s arm64架构

    1. **架构支持**:确保在Xcode项目的“Build Settings”中,开启“Valid Architectures”选项,包括armv6、armv7、armv7s、arm64,以便覆盖所有可能的设备。 2. **库文件集成**:将libmp3lame.a添加到项目的“Link ...

    ZBar 支持 armv6 armv7 armv7s arm64

    ZBar是一款开源的二维码扫描库,专为iOS开发者设计,能够支持多种设备架构,包括armv6、armv7、armv7s以及arm64。本文将深入探讨ZBar在iOS开发中的具体应用及其优势。 一、ZBar概述 ZBar是由Simon Woodhead开发的...

    ZBar 支持i386 armv6 armv7 armv7s x86_64 arm64

    ZBar是一款强大的开源二维码扫描库,它支持多种CPU架构,包括i386、armv6、armv7、armv7s、x86_64以及arm64。这一特性使得ZBar在iOS设备的兼容性上表现出色,无论是模拟器还是各种不同硬件版本的真机,都能流畅运行...

    iOS版本 armv7 armv7s arm64 i386 x86_64架构的zbar

    2. **配置架构**:在Xcode的项目设置里,确保已选中所有必要的架构(armv7, armv7s, arm64, i386, x86_64)。 3. **链接库**:添加任何必要的系统库,比如AVFoundation,因为ZBar可能依赖于它来访问摄像头。 4. **...

    openssl(arm64,armv7s,armv7,x86_64,i386)

    本文将深入探讨 OpenSSL 在 iOS 平台上的应用,特别是针对不同架构的支持,如 arm64、armv7s、armv7、x86_64 和 i386。 1. **OpenSSL 架构兼容性** OpenSSL 提供了对多种处理器架构的支持,这使得它能够在不同的...

    FFMpeg iOS 64位 i386 x86_64 armv7 armv7s arm64

    标题和描述提到了“iOS ffmpeg 64位支持”,这意味着我们要讨论的是如何在iOS平台上,特别是在包括i386、x86_64(模拟器架构)以及armv7、armv7s和arm64(真机架构)在内的多种设备上,集成和运行FFmpeg库。...

    libopencore-amrnb.a iOS7.1支持armv7,armv7s,arm64版本

    在Xcode中,开发者可以选择"Build Settings",然后在"Architectures"部分设置"Valid Architectures"为`armv7`, `armv7s`, 和 `arm64`。同时,确保"Build Active Architecture Only"在调试时设为`YES`,在发布时设为`...

    ffmpeg2.6 在ios下的静态库i386 x86_64 armv7 armv7s arm64架构

    FFmpeg 2.6 支持多种架构,包括 i386、x86_64、armv7、armv7s 和 arm64。这些架构分别对应于不同的iOS设备和模拟器平台: 1. **i386**:这是32位的Intel处理器架构,主要用在旧版的iOS模拟器上。 2. **x86_64**:这...

    FFmpeg 2.5.3 编译的静态库(arm64 armv7s armv7 x86_64 i386)。

    在这个压缩包中,提供了针对不同架构的静态库,包括 arm64、armv7s、armv7、x86_64 和 i386,这些都是 iOS 设备常见的处理器架构。 1. **静态库**:静态库在编译时会被直接链接到目标程序中,形成一个完整的可执行...

    libiconv.dylib (x86_64 arm64 armv7 armv7s)

    在标题"libiconv.dylib (x86_64 arm64 armv7 armv7s)"中,我们可以看到这个库支持多种处理器架构,包括x86_64(适用于模拟器),arm64(适用于64位设备如iPhone 5S及以上),以及armv7和armv7s(适用于32位设备如...

    libopencore-amrnb.a libopencore-armwb.a iOS7.1支持armv7,armv7s,arm64版本

    总之,"libopencore-amrnb.a"和"libopencore-amrwb.a"是用于处理AMR音频格式的OpenCORE库,适用于苹果的iOS设备,特别是那些支持armv7、armv7s和arm64架构的设备。随着苹果对64位应用的强制要求,这些库对于开发兼容...

    ffmpeg 2.3.3 for iOS armv7/armv7s/arm64/x86_64/i386

    编译FFmpeg为iOS平台需要考虑不同架构的支持,如armv7、armv7s、arm64,以及在Xcode模拟器运行时所需的x86_64和i386。编译过程中可能涉及CMake或autoconf工具,以及配置特定的编译选项以适应iOS的SDK和Cocoa Touch...

    ffmepg 2 5 3 for iOS静态库 armv7 armv7s i386 x86 64 arm64

    标题提到的是FFmpeg 2.5.3 版本的iOS静态库,这个版本适用于多个iOS设备架构,包括armv7、armv7s、i386、x86_64以及arm64。静态库的好处是将所有依赖项都包含在内,使得在不同设备上运行时无需担心依赖问题。 1. **...

    ffmpeg2.61 编译的静态库(arm64 armv7s armv7 x86_64 i386)

    本压缩包中的静态库是专门为 iOS 设备编译的,包含了多个架构的支持,包括 arm64(适用于64位的iPhone和iPad)、armv7s(针对某些特定的32位设备)、armv7(广泛支持的32位架构)、x86_64(用于iOS模拟器)以及 i386...

    最新版iOS libjpeg.a libturbojpeg.a (arm64、armv7、armv7s、i386/X86_64)

    值得注意的是,此压缩包包含了针对不同架构的库文件,包括arm64(适用于64位ARM设备),armv7和armv7s(适用于32位ARM设备),i386和X86_64(适用于模拟器)。这意味着这个库支持所有主流的iOS设备和开发环境。 在...

    ffmepg 2.4.2 for iOS静态库 (armv7 armv7s i386 x86_64 arm64)

    2.4.2 版本是 FFmpeg 的一个历史版本,对于 iOS 平台,它提供了针对不同架构的支持,包括 armv7、armv7s、i386、x86_64 和 arm64。这些架构涵盖了从较旧的 iPhone 和 iPad 到最新的 64 位设备。 1. **FFmpeg 架构...

    ios 下openssl 1.0.2h静态库,支持armv7,armv7s,arm64

    armv7是早期iPhone和iPad使用的处理器架构,armv7s针对更快的处理器进行了优化,而arm64则是iPhone 5s及后续设备采用的64位架构。Xcode 7的编译确保了这个静态库可以兼容至少iOS 7.0及以上版本的操作系统。 在实际...

    ffmepg 2.8 for iOS静态库 (armv7 armv7s i386 x86_64 arm64)

    在iOS平台上,FFmpeg 2.8 版本的静态库适用于多种处理器架构,包括armv7、armv7s、i386、x86_64以及arm64。这些不同的架构覆盖了从旧款iPhone到新款iPhone以及模拟器的全面支持。 首先,让我们深入了解一下FFmpeg的...

Global site tag (gtag.js) - Google Analytics