apple appstore上线过程中 app crash的分析方法

iOS Termination Reason: Namespace SPRINGBOARD, Code 0x8badf00d(Apple Crash Log 解析) 1、审核驳回问题说明 发件人 Apple 2. 1 Performance: App Completeness Guideline 2.1 - Performance - App Completeness We were unable to review your app as it crashed on launch. We have attached detailed crash logs t... 阅读详情
apple appstore上线过程中 app crash的分析方法


首先找到 symbolicatecrash 程序
一般是在 /Applications/Xcode.app/Contents/SharedFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/symbolicatecrash


如果没找到,可以用 find 在 /Applications/Xcode.app/Contents/ 里面搜一下。


找到了以后,新建一个文件夹,比如叫 ~/crash,把 symbolicatecrash copy进去,
然后把你提交到appstore的dSYM文件,以及苹果反馈的 crash文件也copy到这个文件夹里。


然后
./symbolicatecrash ./crash文件 ./dSYM文件 > a.crash


如果报错 提示没有找到 DEVELOPER_DIR 变量的话,可以
export DEVELOPER_DIR="/Applications/Xcode6.app/Contents/Developer"


这时候生成的a.crash文件跟苹果反馈给你的差不多 但是多了一点点东西,可以双击打开查看


打开后可以看到 Last Exception BNacktrace 的信息,在这一段信息里下面找到自己的app名字的那一行,后面会有出错的内存位置
比如
16 xxxapp 0x100036070 0x100018000 + 122992


0x100036070 就是我们要用到的


接下来执行命令
dwarfdump --lookup 0x100036070 --arch arm64 dSYM文件/


arch根据crash的 Code Type:           ARM-64 (Native) 这一行来指定


这时候就会有非常详细的crash分析显示出来了,通过这个能很快定位导致crash的位置了。

STM32裸机开发基础:寄存器直接操作详解 寄存器是微控制器内部的特殊存储单元,直接与硬件电路连接,用于控制和监视硬件功能。与普通内存不同,寄存器的每一位(bit)通常都有特定的硬件含义。寄存器就是机器的控制面板上的各种开关和指示灯每个开关控制一个具体功能(如打开LED、启动通信)每个指示灯显示一个具体状态(如数据接收完成、错误发生)// GPIO引脚定义1。 阅读详情

相关推荐

LightTools 中LCD投影仿真的checkerboard pattern偏振控制技术解析

本文深入解析了在LightTools软件中进行LCD投影仿真时,利用checkerboard pattern(棋盘格图案)结合偏振控制技术来模拟液晶面板像素开关、提升图像对比度的核心方法。文章从实战角度出发,详细拆解了通过设置波片(如1/2波片)和偏振片来操控S光与P光转换的原理,并分享了在LightTools中搭建仿真模型、使用VBA脚本自动化配置参数以提高效率的实用技巧,为光学工程师优化投影系统仿真流程提供了清晰指导。

weixin_29305313的博客 344

如何查看iOS已上架app的崩溃情况以及定位crash代码行

在app上线后我们需要知道app运行的怎么样,下载的人多不多,这些呢就需要在iTunes connect中查看。对于开发人员来说,查看app的崩溃情况尤为重要。下面介绍我是怎么样查看app的崩溃情况的。 一、先分析app的崩溃的分布情况 这个需要有(iTunes connect账号),通过分析我们可以查看到自己的app奔溃主要发生在那些机型上。 如果没有账号,别着急,直接走第二步。 二、打开xcode,下载崩溃日志,直接定位出问题代码行。

骑着蜗牛找马儿 2万+

MicroPython跨平台移植实战:从源码解析到STM32+FreeRTOS部署

本文详细解析了MicroPython的跨平台移植实战,重点介绍了如何将其从源码开始,成功部署到STM32微控制器并运行于FreeRTOS实时操作系统。内容涵盖源码结构解析、编译环境搭建、内存管理协调、FreeRTOS任务集成、数学库(math)启用与优化,以及自定义模块开发等核心步骤,为开发者提供了一套完整的、可操作的嵌入式Python移植方案。

vodka的博客 1014

iOS symbolicatecrash工具crash日志分析

若一个App没有加入Crashlytics或者Buggly这些崩溃日志监控,那么我们在App崩溃的时候如何获取崩溃信息呢? 此时我们可以通过symbolicatecrash工具对手机日志来进行分析定位,需要以下一些步骤: 一、获取crash日志文件   1.手机直接获取日志       在手机 设置->隐私->分析->数据分析 中找到对应App(文件名为App设...

bafa4957的博客 277

第四次工业革命如何重构产业逻辑:写给技术人的趋势推演

第四次工业革命正在以人工智能、大数据和新能源为核心重构全球产业逻辑。本文从历史规律切入,指出技术革命本质是生产力跃迁和产业链话语权的转移。当前AI基础设施竞赛已形成算力、数据、算法三大支柱,其中算力投资首超石油领域,绿色算力与新型架构成为关键。数据治理带来隐私计算等新技术约束,数据中心正向液冷技术和"东数西算"模式演进。技术人需构建三大竞争力:夯实分布式系统等底层能力、培养跨领域知识融合能力、善用约束条件驱动创新。这场变革将奖励那些深度理解技术本质并能快速适应的实践者。

几十年资深高级架构师,技术专家的技术笔记。专注C、Java、Python、微服务、云原生、AI工程化及高并发系统分布式架构实战,分享源码剖析、性能调优与架构治理经验。 289

MacBook用户必看:用Homebrew一键搞定frp内网穿透(含阿里云配置模板)

本文为MacBook用户提供基于Homebrew的frp内网穿透实战指南,详细介绍了从环境准备到阿里云服务器配置的全过程。通过Homebrew一键安装frp客户端,结合阿里云配置模板,实现高效稳定的内网穿透,适用于远程开发、IoT设备调试等多种场景。

weixin_28692817的博客 321

提交审核被拒,学会查看APPStore提供的crash报告

趁着有空赶紧来记录一波~ Guideline 2.1 - Performance - App Completeness We were unable to review your app as it crashed on launch. We have attached detailed crash logs to help troubleshoot this issue. 测试过程没有遇到任何的...

xxssztx的博客 1213

Kettle实战:如何用JavaScript脚本实现数据库表批量操作(附完整代码)

本文详细介绍了如何利用Kettle的JavaScript脚本实现数据库表批量操作,包括表名采集、循环遍历和动态SQL生成等关键步骤。通过实战案例和完整代码示例,帮助ETL工程师高效处理数据密集型任务,提升数据库操作的自动化水平。

weixin_29019241的博客 231

appstore 审核崩溃结果分析

提交appstore审核后,如果程序崩溃,解决方案中心消息附件里会有一个崩溃的txt文件,可以用以下方法分析崩溃报告 桌面新建一个名称为crash的文件夹 将附件txt文件拷入,假设其名字为crash.txt到Xcode->Window->Organizer找到提交的那个Archive文件,假设其名字为Test,Show in Finder,右击 Test.xcarchive, 显示包内

luna84的专栏 2190

51单片机-点亮LED和蜂鸣器

ULN2003是高耐压、大电流达林顿陈列,由七个硅NPN达林顿管组成。ULN2003是大电流驱动陈列,多用于单片机、只能仪表、PLC、数字量输出卡等控制电路中。可直接驱动蜂鸣器、继电器等负载。void delay(u16 i) // i等于1大约10uswhile(i--);//取反,高低电平不断变化,产生脉冲delay(10);// 周期200us。

三日沐水 1126

Vue+Echarts监控大屏实例四:智慧农业监控模板实例

本实例通过Vue-Echarts实现了智慧农业监控模板实例界面,学习并使用了vue-echarts的使用,接入高德地图并展示,添加了全屏切换、加载动画小鼓、站点切换及退出等相关功能,提供源码下载。

Java、前端、小程序学习笔记、问题汇总、项目实例分享,有需要请联系。 7667

iOS 如何查看app的崩溃报告

1.集成腾讯的bugly 腾讯Bugly - 一种愉悦的开发方式 2.在Xcode的Crashes里查看(只能看到参与了苹果crashes收集计划的用户) 1.在App Store Connect里查看崩溃情况 2.在Xcode里查看崩溃的具体原因 点击Open in Project ...

baidu_40537062的博客 2615

Docker - 基本概念、与虚拟机的区别、架构、镜像操作、容器操作、数据卷挂载

p :将宿主机端口与容器端口映射,冒号左侧是宿主机端口,右侧是容器端口(配置映射是因为用户只能通过 http 请求访问到服务器,不能直接访问到对应的容器,因此需要服务器端口与容器端口建立映射关系)这里我们有两种启动 redis 的方式,第一种是直接启动 redis ,第二种是以 AOF 持久化的方式启动容器(--appendonly yes),如下图。如果需要持续查看日志信息可以添加 -f 参数,例如:docker logs -f mn ,这里 mn 是自定义容器名称, ctrl + c 可以停止跟踪。

CYK_byte的博客 1万+

ios app crash报告分析

最近上传的一个app,被苹果打回来了,原因是在下载完成之前会挂掉。 还带有4个crash报告。 view plain Incident Identifier: 926328CE-927A-4D1B-940C-B17A0CD1A5DB   CrashReporter Key:   3af694acc56eb48927bd9022990ac1238a192d06  

KING_JENSEN的专栏 1085

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

XCode 10打包上传后在iOS 9上Crash(2018)

问题描述: XCode 10打包的App在iOS 9上Crash。 原因: App Store的Bug,上传后的代码经过App Store处理后,加载assets中的图在iOS 9上会Crash。 解决方案: 切回到XCode 9.4打包,前提是你没有用到一些iOS 12的新特性。 弃用Assets,把里面的图(除了icon和launch image)拖拽到项目里,按照普通图片的方式使用。 等待...

Leo的专栏 5215

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

APP被拒,如何分析AppStore返回的日志文件。

符号化Symbolication 苹果审核被拒返回的crash 文件。

袭明君的专栏 2965

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

记一次app经AppStore更新后打开就crash的奇葩问题

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34204722的博客 196

iOS应用的crash日志的分析基础

Outline 如何获得crash日志 如何解析crash日志 如何分析crash日志      1. iOS策略相关      2. 常见错误标识      3. 代码bug 一、如何获得crash日志 当一个iOS应用程序崩溃时,系统会创建一份crash日志保存在设备上。这份crash日志记录着应用程序崩溃时的信息,通常包含着每个执行线程的栈调用信息(低内存闪退日志

JasonLee的专栏 5万+

AppStore上线遇到坑--Electron打包MAS平台

上架基本信息:所有资料都影响aso,包括上架图。填写对应资料,其中需要注意的是。点击 + ,新建App。

qq_43264377的博客 433

iOS crash log 分析。

背景 使用Delphi开发的APP,提交到App Store审核,结果被拒,并且反馈一个crashlog文件。这个log文件中包含APP基本信息和十六进制的日志,无从下手。 如何看懂这个日志文件 使用symbolicatecrash工具,这个工具应该是Xcode工具自带的。 根据XCo...

chenliaoxi4883的博客 221

IOS查看crash记录

当应用在设备中运行发生崩溃,iOS将记录这些错误日志并且创建了崩溃报告(Crash Report)。崩溃报告中包含了iOS的版本、日期、异常类型、堆栈跟踪以及其他信息。 在Xcode中查看崩溃报告 当应用还在开发过程中发生了崩溃,则直接可以使用Xcode Organizer来查看崩溃报告。按如下操作: 1.打开Organizer; 2.选择“Devices”选项(界面的顶部

wleeming 936

如何用X-code symbolicatecrash命令分析crash文件

有个项目提交到AppStore后被苹果打回来了,说程序运行的时候crash了,还给了我们三个crash文件,但是直接打开文件的话,我们看到的跟平时在Xcode中debug的时候完全不一样,debug的时候控制台打印的是一些函数名之类的.但是苹果给我们的crash文件里面的函数名之类的东西都变成16进制的.因此如果我们要想像平时在Xcode中一样获得一些有用的信息,我们就得做一些转化. 通过查阅官

hanxiaodongruanjian的博客 662

分析iOS Crash文件

转自wufawei的博客http://wufawei.com/2014/03/symbolicating-ios-crash-logs/当你的应用提交到App Store或者各个渠道之后,请问你多久会拿到crash文件?你如何分析crash文件的呢?上传crash文件 你的应用应当有模块能够在应用程序crash的时候上传crash信息。 要么通过用户反馈拿到crash文件,要么借助自己或第3方的c

游来,釉曲 341

分析iOS Crash文件:符号化iOS Crash文件的3种方法

原文来自:这里 当你的应用提交到AppStore或者各个渠道之后,请问你多久会拿到crash文件?你如何分析crash文件的呢? 上传crash文件 你的应用应当有模块能够在应用程序crash的时候上传crash信息。要么通过用户反馈拿到crash文件,要么借助自己或第3方的crash上传模块拿到crash文件。 今天要分析的场景是你拿到用户的.crash文件之后,如何符合化c

No End To Struggle 669

Xcode 10 打包 运行在iOS9上崩溃

问题描述: XCode 10打包的App在iOS 9上Crash(EXC_BAD_ACCESS)。 原因: App Store的Bug,上传后的IPA经过App Store处理后,加载assets中的图在iOS 9上会Crash。 解决方案三选一: 切回到XCode 9.4打包,前提是你没有用到一些iOS 12的新特性。弃用Assets,把里面的图(除了icon和launch image...

weixin_30852419的博客 142

「iOS」一次惨痛的 APP 上架经历

文章关键词:dSYM、#if/#ifdef/#ifndef、IAP(In App Purchase)、Analyze 复制代码 前言与项目背景(废话) 6 月 12 日 - 20 日,一言难尽心酸泪/大哭——提交 5 次,被拒5次,还有谁?/摊手 项目从 5.2.0 接到手之后,到目前提审中的 6.0.4 之前,前前后后一共提交了 8 个版本,不论是新增功能还是优化升级,都能顺利上架。而这次,从 ...

weixin_33875839的博客 1158
上一篇: Android集成友盟分享SDK出现的 "微信发送被拒绝"" 的错误的处理方法
下一篇: mysql 5.7.x 安装启动步骤
jackyvan
博客等级 码龄25年 116粉丝 138原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值