diff --git a/.azure/pipelines/jobs/default-build.yml b/.azure/pipelines/jobs/default-build.yml
index 663b5abd8761c4803b9fd121d9d9e5625634f38e..6ff0a2f58fa831ff08811f51432434525851406a 100644
--- a/.azure/pipelines/jobs/default-build.yml
+++ b/.azure/pipelines/jobs/default-build.yml
@@ -106,7 +106,7 @@ jobs:
     # See https://github.com/dotnet/arcade/blob/master/Documentation/ChoosingAMachinePool.md
     pool:
       ${{ if eq(parameters.agentOs, 'macOS') }}:
-        vmImage: macOS-10.15
+        vmImage: macOS-11
       ${{ if eq(parameters.agentOs, 'Linux') }}:
         ${{ if and(eq(parameters.useHostedUbuntu, true), or(ne(variables['System.TeamProject'], 'internal'), in(variables['Build.Reason'], 'Manual', 'PullRequest', 'Schedule'))) }}:
           vmImage: ubuntu-18.04
@@ -160,8 +160,8 @@ jobs:
       - script: df -h
         displayName: Disk size
     - ${{ if eq(parameters.agentOs, 'macOS') }}:
-      - script: sudo xcode-select -s /Applications/Xcode_12.2.app/Contents/Developer
-        displayName: Use XCode 12.2
+      - script: sudo xcode-select -s /Applications/Xcode_12.5.1.app/Contents/Developer
+        displayName: Use XCode 12.5.1
     - checkout: self
       clean: true
     - ${{ if and(eq(parameters.agentOs, 'Windows'), eq(parameters.isAzDOTestingJob, true)) }}: