anchor.diff:        }
         await _checkFrameworkArchs(debugAppFrameworkPath, 'Debug');
   
  -      checkFileExists(path.join(
  +      // Xcode changed the name of this generated directory in Xcode 12.
  +      const String xcode11ArmDirectoryName = 'ios-armv7_arm64';
  +      const String xcode12ArmDirectoryName = 'ios-arm64_armv7';
  +
  +      final String xcode11AppFrameworkDirectory = path.join(
           outputPath,
           'Debug',
           'App.xcframework',
  -        'ios-armv7_arm64',
  +        xcode11ArmDirectoryName,
           'App.framework',
           'App',
  -      ));
  +      );
  +      final String xcode12AppFrameworkDirectory = path.join(
  +        outputPath,
  +        'Debug',
  +        'App.xcframework',
  +        xcode12ArmDirectoryName,
  +        'App.framework',
  +        'App',
  +      );
  +
  +      // This seemed easier than an explicit Xcode version check.
  +      String xcodeArmDirectoryName;
  +      if (exists(File(xcode11AppFrameworkDirectory))) {
  +        xcodeArmDirectoryName = xcode11ArmDirectoryName;
  +      } else if (exists(File(xcode12AppFrameworkDirectory))) {
  +        xcodeArmDirectoryName = xcode12ArmDirectoryName;
  +      } else {
  +        throw const FileSystemException('Expected App.framework binary to exist.');
  +      }
   
         checkFileExists(path.join(
           outputPath,
  
positive.code:           outputPath,
            mode,
            'device_info.xcframework',
            'ios-armv7_arm64',
            'device_info.framework',
            'device_info',
          ));
  
negative.code:           outputPath,
            mode,
            'device_info.xcframework',
            xcodeArmDirectoryName,
            'device_info.framework',
            'Headers',
            'DeviceInfoPlugin.h',
  