首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

iOS 4应用程序在iOS 3.1.3启动时崩溃:未找到符号:__ NSConcreteStackBlock

问题描述:

iOS 4应用程序在iOS 3.1.3启动时崩溃:未找到符号:__ NSConcreteStackBlock

回答:

这个问题是由于在iOS 3.1.3的系统中,缺少了NSConcreteStackBlock符号导致的。NSConcreteStackBlock是iOS 4引入的一个特性,用于支持Block语法。

Block是一种闭包语法,它允许我们在代码中定义匿名函数,并且可以在其他地方调用。在iOS开发中,Block常用于异步操作、回调函数等场景。

在iOS 3.1.3系统中,由于没有引入Block特性,所以无法找到__NSConcreteStackBlock符号,导致应用程序在启动时崩溃。

解决这个问题的方法是:

  1. 升级iOS系统版本:由于iOS 3.1.3系统不支持Block特性,建议将设备升级到支持Block的iOS版本,如iOS 4及以上版本。
  2. 修改代码:如果需要在iOS 3.1.3系统上运行应用程序,需要修改代码,将使用Block的部分替换为其他方式实现相同的功能,如使用代理、通知等方式进行回调操作。

推荐的腾讯云相关产品和产品介绍链接地址:

腾讯云提供了丰富的云计算产品和服务,包括云服务器、云数据库、云存储等。您可以访问腾讯云官网了解更多详情:https://cloud.tencent.com/

注意:根据要求,本回答不涉及其他云计算品牌商的信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

iOS开发笔记(三)

解决方法: 重新注册apple id; apple.com修改appid的信息; iOS10 1、未找到应用程序的“aps-environment”的授权字符串 "getting push token...failed: Error Domain=NSCocoaErrorDomain Code=3000 "未找到应用程序的“aps-environment”的授权字符串" UserInfo={NSLocalizedDescription...=未找到应用程序的“aps-environment”的授权字符串} 解决方案:打开Xcode8,点击下面的地方。...Xcode项目每次编译后,都会生成一个新的.dSYM文件,故而真机上的崩溃日志需要检查对应的符号表。 ?...(老工程新建于2013年,猜测是这个原因;可惜没有找到断点失效的真正原因) 2、Xcode并存 finder中打开应用程序,把xcode改成xcode8,再下载xcode7; pod相关 diff

2.1K50
  • HOOK原理

    iOS逆向中是指改变程序运行流程的一种技术。通过HOOK技术可以让别人的程序执行自己所写的代码。逆向中经常使用这种技术。所以在学习过程中,我们重点要了解其原理,这样能够对恶意代码进行有效的防护。...iOS中HOOK技术的几种方式 Method Swizzle:主要用于OC方法,利用OC的Runtime特性,动态改变SEL(方法编号)和IMP(方法实现)的对应关系,达到OC方法调用流程改变的目的,这种技术之前的...系统进程一旦出错,可能导致整个进程崩溃崩溃后就会造成iOS瘫痪。...,MachO中,找到偏移地址0x63D4,指向__TEXT,__stubs_helper中的代码,查看Mach-O中0x63D4偏移量的内容 【7】从Mach-O中可以看到,使用b指令跳转至偏移量为...,会绑定非懒加载符号和弱引用符号,所以dyld_stub_binder函数的值,程序启动时被dyld直接绑定。

    1K20

    扒虫篇-崩溃日志解读及Crash收集

    这个过程称为符号化解析。要成功地符号化解析一份crash日志,我们需要有对应的应用程序二进制文件以及符号(.dSYM)文件。...收集崩溃日志 获取崩溃信息方式 iOS中获取崩溃信息的方式有很多,比较常见的是使用友盟、云测、百度、Crashlytics等第三方分析工具,或者自己收集崩溃信息并上传公司服务器。...: 将崩溃信息持久化本地,下次程序启动时,将崩溃信息作为日志发送给开发者。...,将崩溃信息写入本地,APP再次启动时,将崩溃信息上传到我们的服务器。...iOS中, 收集Crash主要通过两种方式, 一种是信号量机制,因为crash通常会发出信号量,标明某某应用崩溃了, 另一种方式是每一个应用都有一个crash handle, 即崩溃钩子, 每当程序崩溃

    2.8K10

    iOS如何获取崩溃日志

    前言 日常测试iOS中会经常遇到App崩溃的情况,然后给研发提bug。如果就提bug就有一两句话描述,研发很难精准排查问题,所以作为测试人员需要提供崩溃日志或者崩溃堆栈辅助研发排查问题。...iOS获取日志方法 Xcode工具 先来介绍一种最简单的方式使用Xcode工具方式,手机和mac连接后,打开Xcode选择window进入Organizer,Organizer窗口上,选中Devices...image 左侧的导航面板上,选中View Device Logs,如下图所示: Logs菜单就可以看到mac曾经同步过的iOS设备的崩溃日志。...崩溃日志符号解析 通过上面两种方式,我们可以拿到crash后的文件。但是crash日志包含很多字符是16进制的,无法看到具体的类名和方法名,所以需要通过把crash文件符号化。...准备工作: 创建一个crashlog的文件夹 转化符号工具: dsym(符号表文件) 相当于类名和方法名的参考表,Xcode打包的时候会自动产生,我本地的路径: ~/Build/Products/ONLINE-iphonesimulator

    3.1K20

    简述OC语言

    Class中先去cache中通过SEL查找对应函数method(cache中method列表是以SEL为key通过hash表来存储的,这样能提高函数查找速度),若cache中未找到,再去methodList...中查找,若methodlist中未找到,则取superClass中查找。...生命周期 1、application didFinishLaunchingWithOptions:当应用程序启动时执行,应用程序启动入口,只应用程序启动时执行一次。...2、applicationWillResignActive:应用程序将要由活动状态切换到非活动状态时候,要执行的委托调用,如 按下 home 按钮,返回主屏幕,或全屏之间切换应用程序等。...4、applicationWillEnterForeground:应用程序将要进入前台时(被激活),要执行的委托调用,刚好与applicationWillResignActive 方法相对应。

    2.1K20

    iOS 优化 - 启动优化

    之前曾在iOS 优化-瘦身文章中提到过 iOS 优化将会是一个专题,今天就带来 iOS 优化系列的第二篇,主要介绍一下启动优化,即如何减少应用的启动时间。...为什么 App 很久未启动也会发生冷启动: iOS 上,处于后台的应用程序会逐渐从内存移除从而为前台应用程序提供更多的内存,所以当用户正在使用内存密集型的游戏应用,然后重新进入你的 App 程序,这时你的应用程序依赖于启动的框架和守护程序也可能需要重新启动并从磁盘调入...扩展 iOS 15 及更高版本中,系统可能会根据设备条件预热您的应用程序 — 启动未运行的应用程序进程以减少用户应用程序可用之前等待的时间。...同时专项优化启动时间后,也要制定相应的措施去防止劣化。 Let's be CoderStar!...参考资料 reducing-your-app-s-launch-time[6] 58 同城 App 性能治理实践-iOS 启动时间优化 iOS 优化篇 - 启动优化之 Clang 插桩实现二进制重排[7

    3.9K20

    iOS 程序秒退原因分析及解决思路总结

    1.程序运行在较老的iOS系统或者老版机型上 2.程序运行时,系统动态链接库或Framework无法找到 3.程序初始化时无法正确读取到用户数据而秒退 4.App 的设置不正确 5.程序里的某个功能在新版操作系统才具有...,但在实现中未对系统版本进行区别对待,导致用到该功能就退出程序 总结: 主要的秒退情况就是这么几个,并且这都是以该应用程序新版系统上能正常运行为前提的。...秒退和内存不足关系不大,很少有程序会在初始化时载入大量内容导致崩溃,并且这类问题也很容易开发阶段被发现,所以内存不足造成秒退的可能性低(内存不足退,通常是程序用了一段时间,切换了几个画面以后发生的)。...例如程序启动时用到了 Game Center,而没有判断用户的机器是否支持 Game Center,于是就秒退了。 解决思路? 1.可以加个友盟统计,或者自己写个崩溃日志。...如果是测试阶段报错的话,可以(设置-通用-关于本机-诊断与用量)里面看到崩溃的堆栈信息。 如果用mac的话,访问到已经释放了的内存,和内存警告这2种出错几率要高些。

    2.7K50

    Bugless 异常监控系统 (iOS端)

    它的主要功能: 实时监控SDK业务异常 汇总包体崩溃排重与聚合后的数据 统计影响设备数 上报崩溃日志 收集iOS系统向上兼容性问题 监控客户端请求的网络问题 <!...二、认识崩溃和异常 讲解 Bugless 之前,让我们从三个层面来介绍,让大家认识App为什么会出现崩溃和异常,以及如何应对。...Unix 信号的种类有很多, iOS 应用程序中,常见的 Unix 信号有如下几种: SIGILL:程序非法指令信号,通常是因为可执行文件本身出现错误,或者试图执行数据段。... iOS App 中,一般情况采集以上几个常见的信号,就能满足日常采集 App 异常的需求。...Bugless解析日志 [表 4 Bugless解析日志] 七、总结 7.1、Bugless 应用过程中存在的问题 使用过程中也发现了几个问题,其中告警误报的情况时有发生。

    2.5K30

    iOS符号化浅析

    符号化程度一般会分为三种: 未符号化 部分符号化 完全符号符号化程度 符号化一般情况会需要下面三个部分 崩溃日志 dSYM 文件 符号化工具 崩溃日志 崩溃日志的获取有多种来源,包括以下几种:...APP 运行时 Crash 自动修复系统[4],也有一个对应开源框架JJException[5],也就是我们常说的安全气垫。...而要将系统库的符号化为完整的方法名,也需要 iOS 各系统库的符号文件。 系统库符号的文件不是通用的,需要对应崩溃所在设备的系统版本和 CPU 型号。...相关细节可查看下面《iOS 符号解析重构之路》以及《iOS 符号化:基础与进阶》。 解析 DWARF 过程中我们可以根据自己的情况选用一些工具。...iOS 符号解析重构之路 iOS 符号化:基础与进阶 iOS 崩溃日志在线符号化实践 漫谈 iOS Crash 收集框架[16] iOS Crash 分析:符号化系统库方法[17] 聊聊从 iOS 固件提取系统库符号

    1.8K41

    手把手教你查看和分析iOS的crash崩溃异常

    崩溃的函数调用栈中可以看出异常是出现在最顶层的函数调用objc_msgSend+16处,也就是objc_msgSend函数的第5条指令处(通常情况下arm体系结构中每条指令占用4个字节,上述的信息表明是崩溃函数的第...你可以崩溃异常报告的: OS Version: iOS 10.3.3 (14G60) 部分看到产生异常的操作系统版本号,就如本文的例子里面产生异常的操作系统版本号为iOS 10.3.3。...符号断点的设置 当程序停在了设置符号断点的函数或者方法的开始地址后,接下来就需要在这个方法内进行第二个断点的设置,设置的地方就是崩溃函数调用栈中函数调用上层函数的偏移处,这个可以崩溃的报告中看到: 0...如果崩溃函数是应用程序本身中被定义,那么需要将上传到appstore的ipa文件解压缩并提取出其中的可执行程序用工具打开即可。...如果崩溃函数是某个系统库中被定义,那么可从如下的路径: ~/Library/Developer/Xcode/iOS DeviceSupport/ iOS DeviceSupport这个文件夹下的内容将展示你所有曾经联机调试过的各种操作系统版本的库的一份拷贝

    6K31

    使用symbolicatecrash解析了一个crash log

    有一天,测试同学给了我一个未经符号化的崩溃日志。如果是以前,我会找到打这个测试包的同事,让他将奔溃日志符号化后发给我。...它一定会与iOS的版本有关,因为iOS的每次升级,肯定都会有不同的system framework的符号文件。...查了一下,果然,~/Library/Developer/Xcode/iOS DeviceSupport/中能看到以iOS版本号命名的一些文件夹。...而我需要符号化的崩溃日志,发生在运行着iOS7.0.6的设备上。而我电脑中,这个文件夹里面却没有iOS7.0.6的文件夹。...想起每当我第一次将某个iOS设备连接到电脑上时,Xcode都会loading一段时间,才能使用这个设备。loading的阶段,依稀记得Xcode上的提示是“copying symbols”之类的。

    86320

    有赞crash平台符号化实践

    作者:杨杨 & 姜豪 部门:电商移动 背景 有赞基础保障平台的实践中完成了 Crash平台 的建设,但是iOS崩溃日志未经符号化,排查问题比较困难。...为了降低iOS App的crash率,快速排查线上crash,疑难crash的跟踪处理,符号崩溃日志显得尤为重要!...一、crash日志的收集与分析 1.1 如何收集crash日志 1.手机上直接看,隐私-分析与改进 -分析数据,可以找到所有崩溃日志,未符号化。...1.2 crash日志的结构 日志可以分成4个部分,基本信息,崩溃的原因,所有线程调用,Binary Images (二进制文件列表)。 1.2.1 基本信息 ? 1.2.2 崩溃原因 ? 线程 ?... ~/Library/Developer/Xcode/iOS DeviceSupport/os/Symbols 这个路径再拼上image中的path,就是完整路径 比如 ~/Library/Developer

    1.4K40

    开发人员需要了解的 iOS 14 beta 5 更新

    Apple 于 8 月 18 日发布了面向开发者的 iOS 14 beta 5 和 iPadOS 14 beta 5。开发者可以 设置 -> 通用 -> 软件更新 中安装更新。...用户也可以输入时间,也可以通过滚轮来调整时间,不过滚轮是直接嵌输入框中; 调整了 HomeKit 控制中心的 “收藏夹” 组织方式及图块的大小; 设置 中,添加了禁用应用程序“照片” 中隐藏相册的功能...可以 设置 -> 照片 中找到这一选项; 可用性警告,主要针对 COVID-19 Exposure 通知; 通过 “可用性警告”,iOS 14 将通知用户所在区域是否有可用的 Exposure 通知应用程序...如果启用了该通知,则受支持的应用程序启动时,会在顶部收到通知,所以用户可以自行选择是否启用; 设置 中新增了针对开发人员的 App Clip 新测试功能; 新的小部件位置访问请求的; 快捷指令...之前向已移除的观察者发送信号时,会导致难以诊断的崩溃问题,现在则会产生一个异常,指出需要 removeObserver(_:) 哪些对象。

    97810

    如何全面监控 iOS 千奇百怪的崩溃

    ▐ 3.1 信号可捕获崩溃 kvo NSNotification线程问题 数据越界 野指针 ▐ 3.2 信号不可捕获崩溃 后台任务超时 内存打爆 主线程卡顿阀值‍ 4....里看到符号化后的崩溃日志了。...而将数据保存在本地磁盘中,就可以 App 下次启动时能够很方便地读取到这些信息。...除了崩溃率,你还可以在这个平台上能查看次数、用户数等趋势。下图展示的是某一个 App 的崩溃不同 iOS 系统、不同 iPhone 设备、App 版本的占比情况。...小结 ---- 学习完今天的这篇文章,我相信你就不再是只能依赖现有工具来解决线上崩溃问题的 iOS 开发者了。遇到那些工具无法提供信息的崩溃场景时,你也有了自己动手去收集崩溃信息的能力。

    2.1K20
    领券