diff --git a/modules/audio_device/BUILD.gn b/modules/audio_device/BUILD.gn
index 2db993b..e50041f 100644
--- a/modules/audio_device/BUILD.gn
+++ b/modules/audio_device/BUILD.gn
@@ -45,7 +45,55 @@
   }
 }
 
-rtc_static_library("audio_device") {
+rtc_source_set("audio_device") {
+  public_deps = [
+    ":audio_device_generic",
+  ]
+  if (rtc_include_internal_audio_device && is_ios) {
+    public_deps += [ ":audio_device_ios_objc" ]
+  }
+}
+
+if (rtc_include_internal_audio_device && is_ios) {
+  rtc_source_set("audio_device_ios_objc") {
+    visibility = [ ":audio_device" ]
+    sources = [
+      "ios/audio_device_ios.h",
+      "ios/audio_device_ios.mm",
+      "ios/audio_device_not_implemented_ios.mm",
+      "ios/audio_session_observer.h",
+      "ios/objc/RTCAudioSessionDelegateAdapter.h",
+      "ios/objc/RTCAudioSessionDelegateAdapter.mm",
+      "ios/voice_processing_audio_unit.h",
+      "ios/voice_processing_audio_unit.mm",
+    ]
+    libs = [
+      "AudioToolbox.framework",
+      "AVFoundation.framework",
+      "Foundation.framework",
+      "UIKit.framework",
+    ]
+    deps = [
+      ":audio_device_generic",
+      "../../api:array_view",
+      "../../rtc_base:gtest_prod",
+      "../../rtc_base:rtc_base",
+      "../../sdk:audio_objc",
+      "../../sdk:common_objc",
+      "../../system_wrappers:metrics_api",
+    ]
+    if (!build_with_chromium && is_clang) {
+      # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
+      suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
+    }
+  }
+}
+
+rtc_source_set("audio_device_generic") {
+  visibility = [
+    ":audio_device",
+    ":audio_device_ios_objc",
+  ]
   public_configs = [ ":audio_device_config" ]
 
   deps = [
@@ -176,30 +224,6 @@
           "CoreGraphics.framework",
         ]
       }
-      if (is_ios) {
-        public_deps = [
-          "../../rtc_base:gtest_prod",
-          "../../rtc_base:rtc_base",
-          "../../sdk:audio_objc",
-          "../../sdk:common_objc",
-        ]
-        sources += [
-          "ios/audio_device_ios.h",
-          "ios/audio_device_ios.mm",
-          "ios/audio_device_not_implemented_ios.mm",
-          "ios/audio_session_observer.h",
-          "ios/objc/RTCAudioSessionDelegateAdapter.h",
-          "ios/objc/RTCAudioSessionDelegateAdapter.mm",
-          "ios/voice_processing_audio_unit.h",
-          "ios/voice_processing_audio_unit.mm",
-        ]
-        libs = [
-          "AudioToolbox.framework",
-          "AVFoundation.framework",
-          "Foundation.framework",
-          "UIKit.framework",
-        ]
-      }
       if (is_win) {
         sources += [
           "win/audio_device_core_win.cc",
@@ -267,6 +291,32 @@
 }
 
 if (rtc_include_tests) {
+  # TODO(kthelgason): Reenable these tests on simulator.
+  # See bugs.webrtc.org/7812
+  if (is_ios && !use_ios_simulator) {
+    rtc_source_set("audio_device_ios_objc_unittests") {
+      testonly = true
+      visibility = [ ":*" ]
+      sources = [
+        "ios/audio_device_unittest_ios.mm",
+      ]
+      deps = [
+        ":audio_device",
+        ":mock_audio_device",
+        "../../rtc_base:rtc_base_approved",
+        "../../sdk:audio_objc",
+        "../../system_wrappers",
+        "../../test:test_support",
+        "//testing/gmock",
+        "//third_party/ocmock",
+      ]
+      if (!build_with_chromium && is_clang) {
+        # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
+        suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
+      }
+    }
+  }
+
   rtc_source_set("audio_device_unittests") {
     testonly = true
 
@@ -285,7 +335,7 @@
       "../../api:array_view",
       "../../api:optional",
       "../../rtc_base:rtc_base_approved",
-      "../../system_wrappers:system_wrappers",
+      "../../system_wrappers",
       "../../test:test_support",
       "../utility:utility",
       "//testing/gmock",
@@ -310,12 +360,6 @@
         "../../sdk/android:libjingle_peerconnection_java",
       ]
     }
-    if (is_ios && !use_ios_simulator) {
-      # TODO(kthelgason): Reenable these tests on simulator.
-      # See bugs.webrtc.org/7812
-      sources += [ "ios/audio_device_unittest_ios.mm" ]
-      deps += [ "//third_party/ocmock" ]
-    }
     if (!build_with_chromium && is_clang) {
       # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
       suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
diff --git a/modules/audio_device/DEPS b/modules/audio_device/DEPS
index 3ae86e8..51e8957 100644
--- a/modules/audio_device/DEPS
+++ b/modules/audio_device/DEPS
@@ -7,6 +7,9 @@
   "ensure_initialized\.cc": [
     "+base/android",
   ],
+  "audio_device_ios\.h": [
+    "+webrtc/sdk/objc",
+  ],
   "audio_device_ios\.mm": [
     "+webrtc/sdk/objc",
   ],
diff --git a/modules/audio_device/ios/audio_device_ios.h b/modules/audio_device/ios/audio_device_ios.h
index 5c15c7f..2067d88 100644
--- a/modules/audio_device/ios/audio_device_ios.h
+++ b/modules/audio_device/ios/audio_device_ios.h
@@ -13,7 +13,7 @@
 
 #include <memory>
 
-#include "WebRTC/RTCMacros.h"
+#include "webrtc/sdk/objc/Framework/Headers/WebRTC/RTCMacros.h"
 #include "webrtc/modules/audio_device/audio_device_generic.h"
 #include "webrtc/modules/audio_device/ios/audio_session_observer.h"
 #include "webrtc/modules/audio_device/ios/voice_processing_audio_unit.h"
diff --git a/sdk/objc/Framework/Classes/Audio/RTCAudioSession+Private.h b/sdk/objc/Framework/Classes/Audio/RTCAudioSession+Private.h
index cd95ba6..4c27270 100644
--- a/sdk/objc/Framework/Classes/Audio/RTCAudioSession+Private.h
+++ b/sdk/objc/Framework/Classes/Audio/RTCAudioSession+Private.h
@@ -8,7 +8,7 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#import "WebRTC/RTCAudioSession.h"
+#import "webrtc/sdk/objc/Framework/Headers/WebRTC/RTCAudioSession.h"
 
 #include <vector>
 
diff --git a/sdk/objc/Framework/Headers/WebRTC/RTCAudioSession.h b/sdk/objc/Framework/Headers/WebRTC/RTCAudioSession.h
index f99c835..751734a 100644
--- a/sdk/objc/Framework/Headers/WebRTC/RTCAudioSession.h
+++ b/sdk/objc/Framework/Headers/WebRTC/RTCAudioSession.h
@@ -11,7 +11,7 @@
 #import <AVFoundation/AVFoundation.h>
 #import <Foundation/Foundation.h>
 
-#import "WebRTC/RTCMacros.h"
+#import "webrtc/sdk/objc/Framework/Headers/WebRTC/RTCMacros.h"
 
 NS_ASSUME_NONNULL_BEGIN
 
