Fabric 在 iOS 上有 BUG
Fabric have a BUG on iOS
我使用该方法上传我的自定义回溯
[[Crashlytics sharedInstance] recordCustomExceptionName:@"test" reason:@"error" frameArray:myArray];
在"myArray"中有两个地址0x10005f35b和0x10005f1b7
在我的 macbook 上,我使用 "dwarfdump" 解析 0x10005f35b 和 0x10005f1b7 可以得到正确的符号。
但我将 0x10005f35b 和 0x10005f1b7 上传到 fabric,fabric 不能符号 0x10005f35b
面料结果:
0x10005f35b (Missing)
0x10005f1b7 -[ViewController fabricStackTest:]
为什么 fabric 无法解析地址 0x10005f35b?
相同的IPA文件和相同的DSym文件,我确实上传了DSym文件到fabric
我解决了这个问题,这是我的应用程序错误,谢谢
当您在 Crashlytics 上看到“(Missing)”时 UI,您可以先检查内存偏移是否与 fabric 相同?
memory_offset = _dyld_get_image_vmaddr_slide(i)
_dyld_get_image_vmaddr_slide() returns the virtural memory address slide amount of the image indexed by image_index. If image_index is out of range zero is returned.
memory_offset 每次启动应用程序时都不同。
memory_address - memory_offset = file_address
file_address 和.dSYM 可以正确符号化一个地址。
我的错误是我将 memory_address 保存到文件中,然后下一个应用程序启动,我传递给 fabric SDK,下一个应用程序启动 memory_offset 不同,因此 fabric 无法符号化地址。
我的解决方案:
我将 file_address 保存到文件中,下次启动应用程序时,我会添加,
file_address + memory_offset = now_address,
我将 now_address 传递给 SDK,可以正确的符号化
我使用该方法上传我的自定义回溯
[[Crashlytics sharedInstance] recordCustomExceptionName:@"test" reason:@"error" frameArray:myArray];
在"myArray"中有两个地址0x10005f35b和0x10005f1b7
在我的 macbook 上,我使用 "dwarfdump" 解析 0x10005f35b 和 0x10005f1b7 可以得到正确的符号。
但我将 0x10005f35b 和 0x10005f1b7 上传到 fabric,fabric 不能符号 0x10005f35b
面料结果:
0x10005f35b (Missing)
0x10005f1b7 -[ViewController fabricStackTest:]
为什么 fabric 无法解析地址 0x10005f35b?
相同的IPA文件和相同的DSym文件,我确实上传了DSym文件到fabric
我解决了这个问题,这是我的应用程序错误,谢谢
当您在 Crashlytics 上看到“(Missing)”时 UI,您可以先检查内存偏移是否与 fabric 相同?
memory_offset = _dyld_get_image_vmaddr_slide(i)
_dyld_get_image_vmaddr_slide() returns the virtural memory address slide amount of the image indexed by image_index. If image_index is out of range zero is returned.
memory_offset 每次启动应用程序时都不同。
memory_address - memory_offset = file_address
file_address 和.dSYM 可以正确符号化一个地址。
我的错误是我将 memory_address 保存到文件中,然后下一个应用程序启动,我传递给 fabric SDK,下一个应用程序启动 memory_offset 不同,因此 fabric 无法符号化地址。
我的解决方案: 我将 file_address 保存到文件中,下次启动应用程序时,我会添加, file_address + memory_offset = now_address, 我将 now_address 传递给 SDK,可以正确的符号化