应用程序被拒绝两次但无法在iOS 9.2上重现该问题。我需要帮助识别它

时间:2016-01-12 08:23:26

标签: c# ios xamarin crash

我无法在任何iPhone和iPad上重现这个问题,所有构建在Debug,Release甚至与iTunes一起安装的ad-hoc构建的工作都很好。这是已有应用的更新。从以前版本添加的唯一内容是使用Azure通知中心的通知和版本检查。我正在使用最新版本的Xamarin iOS来创建应用程序

支持的体系结构是ARMv7 + ARM64

我试过了:

  • 运行僵尸乐器
  • 最小化启动负载

崩溃日志的一部分在这里,但我无法做任何事情

Incident Identifier: 533700FF-EE1C-4DFC-AFAD-60FE3600B66D
CrashReporter Key:   9cadde5ef1a33ebb1b6aeeaed6696a7ce8b4087d
Hardware Model:      xxx
Process:             TapNOrder [9390]
Path:                /private/var/mobile/Containers/Bundle/Application/45780C57-DBB0-465C-872F-8A3BE6723261/TapNOrder.app/TapNOrder
Identifier:          biz.innovative-ideas.tapnorder
Version:             0.1.7.2 (0.1.7)
Code Type:           ARM-64 (Native)
Parent Process:      launchd [1]

Date/Time:           2016-01-11 15:00:11.11 -0800
Launch Time:         2016-01-11 15:00:11.11 -0800
OS Version:          iOS 9.2 (13C75)
Report Version:      105

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Subtype: KERN_INVALID_ADDRESS at 0x0000000000000000
Triggered by Thread:  0

Filtered syslog:
None found

Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   ???                             000000000000000000 0 + 0
1   TapNOrder                       0x0000000100f8984c 0x1000a8000 + 15603788
2   TapNOrder                       0x0000000100f88c40 0x1000a8000 + 15600704
3   TapNOrder                       0x0000000100f88c78 0x1000a8000 + 15600760
4   TapNOrder                       0x0000000100d7e570 0x1000a8000 +     13460848
5   libobjc.A.dylib                 0x00000001827fab54 0x1827f4000 + 27476
6   libobjc.A.dylib                 0x0000000182806080 0x1827f4000 + 73856
7   libobjc.A.dylib                 0x00000001828060e0 0x1827f4000 + 73952
8   UIKit                           0x000000018822fefc 0x187e6c000 + 3948284

...

Thread 0 crashed with ARM Thread State (64-bit):
x0: 0x0000000000000000   x1: 0x0000000000000000   x2: 0x00000001a0a82180   x3: 0x000000016fd55f08
    x4: 0x000000013d88f680   x5: 0x0000000000000000   x6: 0x000000013d562090   x7: 0x0000000000000b20
    x8: 0x0000000000000000   x9: 0x0000000000000000  x10: 0x0000000000000557  x11: 0x00000001a2f35929
   x12: 0x00000001a2f35929  x13: 0x0000000000000001  x14: 0x000000008000001f  x15: 0x0000000080000023
   x16: 0x0000000182dfbaf4  x17: 0x00000001014082d8  x18: 0x0000000000000000  x19: 0x0000000101471870
   x20: 0x000000013d562090  x21: 0x0000000182818fa6  x22: 0x0000000100d7e540  x23: 0x00000001a0a823e0
   x24: 0x000000018280de80  x25: 0x000000019fb37616  x26: 0xf3002d81df52aec2  x27: 0x000000019feef000
   x28: 0x000000019feef000  fp: 0x000000016fd55f20   lr: 0x0000000100f863b0
    sp: 0x000000016fd55f10   pc: 0x0000000000000000 cpsr: 0xa0000000

完整的崩溃日志位于:Apple Crash Log

有什么想法吗?

2 个答案:

答案 0 :(得分:6)

Crash Re Symbolication是查找确切崩溃问题的过程。

只需按照给定的步骤来解决崩溃问题。 要从崩溃日志中获取符号化日志,您需要以下文件:

  1. AppName.app - 应用程序文件(可执行文件)
  2. AppName-dsym.dSYM - dSYM文件,由实际的.app文件编译后由XCODE生成
  3. AppName的碰撞-log.crash
  4. enter image description here

    请仔细按照所有步骤操作,然后检查崩溃日志,找到崩溃应用程序的确切位置。

    现在按照以下步骤进行操作:

    1. 将所有上述文件(AppName.app,AppName-dSYM.dSYM和AppName-Crash-log.crash)移动到一个方便名称的文件夹中,只要您轻松使用终端即可。只需在桌面上创建MyCrashReport文件夹并在其中添加所有三个文件。

    2. 转到以下适用于您的XCODE版本的路径:

    3. Xcode 6

      /Applications/Xcode.app/Contents/SharedFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/symbolicatecrash

      其他Xcode 6

      内容/开发商/平台/ iPhoneOS.platform /开发商/库/ PrivateFrameworks / DTDeviceKitBase.framework /版本/ A /资源/ symbolicatecrash

      或者

      目录/开发人员/平台/ iPhoneOS.platform / Developer / Library / PrivateFrameworks / DTDeviceKit.framework / Versions / A / Resources / symbolicatecrash

      XCode 7.3

      /Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash

      1. 从此位置复制symbolicatecrash文件,并将其与以上三个文件粘贴在MyCrashReport文件夹中。
      2. enter image description here

        1. 打开终端,将CD发送到MyCrashReport文件夹。

        2. cd Desktop / MyCrashReport - 按Enter

        3. export DEVELOPER_DIR =“/ Applications / XCode.app / Contents / Developer” - 按Enter键

        4. ./ symbolicatecrash -v AppName-Crash-log.crash AppName.dSYM - 按Enter键

        5. 它完成了! 现在符号化日志在您的终端上,并发现错误或崩溃。

          检查此链接以获取详细说明。 https://medium.com/@Mrugraj/crash-re-symbolication-5c28d3a3a883#.4lvl4h625

答案 1 :(得分:0)

我在此目录中找不到该文件 目录/ Developer / Platforms / iPhoneOS.platform / Developer / Library / PrivateFrameworks / DTDeviceKit.framework / Versions / A / Resources 因为某些原因我错过了文件夹/DTDeviceKit.framework并且dsym文件也无法下载,所以我按照这个程序将其发布在这里如果其他人需要它,不需要终端:

如果您拥有与崩溃日志匹配的正确.ipa和.dSYM文件:

  1. 为简单起见,将它们全部放入一个文件夹中
  2. 将您的设备附加到您的macbook,
  3. 从您的设备中删除您的应用
  4. 直接通过itunes通过.ipa设备安装应用程序(这可能需要一些搜索,但相当容易)
  5. 完成后,确保您的应用与导致崩溃日志的应用匹配,请打开XCode。

    在Xcode中,

    1. 启动窗口|设备视图
    2. 选择您的设备,
    3. 点击查看设备日志
    4. 将崩溃日志拖到日志窗口(左侧窗格,标题下:Process / Dev / etc ..
    5. 就是这样,Xcode自动象征着崩溃日志。