iOS 应用程序仅在未调试时崩溃

2024-03-30

我正在使用 testflight 来测试我的应用程序,并且只有当应用程序是为临时构建并通过测试飞行分发时才会发生崩溃。相关崩溃报告详细信息如下:

Date/Time:       2012-06-11 09:00:34.638 +0800
OS Version:      iPhone OS 5.1.1 (9B206)
Report Version:  104

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x00000009
Crashed Thread:  0

Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   libobjc.A.dylib                 0x34e74f78 objc_msgSend + 16
1   appName                         0x0002963e __24-[XYPieChart reloadData]_block_invoke_0168 (XYPieChart.m:321)
2   libdispatch.dylib               0x30295c52 _dispatch_call_block_and_release + 6
3   libdispatch.dylib               0x302a0e8a _dispatch_main_queue_callback_4CF$VARIANT$up + 190
4   CoreFoundation                  0x371482a6 __CFRunLoopRun + 1262
5   CoreFoundation                  0x370cb49e CFRunLoopRunSpecific + 294
6   CoreFoundation                  0x370cb366 CFRunLoopRunInMode + 98
7   GraphicsServices                0x3388a432 GSEventRunModal + 130
8   UIKit                           0x30e77cce UIApplicationMain + 1074
9   appName                         0x00003b20 main (main.m:14)
10  appName                         0x00003ad8 0x1000 + 10968

以及引用的代码 - (XYPieChart.m:321)

    [CATransaction begin];
    [CATransaction setAnimationDuration:_animationSpeed];

    [_pieView setUserInteractionEnabled:NO];

    __block NSMutableArray *layersToRemove = nil;
    [CATransaction setCompletionBlock:^{

        if (layersToRemove) {
            [layersToRemove enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
                if (obj)
                    [obj removeFromSuperlayer];
            }];

            [layersToRemove removeAllObjects];
        }

        for(SliceLayer *layer in _pieView.layer.sublayers)
        {
            [layer setZPosition:kDefaultSliceZOrder];
        }

        [_pieView setUserInteractionEnabled:YES];
    }];

    BOOL isOnStart = ([slicelayers count] == 0 && sliceCount);
    NSInteger diff = sliceCount - [slicelayers count];
    layersToRemove = [NSMutableArray arrayWithArray:slicelayers];

    BOOL isOnEnd = ([slicelayers count] && (sliceCount == 0 || sum <= 0));
    if(isOnEnd)
    {
        for(SliceLayer *layer in _pieView.layer.sublayers){
            [self updateLabelForLayer:layer value:0];
            [layer createArcAnimationForKey:@"startAngle"
                                  fromValue:[NSNumber numberWithDouble:_startPieAngle]
                                    toValue:[NSNumber numberWithDouble:_startPieAngle] 
                                   Delegate:self];
            [layer createArcAnimationForKey:@"endAngle" 
                                  fromValue:[NSNumber numberWithDouble:_startPieAngle]
                                    toValue:[NSNumber numberWithDouble:_startPieAngle] 
                                   Delegate:self];
        }
        [CATransaction commit];
        return;
    }

如果我可以在调试时重现它,我将能够追踪问题,但它似乎只在为临时构建时才会发生。谢谢!

编辑: 使用模拟器,我已将问题追踪到这一行的 EXC_BAD_ACCESS

[layersToRemove enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {

我遇到了类似的问题并尝试更改项目构建设置,但它对我不起作用。最终通过更改发行版的编译器优化级别设置解决了我的问题:

在构建设置中,转到 LLVM 编译器 4.2 - 代码生成部分,查找优化级别选项并将发布设置从最快、最小 [-Os] 更改为无 [-O0]。

希望这可以帮助!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iOS 应用程序仅在未调试时崩溃 的相关文章

  • 是否有针对不同屏幕尺寸的单独故事板?

    基本上我已经完成了一个应用程序 我唯一的问题是 ATM 机应用程序在设计时只考虑了 4 英寸显示屏 当在 3 5 英寸模拟器上运行时 应用程序会丢失 0 5 英寸 显然 那么我的问题是 如何在 Xcode 5 中为不同的屏幕尺寸设置不同的故
  • UICollectionView 自动滚动到 IndexPath 处的单元格

    在加载集合视图之前 用户设置集合视图数组中的图像数量 所有单元格都不适合屏幕 我有 30 个单元格 但屏幕上只有 6 个 问题 如何在加载 UICollectionView 时自动滚动到具有所需图像的单元格 新的 编辑过的答案 将其添加到v
  • 是否有适用于 iPad 2 的条码扫描仪 SDK? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 修补应用内购买黑客;卡在第四步

    正如我们许多人所知 苹果最近出现了一种情况 黑客可以免费获得任何应用内购买 苹果最近发布了这个文件 http developer apple com library ios releasenotes StoreKit IAP Receipt
  • ios 用户如何取消 Facebook 登录?

    当用户到达此屏幕时 无法取消 我能做些什么 为了首先获得这个视图 我正在运行 NSMutableDictionary params NSMutableDictionary dictionaryWithObjectsAndKeys vid l
  • 本地化现有的 iOS 应用程序

    我不敢相信以前没有人问过这个问题 要么是我的编码实践太无组织性 要么是我没有使用正确的关键字 How can I localize an existing iOS app that does not use NSLocalizedStrin
  • 打乱 NSMutableArray 而不重复并显示在 UIButton 中

    在我看来 我有 12 个按钮 一个数组包含 6 个名称 我想在其中打印数组名称UIButton标题 这是我的代码 texts NSMutableArray alloc initWithObjects 1 2 3 4 5 6 nil UIBu
  • 模块未使用库演化支持进行编译;使用它意味着无法保证二进制兼容性

    最近我遇到了 SDK 的编译时警告 这是否意味着它不是使用目标设置 构建用于分发的库 构建的 你需要设置Build Libraries for Distribution在项目中Build Settings to No然后它就会消失
  • 在横向中自动调整 UITableCells 内容的大小

    在 UITableView 中 我通过 UILabels 将内容添加到单元格中 定义最佳尺寸 与单元格宽度允许的一样大 我注意到只有tableView contentSize width是可靠的 因为cell contentView bou
  • 如何在 iOS 9 上可靠地检测是否连接了外部键盘?

    在 iOS 9 之前 确定是否连接外部键盘的最可靠方法是监听UIKeyboardWillShowNotification并使文本字段成为第一响应者 如中所述这个问题 https stackoverflow com questions 289
  • GeoFire Swift 3 - 保存和更新坐标

    我正在尝试使用 GeoFire 将坐标存储到 Firebase 数据库中 我不确定如何更新新坐标 因为它们每秒都会更改 更新 随着childByAutoId 它正在为每辆自行车生成一个新的唯一 ID 如何引用这个唯一的自行车 ID 例如 用
  • 如何将 UILabel 的值绑定到实例变量?

    我是 mac objective c 的新手 我的问题是 我想知道是否可以将 UILabel 文本绑定到变量 而不必在值更改时手动设置文本 例如 在 Mac OS 上 当我打开新的 Finder 窗口并删除文件时 任务栏中的全局可用空间就会
  • 更改组织以使用 Xcode 9 在 iTunes Connect 上上传二进制文件

    我在 Xcode9 上配置了多个团队 当我尝试将二进制文件上传到 Xcode 9 上的 iTunes Connect 时 没有更改团队的选项 并且出现以下错误 ERROR ITMS 4088 来自苹果开发者论坛的解决方案 1 正常存档2 窗
  • Firebase 身份验证问题 - 通过电子邮件地址检查用户是否存在

    我在 Firebase 上创建了一个帐户 它有效 但现在我想阻止人们使用已存在的电子邮件地址创建帐户 这是代码 DatabaseManager shared userExists with email completion weak sel
  • Objective-C – 拥有包含 TestFlight SDK 的 TestFlight 配置

    我已按照 TestFlight 的说明复制 发布 配置 我还使用 TestFlight SDK 从我的应用程序获取实时报告 通过这样做 我必须在我的应用程序中包含一些 TestFlight 代码 当然 我不想在我的应用程序的发布版本中包含此
  • UIPanGestureRecognizer 对坐标的限制

    我在主 UIView 中添加了一个子视图 称为panel 并且我向其中添加了gestureRecognizer 因为我希望它只能在Y轴上拖动并且只能在某些限制下 即160 300 超过300它不能拖动 我以这种方式实现了手势处理 IBAct
  • 在 iOS 中,如何创建一个始终位于所有其他视图控制器之上的按钮?

    无论是否呈现模态或用户执行任何类型的转场 有没有办法让按钮在整个应用程序中 始终位于顶部 而不是屏幕顶部 有什么方法可以让这个按钮可拖动并可捕捉到屏幕上吗 我正在以苹果自己的辅助触摸作为此类按钮的示例 您可以通过创建自己的子类来做到这一点U
  • 根据 iOS 版本使用不同的类实现?

    iOS 11 最近添加了一个我想使用的新功能 但我仍然需要支持旧版本的 iOS 有没有一种方法可以将同一个类编写两次 并让较新版本的 iOS 使用该类的一个版本 而旧版本的 iOS 使用另一个版本 注 最初我用的是if available
  • 如何将 ios7 通用应用程序升级到基于 Xcode 6 的通用故事板应用程序?

    我目前有一个基于 xcode 5 ios 7 的通用应用程序 因此有两个故事板 我正在考虑将其更新到 ios 8 有没有办法 最佳方法将两个故事板迁移到通用的单个故事板 我在 xcode 6 中看不到转换选项 None
  • PFQueryTableViewController 错误

    我正在遵循在线教程 使用 Parse 作为后端创建照片共享应用程序 我已经运行了两次教程 两次都从头开始创建应用程序 但在同一位置仍然出现相同的错误 我到处寻找解决方案 但仍然没有运气 我正在使用 PFQueryTableViewContr

随机推荐