diff --git a/examples/BUILD.gn b/examples/BUILD.gn
index 43d961c..557e31f 100644
--- a/examples/BUILD.gn
+++ b/examples/BUILD.gn
@@ -632,7 +632,7 @@
         ]
       }
 
-      rtc_test("apprtcmobile_tests") {
+      rtc_ios_xctest_test("apprtcmobile_tests") {
         info_plist = "objc/AppRTCMobile/ios/Info.plist"
         sources = [ "objc/AppRTCMobile/tests/main.mm" ]
         deps = [
diff --git a/sdk/BUILD.gn b/sdk/BUILD.gn
index 40a7894..c87dcbe 100644
--- a/sdk/BUILD.gn
+++ b/sdk/BUILD.gn
@@ -6,9 +6,7 @@
 # in the file PATENTS.  All contributing project authors may
 # be found in the AUTHORS file in the root of the source tree.
 
-import("//testing/test.gni")
 import("../webrtc.gni")
-
 if (is_ios) {
   import("//build/config/ios/ios_sdk.gni")
   import("//build/config/ios/rules.gni")
@@ -1167,7 +1165,7 @@
         }
 
         # These tests use static linking.
-        rtc_test("sdk_unittests") {
+        rtc_ios_xctest_test("sdk_unittests") {
           info_plist = "//test/ios/Info.plist"
           sources = [ "objc/unittests/main.mm" ]
 
@@ -1183,9 +1181,8 @@
         }
 
         # These tests link to the framework.
-        rtc_test("sdk_framework_unittests") {
+        rtc_ios_xctest_test("sdk_framework_unittests") {
           info_plist = "//test/ios/Info.plist"
-          cflags_objc = [ "-Wno-objc-property-no-attribute" ]
           sources = [
             "objc/unittests/RTCDoNotPutCPlusPlusInFrameworkHeaders_xctest.m",
             "objc/unittests/main.mm",
@@ -1672,8 +1669,8 @@
 
     rtc_library("video_toolbox_cc") {
       visibility = [
-        ":sdk_unittests_sources",
         ":videotoolbox_objc",
+        ":sdk_unittests_sources",
       ]
       sources = [
         "objc/components/video_codec/helpers.cc",
diff --git a/tools_webrtc/mb/gn_isolate_map.pyl b/tools_webrtc/mb/gn_isolate_map.pyl
index fcef85b..dba0d97 100644
--- a/tools_webrtc/mb/gn_isolate_map.pyl
+++ b/tools_webrtc/mb/gn_isolate_map.pyl
@@ -37,7 +37,7 @@
   },
   "apprtcmobile_tests": {
     "label": "//examples:apprtcmobile_tests",
-    "type": "console_test_launcher",
+    "type": "raw",
   },
   "audio_decoder_unittests": {
     "label": "//modules/audio_coding:audio_decoder_unittests",
@@ -108,11 +108,11 @@
   },
   "sdk_framework_unittests": {
     "label": "//sdk:sdk_framework_unittests",
-    "type": "console_test_launcher",
+    "type": "raw",
   },
   "sdk_unittests": {
     "label": "//sdk:sdk_unittests",
-    "type": "console_test_launcher",
+    "type": "raw",
   },
   "slow_tests": {
     "label": "//:slow_tests",
diff --git a/tools_webrtc/mb/mb_config.pyl b/tools_webrtc/mb/mb_config.pyl
index b30f9d7..20755df 100644
--- a/tools_webrtc/mb/mb_config.pyl
+++ b/tools_webrtc/mb/mb_config.pyl
@@ -392,35 +392,31 @@
 
     # iOS
     'ios_debug_bot_arm': [
-      'ios', 'debug_bot', 'arm', 'no_ios_code_signing', 'ios_use_goma_rbe',
-      'xctest',
+      'ios', 'debug_bot', 'arm', 'no_ios_code_signing', 'ios_use_goma_rbe'
     ],
     'ios_release_bot_arm': [
-      'ios', 'release_bot', 'arm', 'no_ios_code_signing', 'ios_use_goma_rbe',
-      'xctest',
+      'ios', 'release_bot', 'arm', 'no_ios_code_signing', 'ios_use_goma_rbe'
     ],
     'ios_debug_bot_arm64': [
-      'ios', 'debug_bot', 'arm64', 'no_ios_code_signing', 'ios_use_goma_rbe',
-      'xctest',
+      'ios', 'debug_bot', 'arm64', 'no_ios_code_signing', 'ios_use_goma_rbe'
     ],
     'ios_release_bot_arm64': [
-      'ios', 'release_bot', 'arm64', 'no_ios_code_signing', 'ios_use_goma_rbe',
-      'xctest',
+      'ios', 'release_bot', 'arm64', 'no_ios_code_signing', 'ios_use_goma_rbe'
     ],
     'ios_internal_debug_bot_arm64': [
       'ios', 'debug_bot', 'arm64', 'ios_use_goma_rbe',
-      'ios_code_signing_identity_description', 'xctest',
+      'ios_code_signing_identity_description',
     ],
     'ios_internal_release_bot_arm64': [
       'ios', 'release_bot', 'arm64', 'ios_use_goma_rbe',
-      'ios_code_signing_identity_description', 'xctest',
+      'ios_code_signing_identity_description',
     ],
     'ios_internal_pure_release_bot_arm64': [
       'ios', 'pure_release_bot', 'arm64', 'ios_use_goma_rbe',
-      'ios_code_signing_identity_description', 'xctest',
+      'ios_code_signing_identity_description',
     ],
     'ios_debug_bot_x64': [
-      'ios', 'debug_bot', 'x64', 'ios_use_goma_rbe', 'xctest',
+      'ios', 'debug_bot', 'x64', 'ios_use_goma_rbe'
     ],
 
     # More configs
@@ -636,9 +632,5 @@
     'win_undef_unicode': {
       'gn_args': 'rtc_win_undef_unicode=true',
     },
-
-    'xctest': {
-      'gn_args': 'enable_run_ios_unittests_with_xctest=true',
-    },
   },
 }
diff --git a/webrtc.gni b/webrtc.gni
index a465f49..3081618 100644
--- a/webrtc.gni
+++ b/webrtc.gni
@@ -878,6 +878,35 @@
 }
 
 if (is_ios) {
+  set_defaults("rtc_ios_xctest_test") {
+    configs = rtc_add_configs
+    suppressed_configs = []
+  }
+
+  template("rtc_ios_xctest_test") {
+    ios_xctest_test(target_name) {
+      forward_variables_from(invoker,
+                             "*",
+                             [
+                               "configs",
+                               "public_configs",
+                               "suppressed_configs",
+                               "visibility",
+                             ])
+      forward_variables_from(invoker, [ "visibility" ])
+      if (!defined(visibility)) {
+        visibility = webrtc_default_visibility
+      }
+      configs += invoker.configs
+      configs -= rtc_remove_configs
+      configs -= invoker.suppressed_configs
+      public_configs = [ rtc_common_inherited_config ]
+      if (defined(invoker.public_configs)) {
+        public_configs += invoker.public_configs
+      }
+    }
+  }
+
   # TODO: Generate module.modulemap file to enable use in Swift
   # projects. See "mac_framework_bundle_with_umbrella_header".
   template("ios_framework_bundle_with_umbrella_header") {
