ios app从32位到64位

最近公司接了一个这样的活,在我眼里感觉很简单,把第三方库全部换成最新的不就好了,然后在build setting里的Valid Architectures 加上arm64.

这里补充点知识


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架构。

查看第三发库支持哪些架构

lipo -info 你要查的.a文件的路径

//如
Last login: Fri Mar  2 10:16:16 on ttys002
➜  ~ lipo -info /Volumes/资料/资料包/1112蓝牙/物联网资料/sdk/lib/libavcodec.a 
input file /Volumes/资料/资料包/1112蓝牙/物联网资料/sdk/lib/libavcodec.a is not a fat file
Non-fat file: /Volumes/资料/资料包/1112蓝牙/物联网资料/sdk/lib/libavcodec.a is architecture: armv7
➜  ~ lipo -info /Volumes/资料/源码/手机视频直播APP系统开发映客花椒类型直播源码/LiveDiary-2/LiveDiary/lib/ffmpeg-2.2.1/lib/libavcodec.a
Architectures in the fat file: /Volumes/资料/源码/手机视频直播APP系统开发映客花椒类型直播源码/LiveDiary-2/LiveDiary/lib/ffmpeg-2.2.1/lib/libavcodec.a are: armv7s armv7 arm64 

可以看到最后这些就是支持的架构类型.
fat和Non-fat的区别就是包含的多少架构类型.

但是实际上发现本来半天能干完的话花了一天半.

这又是为什么?

碰到点bug.
从网上下载的.a文件不是可以链接的可编译文件.

后面自己下载源文件编译成.a文件就好了.

解决了感觉就是不过就是这个玩意啊.

记录一下.
希望自己把基础再去看看,基础牢天花板就不会低.
---by 自己

你可能感兴趣的:(ios app从32位到64位)