ios - 如何在iOS崩溃报告中找到苹果团队测试过的硬件型号

标签 ios xcode crash-reports

我最近因为 crash 被 Apple 拒绝了一个应用程序,但我无法从我们的最后重现崩溃。我检查了所有兼容的设备:iPhone , iPadiPod .但是,我仍然无法重现崩溃。

我的问题是:我如何了解 Apple 团队使用哪个设备来测试应用程序。在崩溃报告中,他们提到 Hardware Model: xxx .请问,有谁知道如何找到Hardware Model被苹果团队使用?

Incident Identifier: 71C3E97D-4DF2-A84F-5EB28058AA11 CrashReporter Key: 025fa689e0eb7fe33eaf5858d306609d6fb Hardware Model: xxx Process: ------- [225] Path:
/private/var/mobile/Containers/Bundle/Application/1EE9FA90-432C-B19E-92ACE9AD72C5/------.app/------ Identifier: ------------ Version: 1.0 (1.0) Code Type: ARM-64 (Native) Parent Process: launchd [1]

Date/Time: 2014-12-02 10:32:31.758 -0800 Launch Time:
2014-12-02 10:18:02.789 -0800 OS Version: iOS 8.1.1 (12B435) Report Version: 105

Exception Type: EXC_CRASH (SIGABRT) Exception Codes: 0x0000000000000000, 0x0000000000000000 Triggered by Thread: 0

Last Exception Backtrace: (0x18510e59c 0x195c840e4 0x184ff91f8 0x100086e1c 0x1000ddca0 0x1898c0aa0 0x1898c07b0 0x18993d060 0x18993cf74 0x1899afa48 0x189bd7f18 0x189bd86c0 0x1899adcf0 0x1899e3058 0x1899e2024 0x1899b3e90 0x1899b27cc 0x1899b051c 0x189bda218 0x1899e78c4 0x18998fec4 0x18998fec4 0x18998fc60 0x1000a48c0 0x18fc4a148 0x18b4e4438 0x18b540c1c 0x18b536acc 0x18b54053c 0x183992bc0 0x1839c6660 0x1839c66b8 0x1962c93ac 0x1962c936c 0x1962cd980 0x1850c5fa4 0x1850c404c 0x184ff10a4 0x18e1675a4 0x1899263c0 0x1001337e0 0x1962f2a08)

最佳答案

这有点晚了,但可能对其他人有用。到目前为止我找到的唯一获得 的方法硬件型号标识符 一个 iOS 设备是通过采取在 this 中看到的方法类(class)。如果有其他方法,请发表评论。
为了可能丢失此链接,这里总结了如何通过较小的更改( objective-c )进行操作:

#include <sys/sysctl.h>

...

- (NSString*)hardwareModelIdentifier
{
  char* typeSpecifier = "hw.model";
  size_t size;
  sysctlbyname(typeSpecifier, NULL, &size, NULL, 0);

  char* answer = malloc(size);
  sysctlbyname(typeSpecifier, answer, &size, NULL, 0);
  
  NSString* modelIdentifier = [NSString stringWithCString:answer encoding: NSUTF8StringEncoding];

  free(answer);
  return modelIdentifier;
}
结果应与此 list 上的“内部名称”列匹配.例如。对于 iPhone 12,您应该获得 D53gAP。
请注意,这是 不是 应用商店证明。如果您使用这种方法成功提交了应用,请告诉我。
进一步注意,在标题 sysctl.h旁边 model它说 /* Deprecated: use hw.target */ .
我对 Xcode 12.0.1 和 iOS 13.7 的测试确实表明,在撰写本文时,仅使用字符 hw.model提供的结果为 hw.target没有提供任何结果(在模拟器和设备上测试)。

关于ios - 如何在iOS崩溃报告中找到苹果团队测试过的硬件型号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27371894/

相关文章:

ios - 我可以让 UISearchBar 成为它自己的 .inputAccessoryView 吗?

ios - Swift:初始化自定义 UITableViewCell 时获取 UITableView 框架

ios - 当声明@property (nonatomic) BOOL varname 时,使用带有 _varname 的未声明标识符

swift - Xcode Playgrounds 共享目录不工作

javascript - 如何找出导致我的 Javascript 使浏览器选项卡崩溃的原因?

ios - 如何从 iPhone 中提取从 App Store 下载的应用程序的 IPA,以便我可以看到 IPA 中的 Assets ?

ios - 推送通知传递和关闭回调

xcode - AVAudioPlayer 以及搜索栏和播放暂停按钮

ios - 需要苹果团队帮助查找崩溃点、崩溃日志

android - Google Firebase - 如何删除崩溃报告?