第26月第22天 iOS瘦身之armv7 armv7s arm64选用 iOS crash
1.iOS瘦身之armv7 armv7s arm64选用
机器对指令集的支持是向下兼容的,因此armv7的指令集是可以运行在iphone5S以上的,只是效率没那么高而已~
但是由于苹果要求必须支持arm64,因此这个架构是必须存在的.
在xcodeTARGETS里边Architectures:
tup.png
Architecture : 指你想支持的指令集。
Valid architectures : 指即将编译的指令集。
Build Active Architecture Only : 只是否只编译当前适用的指令集。
================================================
如果全部支持切不在乎包大小的话,Architecture的值选择:armv7 armv7s arm64
如果支持5以上切包不要求则选用 armv7s ,arm64
如果支持全机型,有不想ipa包太多就选择 armv7 , arm64
如果最小ipa的话,切抛弃5s以下,可以采用只用arm64
PS:选arm64时需要最低支持5.1.1:
1,如果想自己的app在各个机器都能够最高效率的运行,则需要将Build Active Architecture Only改为NO,Valid architectures选择对应的指令集:armv7 armv7s arm64。这个会为各个指令集编译对应的代码,因此最后的 ipa体积基本翻了3倍,Release版本必须NO。
2,如果想让app体积保持最小,则现阶段应该选择Valid architectures为armv64,这样Build Active Architecture Only选YES或NO就无所谓了
https://blog.csdn.net/qq_24702189/article/details/79345387
2.
自己实现应用内崩溃收集,并上传服务器
NSSetUncaughtExceptionHandler 在app启动完成后利用系统提供的异常捕获类来监听崩溃, NSSetUncaughtExceptionHandler (&UncaughtExceptionHandler), UncaughtExceptionHandler是自定义的函数指针,崩溃发生后, 这个回调函数会传入一个NSException的类. 我们可以利用它来获取调用栈,崩溃的原因及异常的类型.
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
NSSetUncaughtExceptionHandler(&UncaughtExceptionHandler);
return YES;
}
void UncaughtExceptionHandler(NSException * exception){
NSArray * exceptionSymbols = exception.callStackSymbols;
NSString * reason = exception.reason;
NSString * name = exception.name;
NSLog(@"exceptionCallSymbols---%@, reason--- %@ ----name %@",exceptionSymbols,reason,name);
//获取到崩溃日志后,可以将崩溃信息存入本地,下次程序启动时将崩溃日志通过邮件发送给开发者或者上传到服务器
}
https://github.com/Pangmanli1/gitbook/blob/14c4c0310e64d5c481fa2e0c52876dfcdd699857/Crash%E6%94%B6%E9%9B%86.md
第26月第22天 iOS瘦身之armv7 armv7s arm64选用 iOS crash的更多相关文章
- iOS开发~制作同时支持armv7,armv7s,arm64,i386,x86_64的静态库.a
一.概要 平时项目开发中,可能使用第三方提供的静态库.a,如果.a提供方技术不成熟,使用的时候就会出现问题,例如: 在真机上编译报错:No architectures to compile for ( ...
- ios开发之--armv7,armv7s,arm64,i386,x86_64详解
有时候在运行的时候,经常出现诸如i386的错误,最新一些可能会出现 No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch ...
- iOS开发~制作同时支持armv7,armv7s,arm64,i386,x86_64的静态库.a以及 FrameWork 的创建
armv7,armv7s,arm64,i386,x86_64 详解 一.概要 平时项目开发中,可能使用第三方提供的静态库.a,如果.a提供方技术不成熟,使用的时候就会出现问题,例如: 在真机上编译报错 ...
- iOS中的armv7,armv7s,arm64,i386,x86_64
前言 一般iOS中的armv7.armv7s.arm64.i386.x86_64这些都代表了什么?在Xcode中如何选择? 介绍 armv7.armv7s.arm64都是ARM处理器的指令集. i38 ...
- iOS 中的 armv7,armv7s,arm64,i386,x86_64 都是什么
在做静态库的时候以及引用静态库的时候经常会遇到一些关于真机模拟器不通用的情况,会报错找不到相应库导致编译失败, 这里简单记录一下各种设备支持的架构. iOS测试分为模拟器测试和真机测试,处理器分为32 ...
- IOS生成同时支持armv7,armv7s,i386的静态库.a文件
许多第三方提供的.a文件(一般是那些SDK),嵌入到我们的xcode项目后,生成不会报错. 一部分粗心的SDK提供方,或者我们自己做的.a文件,就会有报错,常见的就是不是armv7结构,或者不是arm ...
- iOS控制器瘦身-面向超类编程
今天写这篇文章的目的,是提供一种思路,来帮助大家解决控制器非常臃肿的问题,对控制器瘦身. 滴滴 老司机要开车了 如果手边有项目,不妨打开工程看一下你的控制器代码有多少行,是不是非常多?再看一下tabl ...
- iOS安装包瘦身的那些事儿
在我们提交安装包到App Store的时候,如果安装包过大,有可能会收到类似如下内容的一封邮件: 收到这封邮件的时候,意味着安装包在App Store上下载的时候,有的设备下载的安装包大小会超过100 ...
- iOS可执行文件瘦身方法
缩减iOS安装包大小是很多中大型APP都要做的事,一般首先会对资源文件下手,压缩图片/音频,去除不必要的资源.这些资源优化做完后,我们还可以尝试对可执行文件进行瘦身,项目越大,可执行文件占用的体积越大 ...
随机推荐
- A1108. Finding Average
The basic task is simple: given N real numbers, you are supposed to calculate their average. But wha ...
- Linux命令模拟Http的get或post请求
Http请求指的是客户端向服务器的请求消息,Http请求主要分为get或post两种,在Linux系统下可以用curl和wget命令来模拟Http的请求. get请求: 1.使用curl命令: cur ...
- jmeter的介绍和使用二
三. 1.http的请求默认值 当一个项目有多个模块,他们的host都是一致的,为了不重复的写host或者当某一天host变了,只需要修改一个地方就好.比如下面的两个请求,可以把host分离出来,所以 ...
- SSH框架下ajax调用action并生成JSON再传递到客户端【以get和post方式提交】
需要完成的任务: 主要是把JSP页面上图片ID传给服务器端,服务器读取cookie看是否有username,如果有则根据ID读取MongoDB数据库,读出图片URL,再存放到mysql中的collec ...
- 【知名的3D造型设计软件】犀牛 Rhinoceros 5.5.2 for Mac
[简介] 今天和大家分享最新的3D设计软件 犀牛 Rhinoceros for Mac 5.5.2 版本,支持中文界面,这是一款Mac上知名的3D造型软件,犀牛可以广泛地应用于三维动画制作.工业制造. ...
- CodeForces5E 环转链,dp思想
http://codeforces.com/problemset/problem/5/E 众所周知,在很久以前,在今天的 Berland 地区,居住着 Bindian 部落.他们的首都被 n 座山所环 ...
- Storm常用的类
BaseRichSpout (消息生产者)BaseBasicBolt (消息处理者)TopologyBuilder (拓扑的构建器)Values (将数据存放到values ,发送到下个组件)Tupl ...
- xgboost使用调参
欢迎关注博主主页,学习python视频资源 https://blog.csdn.net/q383700092/article/details/53763328 调参后结果非常理想 from sklea ...
- centos的用户、组权限、添加删除用户等操作的详细操作命令
1.Linux操作系统是多用户多任务操作系统,包括用户账户和组账户两种 细分用户账户(普通用户账户,超级用户账户)除了用户账户以为还 有组账户所谓组账户就是用户账户的集合,centos组中有两种类型, ...
- 清理sql2012数据库日志
--1.先把数据库设置为简单模式(右击数据库名->点'属性'->点'选项'->恢复模式改成'简单'->点'确定'按钮,--2.再执行下面的语句(或者右击数据库点'任务'-> ...