ios: Get simulator device model correctly.

Use SIMULATOR_MODEL_IDENTIFIER to get the equivalent device model.

Bug: crashpad:31
Change-Id: Ib99ce15be3ebeb4602153238341fea9090120435
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2726978
Commit-Queue: Justin Cohen <justincohen@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
GitOrigin-RevId: 9a7c3beeef7b20539bdddcc7f4e0d41a1b16ca13
diff --git a/util/ios/ios_system_data_collector.mm b/util/ios/ios_system_data_collector.mm
index c81fe3f..816d506 100644
--- a/util/ios/ios_system_data_collector.mm
+++ b/util/ios/ios_system_data_collector.mm
@@ -23,6 +23,7 @@
 
 #include "base/mac/mach_logging.h"
 #include "base/numerics/safe_conversions.h"
+#include "base/strings/stringprintf.h"
 #include "base/strings/sys_string_conversions.h"
 #include "build/build_config.h"
 
@@ -84,17 +85,21 @@
   // TODO(justincohen): Consider adding board and model information to
   // |machine_description| as well (similar to MacModelAndBoard in
   // util/mac/mac_util.cc).
-  switch (UI_USER_INTERFACE_IDIOM()) {
-    case UIUserInterfaceIdiomPhone:
-      machine_description_ = "iOS Simulator (iPhone)";
-      break;
-    case UIUserInterfaceIdiomPad:
-      machine_description_ = "iOS Simulator (iPad)";
-      break;
-    default:
-      machine_description_ = "iOS Simulator (Unknown)";
-      break;
+  const char* model = getenv("SIMULATOR_MODEL_IDENTIFIER");
+  if (model == nullptr) {
+    switch (UI_USER_INTERFACE_IDIOM()) {
+      case UIUserInterfaceIdiomPhone:
+        model = "iPhone";
+        break;
+      case UIUserInterfaceIdiomPad:
+        model = "iPad";
+        break;
+      default:
+        model = "Unknown";
+        break;
+    }
   }
+  machine_description_ = base::StringPrintf("iOS Simulator (%s)", model);
 #elif TARGET_OS_IPHONE
   utsname uts;
   if (uname(&uts) == 0) {