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

App rejected twice but cannot reproduce the issue on iOS 9.2. I need help identifying it

我无法在任何 iPhone 和 iPad 上重现该问题,所有基于 Debug、Release 的构建甚至使用 iTunes 安装的临时构建都可以正常工作。这是对现有应用程序的更新。从以前的版本中添加的唯一内容是使用 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

有什么想法吗?

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

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

  1. AppName.app — 申请文件(可执行文件)
  2. AppName-dsym.dSYM — dSYM 文件,由XCODE 在实际.app 文件编译时生成
  3. AppName-Crash-log.崩溃

仔细执行所有步骤,然后检查崩溃日志,您会找到应用崩溃的确切位置。

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

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

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

Xcode 6

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

除此之外 Xcode 6

Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/symbolicatecrash

Contents/Developer/Platforms/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 文件夹中。

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

  2. cd Desktop/MyCrashReport — 回车

  3. 导出DEVELOPER_DIR="/Applications/XCode.app/Contents/Developer" — 回车

  4. ./symbolicatecrash -v AppName-Crash-log.crash AppName.dSYM — 回车

完成了!!! 现在符号化的日志在您的终端上,并找出其中的错误或崩溃。

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

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

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

  1. 为简单起见,将它们全部放入一个文件夹中,
  2. 将您的设备连接到您的 macbook,
  3. 从您的设备中删除您的应用,
  4. 直接通过 itunes 通过 .ipa 设备安装应用程序(这可能需要一些搜索,但相当简单)

完成后,您确信您的应用与导致崩溃日志的应用匹配,打开 XCode。

在Xcode、

  1. 启动 Window |设备视图
  2. Select 你的设备,
  3. 点击查看设备日志
  4. 将您的崩溃日志拖入日志 window(left-hand 窗格,在 headers 下:Process / Dev / etc..

就是这样,Xcode 自动符号化了崩溃日志。