zoukankan      html  css  js  c++  java
  • 第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

  • 相关阅读:
    [剑指 Offer 11. 旋转数组的最小数字]
    进程描述符(PCB)
    [剑指 Offer 57. 和为s的两个数字]
    Linux netstat命令
    kafka2.3.X配置文件
    docker
    shell操作mysql数据库
    Linux文件查找之find命令
    sed 切割日志文件
    Linux文本处理之awk
  • 原文地址:https://www.cnblogs.com/javastart/p/9999012.html
Copyright © 2011-2022 走看看