iOS审核 Exception Type: EXC_CRASH (SIGKILL)

iOS审核 Exception Type: EXC_CRASH (SIGKILL),第1张

这两天上传审核遇到点麻烦,打开app加载超时被看门狗kill了,此文记录自己采坑并解决重新审核通过的经历,以下是苹果反馈的问题:

问题提示就是启动后主线程加载时间过长,被看门口给杀了。现在我们要找到启动后是什么问题导致加载过长,但面对这些地址符号如何解析呢?

下面介绍一种方法:symbolicatecrash

该方法要用到三个文件

1: dSYM文件----该文件你可以在Xcode->window->organizer里面找到你上次上传到App Store的包然后右键 show In Finder,然后找到该文件再右键显示包内容->找到dSYMs文件夹->找到XXXappdSYM文件。

2crash文件(把苹果发给你的txt文件,保存到本地,后缀是crash)

3symbolicatecrash工具(终端输入 find /Applications/Xcodeapp -name symbolicatecrash -type f获取列表,然后复制含有DVTFoundation的路径,然后前往文件夹copy出来)把这三个东东放在同一个文件夹

然后

打开终端,cd到文件夹,执行

如果出现

则先执行

再执行

打开symbolcrash文件

iOS脚本自动化打包方案--xcodebuild

本文主要xcodebuild脚本自动化打包并上传到蒲公英或者AppStore,废话不多说,直接上干货!

先了解一下xcodebuild打包需要的一些指令

-workspace XXXxcworkspace

XXXxcworkspace需要编译工程的工作空间名称,如果工程不是xcworkspace的,可以不需要-workspace XXXxcworkspace这段话

-scheme XXX

XXX是工程名称,-scheme XXX是指定构建工程的名称

-configuration Release

填入打包的方式是Debug或Release,就跟在Xcode中编译前需要在Edit scheme的Build configuration中选择打出来的包是Debug还是Release包一样,-configuration就是配置编译的Build configuration

-archivePath /myArchivePath

配置生成xcarchive的路径, /表示生成在当前目录下,myArchivePath是生成的Archive文件名称

ODE_SIGN_IDENTITY=证书

配置打包的指定证书,如果该工程的Xcode已经配置好了证书,那么不加入这段话也可以,打包出来的证书就是Xcode中配置好的。

PROVISIONING_PROFILE=描述文件UUID

配置打包的描述文件,同上,Xcode已经配置好了就不用在填入这段话了

CONFIGURATION_BUILD_DIR

配置编译文件的输出路径,如果需要用到xcarchive文件内部的dSYM等文件,可以使用改字段指定输出路径。

如果工程是勾选了Automatically manage signing,那么就不用在配置ODE_SIGN_IDENTITY和PROVISIONING_PROFILE,今天这里讲到的Automatically manage signing自动配置证书,手动配置的就不多说了,有兴趣的话可以自己研究。

xcode工程配置自动获取证书,如下图:

打包所需要文件

配置打包的ExportOptionsplist文件,可以在任意一个Xcode工程中新建一个ExportOptionsplist文件。dev和adHoc和AppStore的配置文件内容不一样,可以先手动打包后看下plist文件的样式,这里提供一个样例:

这里method对应的value为打包对应的环境,有development、ad-hoc、app-store、enterprise根据打包环境来配置不同的值

编译脚本命令

xcodebuild archive -workspace XXXxcworkspace -scheme XXX -configuration Release -archivePath /myArchivePath CONFIGURATION_BUILD_DIR /dir ODE_SIGN_IDENTITY=证书 PROVISIONING_PROFILE=描述文件UUID

导出ipa包命令

xcodebuild -exportArchive -archivePath /myArchivePathxcarchive -exportOptionsPlist /ExportOptionsplist -exportPath /out

-archivePath /myArchivePathxcarchive指定需要打包的xcarchive路径,/myArchivePathxcarchive表示在当前终端路径下的myArchivePathxcarchive文件

-exportOptionsPlist /ExportOptionsplist指定打包需要的ExportOptionsplist配置文件路径

-exportPath /out指定打包输出的路径, /out表示打包结果输出在终端的当前路径下的out文件家中。如果没有out文件夹会自动创建一个

脚本 *** 作

首先:cd到需要自动打包的工程下

然后:在终端中输入touch xcodebuildsh创建xcodebuildsh脚本文件

然后:双击打开脚本写入下面 脚本内容(请确保所有版本的plist配置文件都写好了)

最后:在终端中输入/xcodebuildsh运行脚本,按照步骤完成打包选择(如果运行的时候出现Permission denied,请先在终端中执行chmod a+x 文件的后缀名后,在运行,相当于提高脚本文件的权限)

脚本内容

此脚本包含了自动上传蒲公英的选择 *** 作,根据输入指令来执行具体 *** 作

脚本实现

具体详细脚本见GitHub地址: >

这时候我们就需要根据符号表来监测奔溃位置

什么是符号表

符号表就是指在Xcode项目编译后,在编译生成的二进制文件app的同级目录下生成的同名的dSYM文件。

dSYM文件其实是一个目录,在子目录中包含了一个16进制的保存函数地址映射信息的中转文件,所有Debug的symbols都在这个文件中(包括文件名、函数名、行号等),所以也称之为调试符号信息文件。

如何得到dsYM文件

我们在Archive的时候会生成xcarchive文件,然后显示包内容就能够在里面找到dsYM文件和app文件。

如何使用dsYM

如果是使用友盟的话,我们能在错误列表里看到一些错误,然后可以导出奔溃信息,导出的文件为csv文件。友盟有一个分析工具,使用那个工具可以看到一些错误的函数,行号等。但是很容易分析失败,不知道为什么?

注意:使用的时候要确保你的xcarchive在 ~/Library/Developer/Xcode/或该路径的子目录下。

xcarchive里的dsYM文件和app文件是有对应的UUID的。然后你的错误详情里也是有UUID,只有当UUID相等时才能分析对。

我犯的错误:因为我们是两个人开发,Archive的时候都是在另一个人的电脑上Archive的,所以我的电脑里根本没有对应的xcarchive文件。所以我在我电脑上用友盟的分析工具分析是时候是监测不出来错误的。问过我ITJob朋友后回答的,希望能帮到你

以上就是关于iOS审核 Exception Type: EXC_CRASH (SIGKILL)全部的内容,包括:iOS审核 Exception Type: EXC_CRASH (SIGKILL)、iOS开发知识体系之《脚本自动化打包--xcodebuild》、ios 怎么查看崩溃日志等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/10084112.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存