阅读 47

iOS 常用名词、知识点汇总

iOS系统的各种设备识别码

  1. UDID ,全称是 (Unique Device Identifier),顾名思义,它就是苹果IOS设备的唯一识别码,它由40个字符的字母和数字组成,为了保护用户隐私苹果已经禁止读取这个标识了。
  2. UUID,全称是(Universally Unique IDentifier),是基于iOS设备上面某个单个的应用程序,只要用户没有完全删除应用程序,则这个 UUID 在用户使用该应用程序的时候一直保持不变。如果用户删除了这个应用程序,然后再重新安装,那么这个 UUID 已经发生了改变。UUID 不好的地方就是用户删除了你开发的程序以后,基本上你就不可能获取之前的数据了。
  3. MAC 地址,用来定义网络设备的位置。一个主机会有一个 MAC 地址MAC 地址是网卡决定的,是固定的,为了保护用户隐私苹果已经禁止读取这个标识了。
  4. OpenUDID,不是苹果官方的,是一个替代 UDID 的第三发解决方案, 缺点是如果你完全删除全部带有 OpenUDID SDK 包的 App(比如恢复系统等),那么 OpenUDID 会重新生成,而且和之前的值会不同,相当于新设备。
  5. IDFA 广告标示符,适用于对外:例如广告推广,换量等跨应用的用户追踪等。
  6. IDFV,Vindor 标示符 (IDFV-identifierForVendor),来自同一个运营商的应用运行在同一个设备上,此属性的值是相同的;不同的运营商应用运行在同一个设备上值不同。

关于 openUDID 不能用的说法不正确,至今 openUDID 还是可用的(iOS7 现在没什么用户了),部分广告渠道的点击接口依然支持使用 openUDID 作为用户标识。

了解指令集

`arm `处理器以其低功耗和小尺寸而闻名,几乎所有的手机处理器都是基于arm,在嵌入式系统中应用非常广泛。
`armv6`, `armv7`, `armv7s`, `arm64`指的是`arm`处理器的指令集。
`i386`, `x86_64`指的是`pc`端处理器指令集。
所有指令集原则上是向下兼容的。
`arm64:iPhone6s | iphone6s plus|iPhone6| iPhone6 plus|iPhone5S | iPad Air| iPad mini2(iPad mini with Retina Display)`

armv7s:iPhone5|iPhone5C|iPad4(iPad with Retina Display)

armv7:iPhone4|iPhone4S|iPad|iPad2|iPad3(The New iPad)|iPad mini|iPod Touch 3G|iPod Touch4

i386是针对intel通用微处理器32位处理器

x86_64是针对x86架构的64位处理器模拟器32位处理器测试需要i386架构,模拟器64位处理器测试需要x86_64架构

真机32位处理器需要armv7,或者armv7s架构

真机64位处理器需要arm64架构。

xcode中,指令集相关的选项主要有三种:

  1. Architectures:该选项指定工程可被编译成支持何种指令集的数据包。由于工程会针对每一种指令集编译出对应的二进制数据包,所以支持的指令集越多,对应生成的ipa包就越大。
  2. Valid Architectures:限制了工程可支持的指令集范围。即,工程最终支持的指令集在valid architectures定义的这个范围之内,所以工程最终编译出的包支持的指令集将由ArchiteturesValid Architectures选项定义的指令集的交集决定。
  3. Build Active Architecture Only:设定是否只编译出当前连接设备所支持的指令集。一般,debug的时候可指定为YES,为了debug的时候编译速度快;release的时候指定为NO,以适应不同的设备。
  4. 目前我们的项目已经放弃适配iPhone4、iPhone4s等机型了,因此我们可以删除armv7架构,以优化ipa包体积大小。

统计Xcode代码总行数

打开终端,进入项目所在目录,执行命令:

find . -name "*.m" -or -name "*.h" -or -name "*.xib" -or -name "*.c" |xargs wc -l
复制代码

打印的最后结果就是所有的行数,每一行左边是每个文件的行数,最下面xxxTotal,xxx就是总行数了。这样统计出来的行数是包括空行的。

下面这条是不统计空行的:

find . -name "*.m" -or -name "*.h" -or -name "*.xib" -or -name "*.c" |xargs grep -v "^$"|wc -l
复制代码

打印结果直接就是总行数。
.m,.h,.xib,.c是iOS代码文件的后缀名,如果统计别的代码文件,也可以更换后缀名来选择性的统计代码行数。