Obj-C SDK Cleanup

This CL separates the files under sdk/objc into logical directories, replacing
the previous file layout under Framework/.

A long term goal is to have some system set up to generate the files under
sdk/objc/api (the PeerConnection API wrappers) from the C++ code. In the shorter
term the goal is to abstract out shared concepts from these classes in order to
make them as uniform as possible.

The separation into base/, components/, and helpers/ are to differentiate between
the base layer's common protocols, various utilities and the actual platform
specific components.

The old directory layout that resembled a framework's internal layout is not
necessary, since it is generated by the framework target when building it.

Bug: webrtc:9627
Change-Id: Ib084fd83f050ae980649ca99e841f4fb0580bd8f
Reviewed-on: https://webrtc-review.googlesource.com/94142
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24493}
diff --git a/examples/BUILD.gn b/examples/BUILD.gn
index 76526eb..05ddef8 100644
--- a/examples/BUILD.gn
+++ b/examples/BUILD.gn
@@ -205,19 +205,15 @@
 
     if (is_ios) {
       # iOS must use WebRTC.framework which is dynamically linked.
-      # 'gn check' is disabled in order to avoid confusion and
-      # errors caused by multiple implementations.
-      check_includes = false
       deps = [
-        "../sdk:framework_objc",
+        "../sdk:framework_objc+link",
         "../system_wrappers:field_trial_default",
         "../system_wrappers:runtime_enabled_features_default",
       ]
     } else {
       deps = [
-        "../sdk:common_objc",
+        "../sdk:mac_framework_objc+link",
         "../system_wrappers:field_trial_default",
-        "../system_wrappers:metrics_default",
         "../system_wrappers:runtime_enabled_features_default",
       ]
     }
@@ -279,23 +275,12 @@
     ]
     if (is_ios) {
       # iOS must use WebRTC.framework which is dynamically linked.
-      # 'gn check' is disabled in order to avoid confusion and
-      # errors caused by multiple implementations.
-      check_includes = false
       deps += [
-        ":AppRTCMobile_ios_frameworks",
-        "../sdk:framework_objc",
+        "../sdk:framework_objc+link",
+        "../sdk:ios_framework_bundle",
       ]
     } else {
-      deps += [
-        "../sdk:common_objc",
-        "../sdk:mediaconstraints_objc",
-        "../sdk:peerconnectionfactory_base_objc",
-        "../sdk:videocapture_objc",
-        "../sdk:videocodec_objc",
-        "../sdk:videoframebuffer_objc",
-        "../sdk:videosource_objc",
-      ]
+      deps += [ "../sdk:mac_framework_objc+link" ]
     }
     libs = [ "QuartzCore.framework" ]
   }
@@ -303,9 +288,6 @@
   if (is_ios) {
     rtc_static_library("AppRTCMobile_lib") {
       # iOS must use WebRTC.framework which is dynamically linked.
-      # 'gn check' is disabled in order to avoid confusion and
-      # errors caused by multiple implementations.
-      check_includes = false
       testonly = true
       sources = [
         "objc/AppRTCMobile/ios/ARDAppDelegate.h",
@@ -331,10 +313,10 @@
       ]
 
       deps = [
-        ":AppRTCMobile_ios_frameworks",
         ":apprtc_common",
         ":apprtc_signaling",
-        "../sdk:framework_objc",
+        "../sdk:framework_objc+link",
+        "../sdk:ios_framework_bundle",
       ]
     }
 
@@ -351,9 +333,9 @@
 
       deps = [
         ":AppRTCMobile_ios_bundle_data",
-        ":AppRTCMobile_ios_frameworks",
         ":AppRTCMobile_lib",
         "../sdk:framework_objc",
+        "../sdk:ios_framework_bundle",
       ]
 
       if (rtc_apprtcmobile_broadcast_extension) {
@@ -396,7 +378,6 @@
       }
 
       rtc_static_library("AppRTCMobileBroadcastUpload_lib") {
-        check_includes = false
         testonly = true
         sources = [
           "objc/AppRTCMobile/ios/broadcast_extension/ARDBroadcastSampleHandler.h",
@@ -404,9 +385,9 @@
         ]
 
         deps = [
-          ":AppRTCMobile_ios_frameworks",
           ":apprtc_signaling",
-          "../sdk:framework_objc",
+          "../sdk:framework_objc+link",
+          "../sdk:ios_framework_bundle",
         ]
 
         libs = [ "ReplayKit.framework" ]
@@ -441,18 +422,6 @@
       }
     }
 
-    bundle_data("AppRTCMobile_ios_frameworks") {
-      deps = [
-        "../sdk:framework_objc+link",
-      ]
-      sources = [
-        "$root_build_dir/WebRTC.framework",
-      ]
-      outputs = [
-        "{{bundle_resources_dir}}/Frameworks/{{source_file_part}}",
-      ]
-    }
-
     bundle_data("AppRTCMobile_ios_bundle_data") {
       sources = [
         "objc/AppRTCMobile/ios/resources/Roboto-Regular.ttf",
@@ -507,10 +476,12 @@
         "../modules/audio_processing:audio_processing",
         "../pc:libjingle_peerconnection",
         "../rtc_base:rtc_base",
+        "../sdk:base_objc",
         "../sdk:default_codec_factory_objc",
-        "../sdk:framework_objc",
+        "../sdk:helpers_objc",
         "../sdk:native_api",
         "../sdk:ui_objc",
+        "../sdk:videocapture_objc",
         "../sdk:videotoolbox_objc",
         "../system_wrappers:field_trial_default",
         "../system_wrappers:metrics_default",
@@ -557,14 +528,7 @@
       deps = [
         ":apprtc_common",
         ":apprtc_signaling",
-        "../sdk:default_codec_factory_objc",
-        "../sdk:metal_objc",
-        "../sdk:peerconnectionfactory_base_objc",
-        "../sdk:ui_objc",
-        "../sdk:videocapture_objc",
-        "../sdk:videocodec_objc",
-        "../sdk:videocodec_objc",
-        "../sdk:videotoolbox_objc",
+        "../sdk:mac_framework_objc+link",
       ]
     }
 
@@ -584,6 +548,8 @@
 
       deps = [
         ":AppRTCMobile_lib",
+        "../sdk:mac_framework_bundle",
+        "../sdk:mac_framework_objc+link",
       ]
     }
   }
@@ -629,26 +595,22 @@
     if (is_ios) {
       rtc_source_set("apprtcmobile_test_sources") {
         # iOS must use WebRTC.framework which is dynamically linked.
-        # 'gn check' is disabled in order to avoid confusion and
-        # errors caused by multiple implementations.
-        check_includes = false
         testonly = true
         include_dirs = [
           "objc/AppRTCMobile",
           "objc/AppRTCMobile/ios",
         ]
-        testonly = true
         sources = [
           "objc/AppRTCMobile/tests/ARDAppClient_xctest.mm",
           "objc/AppRTCMobile/tests/ARDFileCaptureController_xctest.mm",
           "objc/AppRTCMobile/tests/ARDSettingsModel_xctest.mm",
         ]
         deps = [
-          ":AppRTCMobile_ios_frameworks",
           ":AppRTCMobile_lib",
           ":apprtc_signaling",
           "../rtc_base:rtc_base",
-          "../sdk:framework_objc",
+          "../sdk:framework_objc+link",
+          "../sdk:ios_framework_bundle",
           "//build/config/ios:xctest",
           "//third_party/ocmock",
         ]
diff --git a/examples/DEPS b/examples/DEPS
index 1570220..6a9a9f0 100644
--- a/examples/DEPS
+++ b/examples/DEPS
@@ -1,5 +1,4 @@
 include_rules = [
-  "+WebRTC",
   "+api",
   "+common_video",
   "+media",
@@ -8,6 +7,6 @@
   "+modules/audio_processing",
   "+p2p",
   "+pc",
-  "+sdk/objc/Framework/Native/api",
+  "+sdk/objc",
   "+third_party/libyuv",
 ]
diff --git a/examples/objc/AppRTCMobile/ARDAppClient+Internal.h b/examples/objc/AppRTCMobile/ARDAppClient+Internal.h
index 8e96b16..96103c2 100644
--- a/examples/objc/AppRTCMobile/ARDAppClient+Internal.h
+++ b/examples/objc/AppRTCMobile/ARDAppClient+Internal.h
@@ -10,7 +10,7 @@
 
 #import "ARDAppClient.h"
 
-#import "WebRTC/RTCPeerConnection.h"
+#import <WebRTC/RTCPeerConnection.h>
 
 #import "ARDRoomServerClient.h"
 #import "ARDSignalingChannel.h"
diff --git a/examples/objc/AppRTCMobile/ARDAppClient.h b/examples/objc/AppRTCMobile/ARDAppClient.h
index 07cd53d..5e9c4cb 100644
--- a/examples/objc/AppRTCMobile/ARDAppClient.h
+++ b/examples/objc/AppRTCMobile/ARDAppClient.h
@@ -9,8 +9,8 @@
  */
 
 #import <Foundation/Foundation.h>
-#import "WebRTC/RTCPeerConnection.h"
-#import "WebRTC/RTCVideoTrack.h"
+#import <WebRTC/RTCPeerConnection.h>
+#import <WebRTC/RTCVideoTrack.h>
 
 typedef NS_ENUM(NSInteger, ARDAppClientState) {
   // Disconnected from servers.
diff --git a/examples/objc/AppRTCMobile/ARDAppClient.m b/examples/objc/AppRTCMobile/ARDAppClient.m
index 465ce8c..9a0d369 100644
--- a/examples/objc/AppRTCMobile/ARDAppClient.m
+++ b/examples/objc/AppRTCMobile/ARDAppClient.m
@@ -10,22 +10,23 @@
 
 #import "ARDAppClient+Internal.h"
 
-#import "WebRTC/RTCAudioTrack.h"
-#import "WebRTC/RTCCameraVideoCapturer.h"
-#import "WebRTC/RTCConfiguration.h"
-#import "WebRTC/RTCFileLogger.h"
-#import "WebRTC/RTCFileVideoCapturer.h"
-#import "WebRTC/RTCIceServer.h"
-#import "WebRTC/RTCLogging.h"
-#import "WebRTC/RTCMediaConstraints.h"
-#import "WebRTC/RTCMediaStream.h"
-#import "WebRTC/RTCPeerConnectionFactory.h"
-#import "WebRTC/RTCRtpSender.h"
-#import "WebRTC/RTCRtpTransceiver.h"
-#import "WebRTC/RTCTracing.h"
-#import "WebRTC/RTCVideoCodecFactory.h"
-#import "WebRTC/RTCVideoSource.h"
-#import "WebRTC/RTCVideoTrack.h"
+#import <WebRTC/RTCAudioTrack.h>
+#import <WebRTC/RTCCameraVideoCapturer.h>
+#import <WebRTC/RTCConfiguration.h>
+#import <WebRTC/RTCDefaultVideoDecoderFactory.h>
+#import <WebRTC/RTCDefaultVideoEncoderFactory.h>
+#import <WebRTC/RTCFileLogger.h>
+#import <WebRTC/RTCFileVideoCapturer.h>
+#import <WebRTC/RTCIceServer.h>
+#import <WebRTC/RTCLogging.h>
+#import <WebRTC/RTCMediaConstraints.h>
+#import <WebRTC/RTCMediaStream.h>
+#import <WebRTC/RTCPeerConnectionFactory.h>
+#import <WebRTC/RTCRtpSender.h>
+#import <WebRTC/RTCRtpTransceiver.h>
+#import <WebRTC/RTCTracing.h>
+#import <WebRTC/RTCVideoSource.h>
+#import <WebRTC/RTCVideoTrack.h>
 
 #import "ARDAppEngineClient.h"
 #import "ARDExternalSampleCapturer.h"
diff --git a/examples/objc/AppRTCMobile/ARDAppEngineClient.m b/examples/objc/AppRTCMobile/ARDAppEngineClient.m
index 0c22ea4..a392c65 100644
--- a/examples/objc/AppRTCMobile/ARDAppEngineClient.m
+++ b/examples/objc/AppRTCMobile/ARDAppEngineClient.m
@@ -10,7 +10,7 @@
 
 #import "ARDAppEngineClient.h"
 
-#import "WebRTC/RTCLogging.h"
+#import <WebRTC/RTCLogging.h>
 
 #import "ARDJoinResponse.h"
 #import "ARDMessageResponse.h"
diff --git a/examples/objc/AppRTCMobile/ARDCaptureController.h b/examples/objc/AppRTCMobile/ARDCaptureController.h
index bdae93a..0150bed 100644
--- a/examples/objc/AppRTCMobile/ARDCaptureController.h
+++ b/examples/objc/AppRTCMobile/ARDCaptureController.h
@@ -8,7 +8,7 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include <WebRTC/RTCCameraVideoCapturer.h>
+#import <WebRTC/RTCCameraVideoCapturer.h>
 
 @class ARDSettingsModel;
 
diff --git a/examples/objc/AppRTCMobile/ARDCaptureController.m b/examples/objc/AppRTCMobile/ARDCaptureController.m
index 068e18e..6afc6c8 100644
--- a/examples/objc/AppRTCMobile/ARDCaptureController.m
+++ b/examples/objc/AppRTCMobile/ARDCaptureController.m
@@ -10,8 +10,9 @@
 
 #import "ARDCaptureController.h"
 
+#import <WebRTC/RTCLogging.h>
+
 #import "ARDSettingsModel.h"
-#import "WebRTC/RTCLogging.h"
 
 const Float64 kFramerateLimit = 30.0;
 
diff --git a/examples/objc/AppRTCMobile/ARDExternalSampleCapturer.m b/examples/objc/AppRTCMobile/ARDExternalSampleCapturer.m
index d377033..9d93ea1 100644
--- a/examples/objc/AppRTCMobile/ARDExternalSampleCapturer.m
+++ b/examples/objc/AppRTCMobile/ARDExternalSampleCapturer.m
@@ -10,7 +10,8 @@
 
 #import "ARDExternalSampleCapturer.h"
 
-#import "WebRTC/RTCVideoFrameBuffer.h"
+#import <WebRTC/RTCCVPixelBuffer.h>
+#import <WebRTC/RTCVideoFrameBuffer.h>
 
 @implementation ARDExternalSampleCapturer
 
diff --git a/examples/objc/AppRTCMobile/ARDSettingsModel+Private.h b/examples/objc/AppRTCMobile/ARDSettingsModel+Private.h
index 08d863d..dc3f24c 100644
--- a/examples/objc/AppRTCMobile/ARDSettingsModel+Private.h
+++ b/examples/objc/AppRTCMobile/ARDSettingsModel+Private.h
@@ -9,6 +9,7 @@
  */
 
 #import <Foundation/Foundation.h>
+
 #import "ARDSettingsModel.h"
 
 @class ARDSettingsStore;
diff --git a/examples/objc/AppRTCMobile/ARDSettingsModel.h b/examples/objc/AppRTCMobile/ARDSettingsModel.h
index 597ab38..bac762c 100644
--- a/examples/objc/AppRTCMobile/ARDSettingsModel.h
+++ b/examples/objc/AppRTCMobile/ARDSettingsModel.h
@@ -10,7 +10,7 @@
 
 #import <Foundation/Foundation.h>
 
-#import "WebRTC/RTCVideoCodec.h"
+#import <WebRTC/RTCVideoCodecInfo.h>
 
 NS_ASSUME_NONNULL_BEGIN
 
diff --git a/examples/objc/AppRTCMobile/ARDSettingsModel.m b/examples/objc/AppRTCMobile/ARDSettingsModel.m
index 34a47a4..fb3ef7e 100644
--- a/examples/objc/AppRTCMobile/ARDSettingsModel.m
+++ b/examples/objc/AppRTCMobile/ARDSettingsModel.m
@@ -10,9 +10,10 @@
 
 #import "ARDSettingsModel+Private.h"
 #import "ARDSettingsStore.h"
-#import "WebRTC/RTCCameraVideoCapturer.h"
-#import "WebRTC/RTCMediaConstraints.h"
-#import "WebRTC/RTCVideoCodecFactory.h"
+
+#import <WebRTC/RTCCameraVideoCapturer.h>
+#import <WebRTC/RTCDefaultVideoEncoderFactory.h>
+#import <WebRTC/RTCMediaConstraints.h>
 
 NS_ASSUME_NONNULL_BEGIN
 
diff --git a/examples/objc/AppRTCMobile/ARDSignalingMessage.h b/examples/objc/AppRTCMobile/ARDSignalingMessage.h
index 93ff486..89b2f55 100644
--- a/examples/objc/AppRTCMobile/ARDSignalingMessage.h
+++ b/examples/objc/AppRTCMobile/ARDSignalingMessage.h
@@ -10,8 +10,8 @@
 
 #import <Foundation/Foundation.h>
 
-#import "WebRTC/RTCIceCandidate.h"
-#import "WebRTC/RTCSessionDescription.h"
+#import <WebRTC/RTCIceCandidate.h>
+#import <WebRTC/RTCSessionDescription.h>
 
 typedef enum {
   kARDSignalingMessageTypeCandidate,
diff --git a/examples/objc/AppRTCMobile/ARDSignalingMessage.m b/examples/objc/AppRTCMobile/ARDSignalingMessage.m
index 3fab185..3efc502 100644
--- a/examples/objc/AppRTCMobile/ARDSignalingMessage.m
+++ b/examples/objc/AppRTCMobile/ARDSignalingMessage.m
@@ -10,7 +10,7 @@
 
 #import "ARDSignalingMessage.h"
 
-#import "WebRTC/RTCLogging.h"
+#import <WebRTC/RTCLogging.h>
 
 #import "ARDUtilities.h"
 #import "RTCIceCandidate+JSON.h"
diff --git a/examples/objc/AppRTCMobile/ARDStatsBuilder.m b/examples/objc/AppRTCMobile/ARDStatsBuilder.m
index 370b72e..cfe2ec5 100644
--- a/examples/objc/AppRTCMobile/ARDStatsBuilder.m
+++ b/examples/objc/AppRTCMobile/ARDStatsBuilder.m
@@ -10,7 +10,7 @@
 
 #import "ARDStatsBuilder.h"
 
-#import "WebRTC/RTCLegacyStatsReport.h"
+#import <WebRTC/RTCLegacyStatsReport.h>
 
 #import "ARDBitrateTracker.h"
 #import "ARDUtilities.h"
diff --git a/examples/objc/AppRTCMobile/ARDWebSocketChannel.m b/examples/objc/AppRTCMobile/ARDWebSocketChannel.m
index 6f60380..19a60d4 100644
--- a/examples/objc/AppRTCMobile/ARDWebSocketChannel.m
+++ b/examples/objc/AppRTCMobile/ARDWebSocketChannel.m
@@ -10,7 +10,7 @@
 
 #import "ARDWebSocketChannel.h"
 
-#import "WebRTC/RTCLogging.h"
+#import <WebRTC/RTCLogging.h>
 #import "SRWebSocket.h"
 
 #import "ARDSignalingMessage.h"
diff --git a/examples/objc/AppRTCMobile/RTCIceCandidate+JSON.h b/examples/objc/AppRTCMobile/RTCIceCandidate+JSON.h
index 1826555..facfb7a 100644
--- a/examples/objc/AppRTCMobile/RTCIceCandidate+JSON.h
+++ b/examples/objc/AppRTCMobile/RTCIceCandidate+JSON.h
@@ -8,7 +8,7 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#import "WebRTC/RTCIceCandidate.h"
+#import <WebRTC/RTCIceCandidate.h>
 
 @interface RTCIceCandidate (JSON)
 
diff --git a/examples/objc/AppRTCMobile/RTCIceCandidate+JSON.m b/examples/objc/AppRTCMobile/RTCIceCandidate+JSON.m
index b1be7fb..e88ca11 100644
--- a/examples/objc/AppRTCMobile/RTCIceCandidate+JSON.m
+++ b/examples/objc/AppRTCMobile/RTCIceCandidate+JSON.m
@@ -10,7 +10,7 @@
 
 #import "RTCIceCandidate+JSON.h"
 
-#import "WebRTC/RTCLogging.h"
+#import <WebRTC/RTCLogging.h>
 
 static NSString const *kRTCICECandidateTypeKey = @"type";
 static NSString const *kRTCICECandidateTypeValue = @"candidate";
diff --git a/examples/objc/AppRTCMobile/RTCIceServer+JSON.h b/examples/objc/AppRTCMobile/RTCIceServer+JSON.h
index dbc702d..3f85806 100644
--- a/examples/objc/AppRTCMobile/RTCIceServer+JSON.h
+++ b/examples/objc/AppRTCMobile/RTCIceServer+JSON.h
@@ -8,7 +8,7 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#import "WebRTC/RTCIceServer.h"
+#import <WebRTC/RTCIceServer.h>
 
 @interface RTCIceServer (JSON)
 
diff --git a/examples/objc/AppRTCMobile/RTCMediaConstraints+JSON.h b/examples/objc/AppRTCMobile/RTCMediaConstraints+JSON.h
index 42d7ab0..5f16a2a 100644
--- a/examples/objc/AppRTCMobile/RTCMediaConstraints+JSON.h
+++ b/examples/objc/AppRTCMobile/RTCMediaConstraints+JSON.h
@@ -8,7 +8,7 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#import "WebRTC/RTCMediaConstraints.h"
+#import <WebRTC/RTCMediaConstraints.h>
 
 @interface RTCMediaConstraints (JSON)
 
diff --git a/examples/objc/AppRTCMobile/RTCSessionDescription+JSON.h b/examples/objc/AppRTCMobile/RTCSessionDescription+JSON.h
index f567121..07bc270 100644
--- a/examples/objc/AppRTCMobile/RTCSessionDescription+JSON.h
+++ b/examples/objc/AppRTCMobile/RTCSessionDescription+JSON.h
@@ -8,7 +8,7 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#import "WebRTC/RTCSessionDescription.h"
+#import <WebRTC/RTCSessionDescription.h>
 
 @interface RTCSessionDescription (JSON)
 
diff --git a/examples/objc/AppRTCMobile/common/ARDUtilities.m b/examples/objc/AppRTCMobile/common/ARDUtilities.m
index 0ae44da..aabc453 100644
--- a/examples/objc/AppRTCMobile/common/ARDUtilities.m
+++ b/examples/objc/AppRTCMobile/common/ARDUtilities.m
@@ -12,7 +12,7 @@
 
 #import <mach/mach.h>
 
-#import "WebRTC/RTCLogging.h"
+#import <WebRTC/RTCLogging.h>
 
 @implementation NSDictionary (ARDUtilites)
 
diff --git a/examples/objc/AppRTCMobile/ios/ARDAppDelegate.m b/examples/objc/AppRTCMobile/ios/ARDAppDelegate.m
index 4f444e4..16af444 100644
--- a/examples/objc/AppRTCMobile/ios/ARDAppDelegate.m
+++ b/examples/objc/AppRTCMobile/ios/ARDAppDelegate.m
@@ -10,10 +10,10 @@
 
 #import "ARDAppDelegate.h"
 
-#import "WebRTC/RTCFieldTrials.h"
-#import "WebRTC/RTCLogging.h"
-#import "WebRTC/RTCSSLAdapter.h"
-#import "WebRTC/RTCTracing.h"
+#import <WebRTC/RTCFieldTrials.h>
+#import <WebRTC/RTCLogging.h>
+#import <WebRTC/RTCSSLAdapter.h>
+#import <WebRTC/RTCTracing.h>
 
 #import "ARDMainViewController.h"
 
diff --git a/examples/objc/AppRTCMobile/ios/ARDFileCaptureController.m b/examples/objc/AppRTCMobile/ios/ARDFileCaptureController.m
index d61bfe2..1f0276f 100644
--- a/examples/objc/AppRTCMobile/ios/ARDFileCaptureController.m
+++ b/examples/objc/AppRTCMobile/ios/ARDFileCaptureController.m
@@ -10,7 +10,7 @@
 
 #import "ARDFileCaptureController.h"
 
-#import "WebRTC/RTCFileVideoCapturer.h"
+#import <WebRTC/RTCFileVideoCapturer.h>
 
 @interface ARDFileCaptureController ()
 
diff --git a/examples/objc/AppRTCMobile/ios/ARDMainViewController.m b/examples/objc/AppRTCMobile/ios/ARDMainViewController.m
index 174514f..fae3f7b 100644
--- a/examples/objc/AppRTCMobile/ios/ARDMainViewController.m
+++ b/examples/objc/AppRTCMobile/ios/ARDMainViewController.m
@@ -12,11 +12,10 @@
 
 #import <AVFoundation/AVFoundation.h>
 
-#import "WebRTC/RTCAudioSession.h"
-#import "WebRTC/RTCAudioSessionConfiguration.h"
-#import "WebRTC/RTCDispatcher.h"
-#import "WebRTC/RTCLogging.h"
-
+#import <WebRTC/RTCAudioSession.h>
+#import <WebRTC/RTCAudioSessionConfiguration.h>
+#import <WebRTC/RTCDispatcher.h>
+#import <WebRTC/RTCLogging.h>
 
 #import "ARDAppClient.h"
 #import "ARDMainView.h"
diff --git a/examples/objc/AppRTCMobile/ios/ARDStatsView.m b/examples/objc/AppRTCMobile/ios/ARDStatsView.m
index 39067e0..05d91b2 100644
--- a/examples/objc/AppRTCMobile/ios/ARDStatsView.m
+++ b/examples/objc/AppRTCMobile/ios/ARDStatsView.m
@@ -10,7 +10,7 @@
 
 #import "ARDStatsView.h"
 
-#import "WebRTC/RTCLegacyStatsReport.h"
+#import <WebRTC/RTCLegacyStatsReport.h>
 
 #import "ARDStatsBuilder.h"
 
diff --git a/examples/objc/AppRTCMobile/ios/ARDVideoCallViewController.m b/examples/objc/AppRTCMobile/ios/ARDVideoCallViewController.m
index dbd78ea..2827bf9 100644
--- a/examples/objc/AppRTCMobile/ios/ARDVideoCallViewController.m
+++ b/examples/objc/AppRTCMobile/ios/ARDVideoCallViewController.m
@@ -10,17 +10,17 @@
 
 #import "ARDVideoCallViewController.h"
 
-#import "WebRTC/RTCAudioSession.h"
-#import "WebRTC/RTCCameraVideoCapturer.h"
+#import <WebRTC/RTCAudioSession.h>
+#import <WebRTC/RTCCameraVideoCapturer.h>
+#import <WebRTC/RTCDispatcher.h>
+#import <WebRTC/RTCLogging.h>
+#import <WebRTC/RTCMediaConstraints.h>
 
 #import "ARDAppClient.h"
 #import "ARDCaptureController.h"
 #import "ARDFileCaptureController.h"
 #import "ARDSettingsModel.h"
 #import "ARDVideoCallView.h"
-#import "WebRTC/RTCDispatcher.h"
-#import "WebRTC/RTCLogging.h"
-#import "WebRTC/RTCMediaConstraints.h"
 
 @interface ARDVideoCallViewController () <ARDAppClientDelegate,
                                           ARDVideoCallViewDelegate,
diff --git a/examples/objc/AppRTCMobile/ios/RTCVideoCodecInfo+HumanReadable.h b/examples/objc/AppRTCMobile/ios/RTCVideoCodecInfo+HumanReadable.h
index 9c88993..c037285 100644
--- a/examples/objc/AppRTCMobile/ios/RTCVideoCodecInfo+HumanReadable.h
+++ b/examples/objc/AppRTCMobile/ios/RTCVideoCodecInfo+HumanReadable.h
@@ -8,7 +8,7 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#import "WebRTC/RTCVideoCodec.h"
+#import <WebRTC/RTCVideoCodecInfo.h>
 
 @interface RTCVideoCodecInfo (HumanReadable)
 
diff --git a/examples/objc/AppRTCMobile/ios/RTCVideoCodecInfo+HumanReadable.m b/examples/objc/AppRTCMobile/ios/RTCVideoCodecInfo+HumanReadable.m
index 6c18cf3..d0bf1b5 100644
--- a/examples/objc/AppRTCMobile/ios/RTCVideoCodecInfo+HumanReadable.m
+++ b/examples/objc/AppRTCMobile/ios/RTCVideoCodecInfo+HumanReadable.m
@@ -9,7 +9,8 @@
  */
 
 #import "RTCVideoCodecInfo+HumanReadable.h"
-#import "WebRTC/RTCVideoCodecH264.h"
+
+#import <WebRTC/RTCH264ProfileLevelId.h>
 
 @implementation RTCVideoCodecInfo (HumanReadable)
 
diff --git a/examples/objc/AppRTCMobile/ios/broadcast_extension/ARDBroadcastSampleHandler.h b/examples/objc/AppRTCMobile/ios/broadcast_extension/ARDBroadcastSampleHandler.h
index 2218261..42a908d 100644
--- a/examples/objc/AppRTCMobile/ios/broadcast_extension/ARDBroadcastSampleHandler.h
+++ b/examples/objc/AppRTCMobile/ios/broadcast_extension/ARDBroadcastSampleHandler.h
@@ -10,7 +10,7 @@
 
 #import <ReplayKit/ReplayKit.h>
 
-#import "WebRTC/RTCLogging.h"
+#import <WebRTC/RTCLogging.h>
 
 #import "ARDAppClient.h"
 
diff --git a/examples/objc/AppRTCMobile/mac/APPRTCAppDelegate.m b/examples/objc/AppRTCMobile/mac/APPRTCAppDelegate.m
index dd3f192..ea6fd73 100644
--- a/examples/objc/AppRTCMobile/mac/APPRTCAppDelegate.m
+++ b/examples/objc/AppRTCMobile/mac/APPRTCAppDelegate.m
@@ -10,7 +10,7 @@
 
 #import "APPRTCAppDelegate.h"
 #import "APPRTCViewController.h"
-#import "WebRTC/RTCSSLAdapter.h"
+#import <WebRTC/RTCSSLAdapter.h>
 
 @interface APPRTCAppDelegate () <NSWindowDelegate>
 @end
diff --git a/examples/objc/AppRTCMobile/mac/APPRTCViewController.m b/examples/objc/AppRTCMobile/mac/APPRTCViewController.m
index cb82e888..9f5ed40 100644
--- a/examples/objc/AppRTCMobile/mac/APPRTCViewController.m
+++ b/examples/objc/AppRTCMobile/mac/APPRTCViewController.m
@@ -12,9 +12,9 @@
 
 #import <AVFoundation/AVFoundation.h>
 
-#import "WebRTC/RTCMTLNSVideoView.h"
-#import "WebRTC/RTCNSGLVideoView.h"
-#import "WebRTC/RTCVideoTrack.h"
+#import <WebRTC/RTCMTLNSVideoView.h>
+#import <WebRTC/RTCNSGLVideoView.h>
+#import <WebRTC/RTCVideoTrack.h>
 
 #import "ARDAppClient.h"
 #import "ARDCaptureController.h"
diff --git a/examples/objc/AppRTCMobile/tests/ARDAppClient_xctest.mm b/examples/objc/AppRTCMobile/tests/ARDAppClient_xctest.mm
index f332a0f..8c29401 100644
--- a/examples/objc/AppRTCMobile/tests/ARDAppClient_xctest.mm
+++ b/examples/objc/AppRTCMobile/tests/ARDAppClient_xctest.mm
@@ -15,8 +15,8 @@
 
 #include "rtc_base/ssladapter.h"
 
-#import "WebRTC/RTCMediaConstraints.h"
-#import "WebRTC/RTCPeerConnectionFactory.h"
+#import <WebRTC/RTCMediaConstraints.h>
+#import <WebRTC/RTCPeerConnectionFactory.h>
 
 #import "ARDAppClient+Internal.h"
 #import "ARDJoinResponse+Internal.h"
diff --git a/examples/objc/AppRTCMobile/tests/ARDFileCaptureController_xctest.mm b/examples/objc/AppRTCMobile/tests/ARDFileCaptureController_xctest.mm
index e734f10..e3942c7 100644
--- a/examples/objc/AppRTCMobile/tests/ARDFileCaptureController_xctest.mm
+++ b/examples/objc/AppRTCMobile/tests/ARDFileCaptureController_xctest.mm
@@ -14,7 +14,7 @@
 
 #import "ARDFileCaptureController.h"
 
-#import "WebRTC/RTCFileVideoCapturer.h"
+#import <WebRTC/RTCFileVideoCapturer.h>
 
 NS_CLASS_AVAILABLE_IOS(10)
 @interface ARDFileCaptureControllerTests : XCTestCase
diff --git a/examples/objc/AppRTCMobile/tests/ARDSettingsModel_xctest.mm b/examples/objc/AppRTCMobile/tests/ARDSettingsModel_xctest.mm
index b44f935..7c34d0a 100644
--- a/examples/objc/AppRTCMobile/tests/ARDSettingsModel_xctest.mm
+++ b/examples/objc/AppRTCMobile/tests/ARDSettingsModel_xctest.mm
@@ -12,7 +12,7 @@
 #import <OCMock/OCMock.h>
 #import <XCTest/XCTest.h>
 
-#import "WebRTC/RTCMediaConstraints.h"
+#import <WebRTC/RTCMediaConstraints.h>
 
 #import "ARDSettingsModel+Private.h"
 #import "ARDSettingsStore.h"
diff --git a/examples/objcnativeapi/objc/NADViewController.mm b/examples/objcnativeapi/objc/NADViewController.mm
index 0d5ac9a..34f5467 100644
--- a/examples/objcnativeapi/objc/NADViewController.mm
+++ b/examples/objcnativeapi/objc/NADViewController.mm
@@ -10,11 +10,14 @@
 
 #import "NADViewController.h"
 
-#import <WebRTC/RTCCameraPreviewView.h>
-#import <WebRTC/RTCCameraVideoCapturer.h>
-#import <WebRTC/RTCEAGLVideoView.h>
-#import <WebRTC/RTCMTLVideoView.h>
-#import <WebRTC/RTCVideoRenderer.h>
+#import "sdk/objc/base/RTCVideoRenderer.h"
+#import "sdk/objc/components/capturer/RTCCameraVideoCapturer.h"
+#if defined(RTC_SUPPORTS_METAL)
+#import "sdk/objc/components/renderer/metal/RTCMTLVideoView.h"  // nogncheck
+#endif
+#import "sdk/objc/components/renderer/opengl/RTCEAGLVideoView.h"
+#import "sdk/objc/helpers/RTCCameraPreviewView.h"
+
 #include <memory>
 
 #include "objccallclient.h"
diff --git a/examples/objcnativeapi/objc/objccallclient.mm b/examples/objcnativeapi/objc/objccallclient.mm
index 0e3b8e0..c384da3 100644
--- a/examples/objcnativeapi/objc/objccallclient.mm
+++ b/examples/objcnativeapi/objc/objccallclient.mm
@@ -12,9 +12,10 @@
 
 #include <utility>
 
-#import <WebRTC/RTCCameraPreviewView.h>
-#import <WebRTC/RTCVideoCodecFactory.h>
-#import <WebRTC/RTCVideoRenderer.h>
+#import "sdk/objc/base/RTCVideoRenderer.h"
+#import "sdk/objc/components/video_codec/RTCDefaultVideoDecoderFactory.h"
+#import "sdk/objc/components/video_codec/RTCDefaultVideoEncoderFactory.h"
+#import "sdk/objc/helpers/RTCCameraPreviewView.h"
 
 #include "absl/memory/memory.h"
 #include "api/audio_codecs/builtin_audio_decoder_factory.h"
@@ -22,10 +23,10 @@
 #include "api/peerconnectioninterface.h"
 #include "media/engine/webrtcmediaengine.h"
 #include "modules/audio_processing/include/audio_processing.h"
-#include "sdk/objc/Framework/Native/api/video_capturer.h"
-#include "sdk/objc/Framework/Native/api/video_decoder_factory.h"
-#include "sdk/objc/Framework/Native/api/video_encoder_factory.h"
-#include "sdk/objc/Framework/Native/api/video_renderer.h"
+#include "sdk/objc/native/api/video_capturer.h"
+#include "sdk/objc/native/api/video_decoder_factory.h"
+#include "sdk/objc/native/api/video_encoder_factory.h"
+#include "sdk/objc/native/api/video_renderer.h"
 
 namespace webrtc_examples {